情報処理学会 インタラクション 2014
IPSJ Interaction 2014

A4-5
2014/2/27

SoundShare:アドホックな情報共有のためのグルーピングの手法
依田みなみ†	  羽田久一†
概要：本研究では，接点の少ない人同士で一時的に形成されるグループ内で情報共有を行うために，音を利用したグルーピング手法を提案する．高周波数の矩形波を流し，それらを受信した Android デバイス間で共通のグループ ID を生成し，同じグループ ID を所有している物同士で情報共有を行う．また，本研究では，応用例として写真共有を目的としたアプリケーションを構築した．

SoundShare: Sharing Information Method for Ad-hoc Community
MINAMI YODA†	  HADA HISAKAZU†
Abstract: We propose a method to form an ad-hoc community among a number of people by sound signal from Android device.
In order to share information among a group, the leader-device streams a sound of high-frequency wave, then, other-devices
receive the sound and analyze it as a group-ID. We also develop photo-sharing application based on this method.

1. は じ め に

4 章ではアプリケーションも含め，実装したシステムについてについて説明する．5 章ではテストについて述べ，6 章	  近年，携帯端末―特にスマートフォンのカメラ性能が高では今後の課題を中心に議論する．最後に本稿の結論を述まったことにより，人々は手軽に写真を撮影できるようにべる．

なった．これにより，日常風景や友達と遊んだ時の写真等を共有する機会も増加した．

2. 携帯端末グループ化 と 情 報 共 有	  一 般 的 に ， 複 数 人 間 で 写 真 を 共 有 す る 手 段 と し て ，

2.1 音 を 利 用 し た 情 報 送 信 イ ン タ ラ ク シ ョ ン

Facebook や LINE のグループ内に写真をアップロードした

上記で述べた問題を解決するために，SoundShare では，アり，Dropbox や Picasa などの WEB サービスを利用して共ドホックなグループ化(以降，グルーピングという)と写真有をする．それらのサービスを利用するには， SNS を利用共有を実現するために音信号を利用する． 端末同士をグルする場合であればアカウントを教え合う必要があるし，フーピングするリーダーの役目を担う端末 (以降，リーダー

ァイル共有サービスを利用する場合はメールアドレスを教端末)がグループ ID を生成する音を鳴らし，他の端末(以える必要がある．

降，メンバー端末)はそれを録音する．その音を分析すると友人など頻繁に連絡をとりあう関係間で写真を行う場合グループ ID が生成され，この ID が一致すれば同じグルーは，既にアドレスや SNS アカウントを知っていることが多プであるとみなす．そして，そのグループ ID にもとづいてい．しかしながら，懇親会などの初対面同士の会合や，大各々の端末が写真をアップロード・ダウンロードするで写人数で写真を共有したい場合等，普段の生活では接点が少真を行う．

ない人々とデータの共有を行いたい場合は，アカウントや2.2 局所的なグルーピングにおける音 信 号 の 有 用 性

メールアドレスを教え合う必要があり，写真共有までに手音を用いて，その場限りのグループを生成する場合には以間がかかる．また，共有する人数が増えれば増えるほど連下のような利点が考えられる．

絡先の交換に時間がかかってしまい，非効率的である．

•

人情報を使わず，複数端末を簡潔にグルーピングし，写真共有をおこなえる SoundShare を提案する．
本稿は以下のように構成される．まず，次章で本研究が想 定する利用例に基づき，スマートフォン端末やタブレッ

音を利用する場合はスピーカーを通すことでボリュームを調整することができる．

上記の問題を解決するために，本研究では，SNS 上の個•

人数が少なければ小さい音に，逆に多ければ大きな音に変えることで対応でき，グループの作成範囲を動的に変化させることが可能である．
表 1	  他通信技術との比較

ト 間における，簡便な写真共有の必要性を述べる．そして，本研 究に対する関連研究についても述べる．3 章では，本研究が 提案する音によるグルーピング手法の概要と，本手法を実現するための音分析のアルゴリズムについて述べる．
† 東京工科大学 メディア学部	 

© 2014 Information Processing Society of Japan286

•

音は電波や赤外線等とは異なり，人間が認知することができる．これにより，どの端末がグルーピングの対象となっているのかを「音が聞こえた」ことで理解できるので，ユーザビリティの面から考えても適当である．

