地方の音風景収集プロジェクト(2)

ノーコードでデータを表示する

集まったデータを仲間内でだけで共有するのでしたら、スプレッドシートを共有すればいいのですが、外部に公開するならそれなりの仕立てが必要になるでしょう。

Googleスプレッドシートのデータを使って、見やすいアプリ化する方法もいくつもあります。
一つのフロントエンドとして使ってみたのは、ノーコードツール Glide
プログラミングをしなくても、Googleスプレッドシート等のデータを簡単にWebアプリ化できるサービスです。

今回メインでフロントエンドで使った 掛川音風景 は、React という JavaScript ライブラリで作ってみたのですが、Glide を使うとプログラミングを知らなくても、アプリを作ることができます。

Glideアカウント作成して新プロジェクト作成

Glide https://www.glideapps.com/
を開いて、「Sign Up」からGoogleでアカウントを作成し、ログイン。

「New Project」で新しい、アプリを作成。

Create a new project の Name your project に適当な名前を入れて、「Glide App」を選択して「Continue」

「Google Sheets」を選択して、「 Continue 」

Googleのアカウントでログインしていたら、自分のGoogle Sheet の一覧が表示されるので、アプリ化したいSheet を選択。

Glide が自動で一覧画面を作ってくれています。
少しカスタマイズしたいので、左下の「List」を選択。

リストのカスタマイズ

右カラムの「Image」を Google Sheet の「写真」カラムに変更。
「Dtails」を「-」に変更、「Caption」を Google Sheet の「場所」カラムに設定。
一覧画面が上の画像のようになると思います。

一覧はこのあたりにして、詳細画面をカスタマイズしていきます。

Glide の、中央のプレビューカラムで、適当なレコードをクリックすると、その詳細画面が表示されます。

詳細のカスタマイズ

詳細画面の方もGlide が自動で画面を作ってくれています 。
ここに音声・画像、それからマップを追加し、不要なカラムは消し、表示したいカラムを表示させます。

左カラムの「+」を押すと「Insert Component」が出てきます。
「MEDIA」の中の「Image」を押します。

右カラムに Image の詳細設定が出てくるので、「Data」の「Image」を「画像」にします。

同様に、「MEDIA」の「Audio」と追加して、「音声」に設定。
「Map」を追加して「緯度経度」を設定。

「場所」「時間帯」「詳細」「タイムスタンプ」を「TEXT」の「Acton Text」で追加して、不要なカラムは削除します。

不要データを非表示にする

最初にテストデータを入れるとか、入力間違えがあった際は、その不要データは表示しないようにしたいところです。
Googleシートで直接不要データを削除することもできますが、理論削除(レコードを削除する際、現在有効か否かを示すフィールドの値を変更することで削除したのと同じ扱いにする方式。実際のデータは削除しない。)ができるようにしておきます。

Googleシートで、列を追加し名前を「flag」と付けます。
不要データの 「 flag 」 に 1 を入力。

Glideに戻って、左カラムの「List」を選択。
右カラムの「Option」タブを開いて「FILTER」の「Add Filter」に追加で、
「Flag」「doesn’d equal」として「enter value」に 1 を入力。

これで、 「 flag 」 が 1 のデータは、一覧から表示されなくなります。

アプリの公開

アプリを公開するには、右上の「Publish」を押すことで、公開ができます。

まとめ

Glide は比較的簡単に、Google Sheet に保存したデータをアプリ化するのに適したノーコードツールです。

自治体等で公開されているオープンデータを使うと、

のようなアプリが簡単に作れるので、いろいろ試してみると楽しいです。

地方の音風景収集プロジェクト(2) | 深ノオトより転載

地方の音風景収集プロジェクト(1)

毎年3月第一土曜日に全世界で開催されている、オープンデータデイ
今年も掛川で「オープンデータデイ2022 in 掛川」を、コードフォー掛川のメンバー中心に開催しました。

