スマホの「曲名当て」ってどういうしくみ?
スマートフォンでアプリを起動し、少しの間放置すると周囲でかかっている曲を割り出してくれるアプリが人気です。曲のイントロ部分、サビの部分でなければ識別できないことはなく、適当な部分でOK。「Shazam」などのアプリが人気100%とはいかないものの、かなりの確率で曲名・アーティスト名を当ててくれます。偶然かかっていた曲が気に入ったから曲名を知りたい、という場面で便利に使えること間違いなしです。それにしても気になるのはそのしくみ。スマートフォンに内蔵のマイクで集音し、その音データを分析しているのだろうというアタリはつけられても、その先は...アプリが超絶高度な演算をしている気配はなく、内蔵マイクが頭抜けて高性能というわけでもなし、流れている曲が低音質なうえに周囲が雑音だらけの状況でも動作するのだから、不思議に感じるのは当然です。一般論でいえば、その仕掛けは「音声フィンガープリント」です。曲名当てに関してはいくつものアプローチ/アルゴリズムが存在しますが、なかでも知られているのは「曲ごとのスペクトログラムの特長をハッシュ化(一定のルールに基づきデータ化)して検索対象とする」方法。ざっくりいうと、スマートフォンのマイクで集音した音データを分析、そのハッシュ値が近似する曲をあらかじめ蓄えておいたクラウドのデータベースで検索し、曲名を割り出すのです。ヒトが曲を認識するときは、ドレミファソラシドといった音階/メロディーをたよりにするものですが、曲名当てアプリ/サービスの場合は周波数の上下幅や時間差などから導き出される “指紋” が決め手になります。音声フィンガープリントはあくまでひとつの方法ですが、スマートフォンの曲名当てはヒトの曲認識とかなり違うことは確かです。
海上忍