•音によるグルーピングはネットワーク環境 に左右されることがないので，電波状況の不安定な場所や地下であっても，グルーピングを行うことができる．グルーピン
グ以降の，写真のアップロードやダウンロードの動作
は，各々の端末が同じグループ ID を持っていればどこでも操作することができる設計をした．本研究ではグルーピングをローカルで完結させることを重視した．

図 1	  SoundShare 全体構成図と動作の概要

3. 関 連 研 究

2.3 他 通 信 技 術 と の 比 較	  端末間における情報通信は，研究はもちろんのこと，既

まず通信技術では，NFC[3]，Bluetooth[4]，QR コード[5]，に サービスとして一般に普及されているものも多い．

赤外線通信の 4 つに対して，通信距離，一度に何人と情報

Bump[1]は 2 つのスマートフォンをぶつけることによっ

共 有できるのか，加えてペアリングの方法を表 1 にまとめて，プロフィール情報を交換するシステムである．スマー

た．

トフォンの動きを加速度センサーを用いて検出し，GPS を筆者らはまず，グルーピングを行うにあたって，端末同士利用することによって近傍にいる端末を検出する．GPS はがある程度の距離にあっても，グループの一員として検知建物内に入ってしまうと精度が劣化してしまうため，屋内されることを重要視した．これは，人数が増えたときに対では近傍にいる端末の検出に失敗しやすいという問題があ応できるようにするためである．例えば，表 1-1 の 1NFC のる．また，加速度センサーの値が変化するという単純なイン場合 は通信距離が 10cm 以下のため，端末同士をかなりタラクションを採用しているので，意図せずして近くにい近づけなければいけない．人数が多くなればなるほど，現実る人間とグルーピングされてしまう可能性がある．また，的なインタラクションではなくなる．表 1-2Bluetooth の場

端末をぶつけるという操作を多くの人と行うことも困難で合は，通 信距離自体は大きく，大人数になっても対応でき

あ り ，個人間の情報の交換のためのインタラクションとしると考え るが，通信する相手は基本的に 1 対 1 である．まては適しているが，グループを生成する手法としては向いた，Bluetooth はペアリング手順が複雑であり，一方の端末ていないと考えられる．

を検出可能状態にし，もう一方の端末は周辺で Bluetooth	  寺本ら[2]は環境音を利用としたアドホックグルーピン機能を音にしている機器を探索する．そして，見つかったグの手法を提案した．グルーピングをする際に周囲の環境場合は接続相手を指定し，双方のパスキーの確認をすると音を利用し，音の類似度をサーバーサイドで処理するこという 4 ステップを踏まなければならない．表 1-3QR コードでグルーピングを行っている．この研究では，同じ環境音の場合は，同じ QR コードを見せることが出来れば，人数が得られる範囲のみでグルーピングをすることを目的としに制限はないが QR コードを複数の人に読み取らせる場ており，例えば大会議で会場全員の端末を一斉にグルーピ合には大画面に表示するか，大きな紙に印刷するといったングを行うときなどには向いていない．

対策が必要となり，その場でのグルーピングに対応するこ

4. SoundShare の 設 計 と 実 装とは困難である．また表 14 の赤外線の場合は，基本的に一人しか対応できない上に，通信距離も 1m 以下である．本研
究では， 限定的なグループを煩わしさなしで生成することが最も重要だと考えているが，以上のように他の通信手段によるペアリング方法では達成できないと考える．

4.1 	  シ ス テ ム の 設 計
アプリケーション全体の構成と動作の概要を図 1 に示す．
本システムではグルーピングを行うために，7 ビットのビット列を音信号に変換して送信する．7 ビットのうち 4 ビットはグループ ID となり，残りの 3 ビットはエラーチェックと訂正に用いる．エラーチェックと訂正については後述する．	  まず，リーダー端末が自身の端末から 7 ビットを生成するグループ ID 生成音(以降，グループ音という)を発生させ，グループ端末は音を受信し解析することでグループ ID を入手する．リーダー端末は，グループの名前，開始時間，© 2014 Information Processing Society of Japan287

表 2 音の意味と周波数音の意味

周波数開始の区別音

2500Hz

文字列 1 を生成

3000Hz

文字列 0 を生成

2000Hz中間音

3500Hz

表 3	  配列に格納される値	 終了時間を設定する．その設定をサーバーのグループ専用

Visualizer クラスのインスタンスでは，サンプリング周波数フォルダにアップロードする．グループ端末はインターネは 44，100Hz，キャプチャサイズは 1，024 と設定した．