今年の取り組みは ~地域の音をデータ化して世界に公開しよう~ 。
文章や、画像、動画に関心が集まる中、音に着目し地域の音のデータベース化ができないか、という企画です。

そのためにデータを収集する仕組み、公開する仕組み作りに携わったので、ほかの地域でも活用できるよう、覚書を残しておきたいと思います。

入力とデータベース

不特定多数の方にデータを入力してもらって、それを保存する方法はいくつもあります。
ただ、今回は誰でも簡単に構築できる方法を取りたかったので、GoogleフォームとGoogleスプレッドシートを使うことにしました。
なぜなら、この組み合わせだったら多少ネットに詳しい方ならできるということと、大体無料で使えるからです。

Googleのアカウントを作って、Googleフォーム を開いて、フォームを作ります。

今回のフォームでは、

記述式

  • メールアドレス
  • 場所
  • 緯度経度

ラジオボタン

  • 時間帯
    朝 昼 夕方 夜

段落

  • 説明

ファイルアップロード

  • 音声
    特定のファイル形式のみ許可 音声
    ファイルの最大数 1
    最大ファイルサイズ 10 MB
  • 画像
    特定のファイル形式のみ許可 画像
    ファイルの最大数 1
    最大ファイルサイズ 10 MB

フォームができたら回答されたデータを、スプレッドシートに転記する設定をします。
「回答」タグを開いて、スプレッドシートのアイコン(緑に白十字のもの)をクリック。
「回答先の選択」で「新しいスプレッドシートを作成」します。

そうすると回答をまとめるスプレッドシートが出来上がるので、右上の「目」のアイコン(プレビュー)から、テスト回答をしてみます。
Googleフォームに戻って、回答タグの スプレッドシート を開くと、テスト回答がスプレッドシートに入っているます。
このデータを外部ツール等を使って公開します。

Googleフォームの注意点

このように、Googleフォームを使うことで、ユーザー参加型のデータベースを簡単に作ることができますが、いくつか注意点があります。

一つ目は、ファイルのアップロードを使用する場合、投稿者もGoogleアカウントでログインする必要があります。
セキュリティの問題だと思いますが、不特定多数の参加が見込まれる場合は、あらかじめGoogleアカウントの作成と、現地でログインできるような準備をしておくことをアナウンスしておいた方がいいでしょう。

2つ目はファイルアップロードでアップロードされたファイル名には、投稿者のGoogleaアカウント名が挿入されてしまいます。
aaa.jpg をアップロードすると aaa – ユーザー名.jpg というファイル名で、Googleドライブ内に保存、表示・ダウンロードの際、そのファイル名が使用されます。
Googleのサービスを積極的に使っている方なら、あまり気にしないかもしれませんが、そうでない方も投稿する可能性があれば、そのあたりの注意喚起もしておいた方が良いかと思います。

ただ、ファイル名に関しては、Google Apps Scriptで一括リネームができるので、適宜リネームをするといいかもしれません。

参照

GoogleDriveの新規作成で、 Google Apps Script を選択。

音声ファイルのリネームは、以下のコードを張り付けてメニューから実行ボタンをクリック

function myFunction() {
    // 変換対象のファイルが入っているフォルダをIDで指定
  const folder = DriveApp.getFolderById('フォルダID');
  // ファイル一覧を取得(イテレータが得られる)
  const files = folder.getFiles();
  // 次に処理可能なファイルがあるか確認し、あれば1つずつ処理
  while (files.hasNext()) {
    // ファイル名を確認
    const file = files.next();
    const currentFileName = String(file.getName());
    // 文字列置換を使ってファイル名の一部だけを置き換える
     // 正規表現置換を使ってファイル名の一部だけを置き換える
 const regex = /^(.*) - .*\.m(.*)$/i;
 const newFileName = currentFileName.replace(regex, '$1' + ".m" + '$2')
    // ファイル名を再設定する(リネーム)
    file.setName(newFileName);
    // 確認のためコンソール表示
    console.log(newFileName);
  }
}

画像ファイル用はこちら。

function myFunction() {
    // 変換対象のファイルが入っているフォルダをIDで指定
  const folder = DriveApp.getFolderById('フォルダID');
  // ファイル一覧を取得(イテレータが得られる)
  const files = folder.getFiles();
  // 次に処理可能なファイルがあるか確認し、あれば1つずつ処理
  while (files.hasNext()) {
    // ファイル名を確認
    const file = files.next();
    const currentFileName = String(file.getName());
    // 文字列置換を使ってファイル名の一部だけを置き換える
     // 正規表現置換を使ってファイル名の一部だけを置き換える
 const regex = /^(.*) - .*\.jp(.*)$/i;
 const newFileName = currentFileName.replace(regex, '$1' + ".jp" + '$2')
    // ファイル名を再設定する(リネーム)
    file.setName(newFileName);
    // 確認のためコンソール表示
    console.log(newFileName);
  }
}

今回のイベント中に突貫で作ったコードなので、もう少しスマートにできるかもしれませんが、こうしたらいいよとかあったら、教えてください。

地方の音風景収集プロジェクト(1) | 深ノオトより転載

オープンデータ・デイ in 掛川2022 「地域の音をデータ化して世界に公開しよう」実施記録

2022年3月5日(土)のインターナショナルオープンデータ・デイに合わせて、『オープンデータ・デイ in 掛川』(特設サイト)を開催しました。
「地域の音をデータ化して世界に公開しよう」というテーマで、掛川市内の環境音を録音し、共有するワークショップを実施しました。
この記事では、当日の模様をお伝えします。

01.インプット

01-1.今日やること

(コードフォー掛川代表:戸塚)

今日は、掛川の街中や環境の中にある環境音を集めます。
まずはこの動画を聴いてください。
「聴いてください」というのは、まずは映像を見ずに聴いて、その後に映像を見てみてください。
どうでしょうか。音だけで聴いた時と映像付きの時で印象は変わりましたか?

今はみんなスマホを持っているので映像も簡単に撮れるわけですが、今回はあえて音だけにします。映像が無い「音だけ」で聴けば、色々な違いがあると思います。
例えば、以下のようなことです。

  • いろんなコトを想像できますよね。
  • あの頃の記憶を呼び起こしますよね。
  • もしかしたらあの頃の誰かに連絡を取りたくなるかも…。
  • 映像がないからこそ、広がる世界があると思います。

というわけで、「音」を集めて集積し、オープンデータにしてみようと思います。
スマホで録った音を投稿して公開するサイトはメンバーの深田さんが作ってくれたので、あとで投稿方法など説明してもらいます。

「音のオープンデータ」ということには色々な意味があると思うのですが、例えば以下のようなことがあるかもしれません。

  • 今、人口減少が進んでいます。
  • それによって…学校が統合されて今ある学校がなくなるかもしれません。
  • それによって…自然が荒れてととのった自然がなくなるかもしれません。
  • それによって…公共交通が廃止になるかもしれません。
  • などなどあって…いろんな音がなくなるかもしれません。

通っていたあの学校や遊んでいた公園や乗っていた電車やバスが無くなるかもしれない。
それらの「今はまだある音」を、アーカイブしておくことには意味があるかもしれません。
それらの音の記録には、私たち自身の「記憶」をアーカイブしているような意味もあるかもしれませんね。

事前の議論の中では、以下のような音の例が挙がりました。

というわけでともかく音を録ってみたいと思うのですが、いざ実際にやろうとなると色々と不安を感じる面もあると思います。
例えば、以下のようなことがあるでしょうか。

  • 人の話し声が入ってしまったけど大丈夫?
  • これって誰かが管理している音?
  • 何かの楽曲が偶然入っちゃったけど大丈夫?
  • オープンデータにして公開するってなんだか不安。

などなど。色々あると思います。
今日は近所で音楽イベントをやるらしいのですが、そのイベントの音って録って良いのかな?とか、JRの音って録っていいのかな?とか。