ット接続環境にいる時に，そのグループ情報ファイルを取ファイルが渡されると同時に，8 ビットごとに，キャプチャ得し，グループ情報ファイルにしたがって写真のアップロ

サイズの大きさと同じ 1，024 個の配列が生成される．そードを行う．写真のアップロードは，グループ情報ファイの後， フーリエ変換を行う．前述した 1，024 個の配列のルに設定された開始時間と終了時間内に撮影された写真を中に周波 数の大きさ順に音の強さを格納する．

自動でアップロードするようにする．グループ専用フォル	  開始音である 2000Hz 音が格納されている配列を検出す

ダにアップロードされた写真は，アプリ内の写真ギャラリるための例を挙げる．これはサンプリング周波数が 44 ，ーで閲覧することができ，保存したい写真を選択すること

100Hz の場合，分解能は 21．53Hz(サンプリング周波数/ 2で端末に保存することが可能である．

/ 1，024)である．表 3 にあるように，分解能 1 に対して二4.2 ア プ リ ケ ー シ ョ ン の 実 装

つの配列が生成され，フーリエ変換をした結果 の実部(RF)まず，音情報の解析の詳細な手順を以下に示す．リーダーと虚部(IF)がそれぞれの配列に入っている．(表 3 参照)また，端末 からグループ ID をエンコーディングした音を出力

本稿では虚部の値を使っている．つまり分解能 が 21．

し，メンバー端末でその音を録音してフーリエ変換にかけ

53Hz の場合，2000Hz の音の強さの結果は，計算上 86 番る．この手法を利用するために，Android のライブラリであ目の配列に入っていることになる．単位時間内に 86 番目

る AudioRecord， MediaPlayer， Visualizer の 3 つを利用の 配 列 の 中身に格納されている数値が一 番大きければ，した．まず，録音の機能は AudioRecord [7] を利用して2000Hz の音が強く出ているということである．本研究では，wave ファイルを作る．次に，MediaPlayer[8]を利用して，単位時間内に一番音が大きく出ている音の周波数で解析をAudioRecord で 作られたファイルを読み込む．そして，行った．

android でフーリエ 変換や波形を表示する Visualizer[9]を以上の手順を踏むことによりユーザーの端末同士が同じ利用してフーリ変換を行う．

グループであるかどうかを判断するグループ ID を生成す	  本研究では 4 種類の音を使用した．まず，音によるビッる．そして，このグループ ID が一致するか否かでグルーピ

ト送信の開始音として始めに 2500Hz を 1 秒流す．開始音

ング行う．

以降に流された 3000Hz の音をビット 1，2000Hz の音ビッ

4.3 音 受 信 時 の エ ラ ー チ ェ ッ ク と エ ラ ー 訂 正ト 0 として Android の Visualizer クラスで解析する．ビット

	  音からビットを生成するときに，周波数フィルタでおお音は 0.125 秒の長さである．より短い転送時間を実現する

よそのビットを生成することができるが，雑音などが入っためにそれ以上の短い音で解析実験をしたところ，音が早た場合の対応として，1 ビットエラーチェックと 1 ビットすぎて解析にミスが出ることが多かったため，0.125 秒でエラー訂正を実装した．グループ音から解析して生成され実装をした．

た 7 ビットの 0 と 1 の数字が，もし誤っていた場合，1 ビ	  また，Visualizer クラスの音の解析タイミングによってはットのエラーを検出し，該当ビットを訂正する．これによビットが重複して解析されてしまう場合があるため，り，グループ ID の解析をより確実にすることができる．

3000Hz と 2000Hz の間に 3500Hz の音を挟み，3500Hz の音	  7 ビットの内訳は，グループ ID4 ビット(G1〜G4)とエラが間に挟まっている場合のみビット生成をするようにした．

ーチェックとグループ ID の誤りをチェックするための 3以上の説明を表 3 にまとめる．

ビット(E1〜E3)である．	  音を高音にした理由は，周囲が騒がしくなっても解析し	  検出手法であるが，まずグループ ID の 4 ビット生成後，やすくするためである，我々の実験では 2000Hz 以下の音

下記の組み合わせで XQR をとり，その結果が 0 となるよは環境音に吸収され，解析しにくくなってしまったため，

うに E1〜3 のビット列を生成する．

2000Hz 以上の音を利用した．

© 2014 Information Processing Society of Japan•

E1，G1，G2，G4•

E2，G1，G3，G4•

E3，G2，G3，G4288

表 4 評価実験の環境

6. お わ り に

実験環境