それで、今日はそのことも議論できたらいいのかなと思っています。
録音するときに感じた違和感や不安感も、あとでみんなの録った音を聴きながら共有して議論しましょう。

人の迷惑になるようなことはやってほしくないですが、今日のところはともかく録って、それをみんなで聴いて議論しましょう。
いちおうのガイドラインは作ったので、開始前に共有してから始めることにします。

今日やることは、大まかにはこんなことです。

続いて、「音」に関する活動をされている方にゲストに来ていただいているのでそのお話を伺ってから、実際のワークのやり方を話しましょう。

01-2.ゲストレクチャー

(ゲスト:青木真咲さん|株式会社Otono代表取締役)

こんにちは。
株式会社Otonoという、観光地向けの音声ガイドの会社をやっています青木といいます。
関西の出身で元々は静岡との縁はありませんでした。
新聞記者として勤めていた時期に転勤で静岡に赴任しましてすっかり気に入り、会社をやめて仲間達何人かと会社を起こしました。
今年で4年目ということになります。

オープンデータへの関わりは少ないのですけども、たぶん地域や街と「音」の関わりを仕事にしている人間ということで今日のワークショップと関連づけて呼んでいただけたのかなと思っています。
というわけで、私たちのやっていることを少し紹介します。

「音」を手がかりに地域の仕事をやろうということになったのには、最初はいくつか海外の事例を参考にしていました。
これはアルカトラズ島の例ですが、島の観光ツアーを音声ガイドでやっている事例として有名だったりします。この音声ガイドが、監獄だった時の囚人とか看守が出てくるラジオドラマのようになっていて面白くて、すごく人気があるツアーになっています。
こういうものを静岡でもやってみよう!という話になったのが、創業のきっかけです。

私自身は新聞記者だったので、その土地土地で色々な方の話を聞かせてもらえる機会がたくさんあったのも、これを面白いと思った理由の一つだろうと思います。
それぞれの人から聞く「ストーリー」にはその土地の記憶というか本質的な魅力が現れていて、消費されてすぐに終わってしまうだけの価値とは異なる意味があるのではないかと考えました。
いま「記憶」と言いましたが、先ほどの戸塚さんのお話の中にも「記憶」という単語が出てきたので、この辺りはコードフォー掛川のみなさんが考えておられることと近いのじゃないかなと思います。

これだけVRやARが話題になっている世の中であえて「音」でやることの意味の一つは、「視界を奪わない」ということです。
私たちは観光の本質的な点は「実際にその場所に行く」ことだと思っているので、VRヘッドセットなどで視界を遮られずに実際にその場所の景色を見ながら聴くことができる「音」が最適だったということです。
歩きながら聴くことができる「ながら消費」ができるというところも良いと思っています。

最初はミュージアム等の音声ガイドを作ったりして実績を積んでいったのですが、昨年末に『おともたび』という地域の音声ガイドサービスをリリースしました。

日本中・世界中の地図の上に好きな音声をマッピングできる、まちの周遊にぴったりな音声ガイドサービスです。
ミュージアムであれば展示物の近くにQRコードを配置すればその展示物についての音声ガイドを再生できるわけですが街中となるとそういうわけにもいかないので、スマホのGPS機能と連動して自分の場所を特定するシステムも開発しました。

スマホのブラウザ上で動くブラウザアプリです。
このサイトを開くとスマホの位置情報を使って、「近くにある音声ガイドスポット」が自動的に再生される仕組みです。
その場の現地体験を楽しんでいただきたい、という想いから、あえて「その場所に行かないと聴くことができない」仕組みになっています。

今日の会場である掛川だと近くに音がないですね。
私たちがいま特に注力している三保や静岡市内の方にいくと、いくつもの音が登録されています。

こういうふうに地図上で一覧はできるので、地図を見ながら街を歩いて実際にその場所に近づくと音が聞こえるということです。

音声ガイドってプロのナレーターさんとか声優さんとかにお願いして聴きやすいガイドを作るのが普通なのですけども、あえて「地域の人たち自身に出演してもらう」ということをやっています。
地域に住んでいる人やそこで仕事をしている人自身が自分の実感の中で話してくれている音声ですね。
例えば三保だと、「天気が悪い時は富士山も見えないし、三保にくる意味なんてないんじゃないかなー。」とか(笑)
観光地としての「情報」だけじゃなくて、その土地自体に根付いた人の声を聞けるように作っています。まさに「記憶」ですね。

基本的な仕組みとしてはこういう感じでできているので、今後は周遊性を高めたりスタンプラリーやルートなど機能を追加したりして楽しみを高めていきたいなと考えています。

というような形で、音で地域を楽しめるようなしくみを作りたいなと思ってやっています。

私たちの場合は、音といっても「声」に着目している部分が大きいです。
地元の方のお話とかですね。
今日のワークショップで扱うような「環境音」というのは、あればいいなということで議論にはのぼるのですが実際にはあまり取り組めていないので、私としても今日はどんなことになるのか楽しみです。

01-3.参加者ガイドライン

(コードフォー掛川メンバー:小野寺)

街の中で音を録音するためのガイドラインというか、注意事項の話をします。
今日のこの活動は有志の市民活動なのでまずは録音してみて公開するかどうか議論して考えれば良いと思うのですが、いちおう「こんなところには気をつけよう」という感じですね。
大きくは以下のような視点で考えてみました。

  • 著作権など知的財産権のこと
  • プライバシーのこと
  • 人の不愉快なことはしない/ひとことことわってみよう
  • 録音のために、法規を犯してはいけません
  • 録音して良いか?公開して良いか?

※詳しくは特設サイト「参加者ガイドライン」ページを参照

法律やら何やらについてありとあらゆることを厳密に考えると、何もできなくなってしまいます。
一方で、我々はなにか他人の権利を侵害して利益をえてやろうとかいう気持ちは当然ながら無いわけなので、自主的な市民活動としてどうなのかというのはグレーな部分があると思います。
なので、ここに書いたのはあくまでも一般論の範囲で気をつけることを書いただけという感じです。
戸塚さんの話にもありましたが、まずはここにあることに気をつけながらやってみて、終わった後に気が付いたことを共有して議論すれば良いのじゃないでしょうか。

01-4.投稿方法

(コードフォー掛川メンバー:深田)

今日のワークのやり方を説明します。
私の方で特設サイトを作って諸々の情報をそこにまとめました。
さっきの小野寺さんのガイドラインもそこに入っています。

※投稿方法の詳細は上記「投稿方法」ページ。

自分のスマホにアプリを入れて指定形式で録音し、専用のGoogleフォーム(当日のみのため、現在は投稿不可)から「タイトル」「場所|現在位置」「時間帯」「説明」「現場の写真」などの情報とともに音声ファイルを送信すると、自動的に公開データベース閲覧ページ「掛川音風景」に登録されます。

「場所|現在位置」に関しては現在位置取得ページを開いて緯度経度をコピペすればOKです。
スマホ以外の録音機器を持ってきた人も、ファイル形式を合わせてGoogleフォームから送れば同じように登録できます。

この投稿フォームはとりあえず今日のみ動かす予定なので、今日のワークショップ終了後は投稿できなくなります。(※現在は投稿受付を終了)

〜〜〜〜〜〜〜

この後、操作方法を覚えたら各自解散してそれぞれ音の録音に向かった。

〜〜〜〜〜〜〜

02.録ってきた音をみんなで聴いてみる

公開データベース閲覧ページ「掛川音風景」を見ながら。

何を録ってきたか。
録るときに感じたこと。
などを発表しながら議論した。

02-1.発表

【戸田】

風の音が気になったので、スマホをコートで覆って音を録った。
車掌の声や道行く人の声が入っているが、気にする人は気にするだろうか。
JRの人に何か言われるかもしれない。