昼食時間帯の学内マクドナルド

使用端末

Nexus5，GaraxyS2

析 することでグループ ID を生成するという手法を提案

端末間の距離30cmした． これを実現するために，環境音に含まれない高周波

本稿では，アドホックにグループ化を行うために，音を分数の音をグループ音とし，ビット送信時のエラーチェック	  7 ビットすべての生成が終わったら，それを音に変換し，とその訂正を行うことで，送信の精度を向上させた．

受信側，つまりメンバー端末で解析を行う．解析方法は，音を解析して生成されたビット列に対し，再度上記の組み今後の課題として，実験時に近くで食事をしていた人の合わせで XOR をとり，結果が 0 になればエラーなしとみ多くがグループ音に反応したため，日常にない異常な音となす．3 通りの組み合わせのうちどこかが間違っていた場して周囲の人に怪訝がられた点があげられる．この点につ合は，エラー検出を行う．G1〜G4 のどれかが誤っていたいては，異常を感じさせないように，更に高周波数の音を場合，エラー検出ビットが 2 つ間違うことになる．例えば，グループ音として使用することで，改善できる可能性があ

G1 は E1 と E2 にまたがっているため，E1 と E2 が異常だる．しかし，我々はグルーピングの際に音を利用したメリった場合 G1 が誤っているとみなし，ビット反転をおこなットとして「どこの範囲にいればグルーピングされるかがうといったものである．エラー検出ビットが誤りだった場わかりやすい」という点も重視しているため，グループ音合は，エラー検出ビットは 1 つのみ誤りになるので，該当を非可聴域で行うかどうかは考える必要がある．のエラー検出ビットをビット反転する．
4.4 写 真 ア ッ プ ロ ー ド 機 能 の 実 装

参考文献

リーダー端末は，グループの情報設定画面でグループ名と，

1) BUMP TECHNOLOGIES， INC．，Bump ， http://bu．mp/company/
2) 寺本 幸生，野田 潤，2013，O-MUSUBI: 環境音を利用するアドホックグルーピング – 音場の情報理論的素性に基づく類似度 –3) NFC Forum， NFC， http://www．nfc-forum．org/home/4) Bluetooth SPECIAL INTEREST GROUP， Bluetooth， http://www．
bluetooth．com/Pages/Bluetooth-Home．aspx
5) デンソーウェーブ QR コードドットコム，QR コード，
http://www．qrcode．com/request．html
6) Android で音声解析！Visualizer による高速フーリエ変換（FFT），
http://geekn-nerd．blogspot．jp/2013/05/androidvisualizerfft．html
7) AudioRecord - Android developer official site http://developer．
android．com/reference/android/media/AudioRecord．html
8) MediaPlayer - Android developer official site http://developer．
android．com/reference/android/media/MediaPlayer．html
9) Visualizer - Android developer official site http://developer．android．
com/reference/android/media/audiofx/Visualizer．html
10) ビット誤りについて	  http://z．apps．atjp．jp/memo/teisei．html

アップロードしたい写 真 を 撮 影 し た 時 間 帯 (想定では飲 み会等の開始時間から終了時間) を指定する．これらの設定はリーダー端末が行い，サーバにアップロードされる．	  各々の端末はサーバにアップロードされたグループ情報ファイルを取得し，情報内の時間にしたがって写真をアップロードする．アップロードは時間にしたがって自動でアップロードされる．
4.5 サ ー バ ー サ イ ド の シ ス テ ム の 実 装	  サーバーサイドでは主に PHP で実装を行った．リーダー
端末からグループ情報設定ファイルがアップロードされる時に，グループ ID 専用フォルダを生成し，その中にグループ情報設定ファイルを格納．グループメンバーはグルー
プ ID でサーバに問い合わせをし，グループ情報ファイルを取得したり，写真をアップロード・ダウンロードをおこ
なう．写真がアップロードした際，アプリ側でギャラリー表示の際にサムネイルを利用するために，サムネイルも一緒に生成するようにした．

5. 実 験 と 評 価
5.1 音 に よ る グ ル ー プ ID の 生 成 と 伝 送
騒がしい飲食店でグルーピングの評価実験をおこなった．
実験環境を表 4 にまとめる．
5.2 実 験 結 果
端末間の距離で，同じグループ ID が生成されることを確認した．よって，理論上，正常にアプリケーションが動く端末が 30cm 以内にあればすべての端末をグルーピングすることができる．

© 2014 Information Processing Society of Japan289