【原】

南部の海の方まで行ってきた。
風の音が強かった。
現場では風車の音も聞こえていたが、録音するとなんだかわからない。

【縣】

【澤村】

【青野】

風の音がすごい。

【赤堀[S]】

【松本】

風の音が入ってしまって聞こえない。
風は見えないのに、音にすると存在感が大きい。

【八木】

おばちゃんの声がかなり入っていた。

【赤堀[T]】

昔、自分がバスケをやっていた公園。
子供がたくさんいて、遠目から録ったがきちんと録れているのか若干不安だった。
写真も載せたかったが子供を写すのがどうなのだろうと思って諦めた。

【春田】

  • 砂の音(風の音ばかり聞こえる)
  • ラーメンをすする音

ラーメン屋は、写真を撮る時のように店員に許可が必要だろうか?と考えて結局諦めた。
外国人にはすする音が不快かもしれない。そういうものをアップロードしてよいのだろうか。

【深田】

ポケットにスマホを忍ばせて録った。
店内の音なので、公開ページから削除したほうが良いか?

【廣岡】

【杉本】

太鼓の音だけを取ったつもりが周りの音も入っている。
現場では、人間の耳は太鼓の音だけを聴いているらしい。

02-2.まとめとふりかえり

やってみて気づいたこと。
次にやるならこんな風にしてみては?など

《録音のクオリティについて》

  • 思った以上に風の音や周りの人の話し声を録ってしまう。人に使ってもらうデータとしてオープンデータにするには、録音方法の研究が必要かもしれない。
  • 良い機材を使うという手もあるが、単純にスマホに手作りの風防をつけるくらいのことでも音質がよくなるということもあるかもしれない。
  • なにかにつけて風の音が入ってしまっているが、見方によってはこれは「やっぱり遠州のからっ風は強いんだ」ということをアーカイブしているという面もあるかもしれない。
  • 音質が低いということは、「知的財産権侵害」の問題になりにくいという面もあるかもしれない。この程度の音質でわざわざ権利者も訴えないかもしれないというか。
  • 録音のプロのような人に頼んでワークショップをやってもらうと、最低限の録音をできる腕前がつくのかもしれない。

《公開にあたって》

  • 今日録った音のクオリティの範囲では、いったん公開としておいて良いのではないだろうか。
  • 「記憶」とも関わるが、投稿内容にその音に関するエピソードを添えてあるとイメージが広がるので良い。
  • 同じ理由で、写真が一枚貼ってあると良い。
  • 今日の音は基本的にオープンデータとして、ダウンロードして使ってもらって良いものという考えで良いのではないか。
  • 著作権ということでいうと、録った人が著作者だろうか。
  • 登録されている音源の使用許可を考えた場合CCBYではなくCC0でということになるだろうか。

といったことが挙がりました。
これらを受けてこの活動を今後も継続するか、今回のワークで使った投稿サイトを一般からの投稿も受け付ける形で公開するかなど、今後さらにコードフォー掛川の中でも議論したいと考えています。

会の終了後は掛川駅前の「ファニーファーム」さんのおつまみセットをそれぞれ持ち帰り、バーチャルオフィスサービス「oVice」を使ってオンライン打ち上げを開催しました。

定例ミーティングを開催しました。(2022/03/19)

今回も定例になりました大日本報徳社の定例会です。
徐々にいい季節になってきて縁側からの日差しが気持ちいいです。

定例会では、3月1日にブリゲード参加したCodeforJapanの事務局から団体概要や各種プロジェクトについて情報共有をいただきました。

CodeforJapan事務局

改めてCodeforJapanの「ともに考え、ともにつくる」という理念が自分たちの活動にも共通する部分が多く、早速、連携してできそうなことはたくさんありそうだと言う話で盛り上がりました。
CodeforJapanのコミュニティは、約6300人もの方が参加されており、いろんな方との連携も期待できます。

今後もこのような形で様々な団体と連携してまいります。