WhiteBoard -技術解説とあれこれ-

身近なすごい技術をわかりやすく解説

【第3回】音の指紋

 音楽検索が可能なアプリ「Shazam」は、道端で流れている音楽を数秒で特定できる機能を持っている。現在はApple Musicと連動し検索した曲のフルバージョンをその場で聴くことができ、新たにアーティストを知るキッカケを得ることもできる。

今回はこの「Shazam」の音楽検索機能について解説していく。

Shazam - 音楽検索

Shazam - 音楽検索

  • Shazam Entertainment Ltd.
  • ミュージック
  • 無料

 

 まず、タイトルの意味から説明しよう。「音の指紋」という言葉は音楽検索機能を実現している「音声フィンガープリント技術」からとったもので、指紋認証技術の音声版といったイメージだ。

 指紋認証では、あらかじめ登録しておいた指の模様とそこにいる人の指の模様が合致しているか照合しており、模様の特徴を比較している。同様に「音声フィンガープリント技術」でも、音声の特徴をあらかじめ登録されている音楽の特徴と比較し、合致しているか照合しているのだ。簡単に述べたが、この「特徴」を捉える方法こそが最大のポイントであり、そこには信号処理の基本的な技術が使われている。

 

■音楽検索機能を実現する3つのステップ

 音声フィンガープリント技術で音楽を特定するためには大きく分けて3つのステップが必要なる。

①音声データを特徴がわかりやすくなるように変換

②変換したデータから特に特徴的な部分を抽出

③抽出した特徴と似た特徴の音楽があるか比較

この3つのステップは理数系に拒否反応が出る人にも読んでもらえるよう、かなり抽象的に書いた。今回はこのステップのうち最も基礎的な①について説明する。

 

■音声データの変換

 先程、音声データと書いたがここでは「波形データ」を指している。波形データのイメージを下図に示す。

f:id:xxxxmhj:20150711162739j:plain

波形データは横軸は時間で縦軸が音の大きさとなる。この状態でわかることは「このときにはこのくらいの音の大きさ」ということぐらいで、特徴を捉えるにも時間に対して音の大きさの変化が似た音楽はたくさんあるだろう。これでは曲を特定することはできない。

 

曲を特定できるぐらいのはっきりとした特徴になるものは何だろうか?

ここで「音色」に着目する。

そもそも「音色」とは、そのときに聴こえてくる「音の高さ」と「音の大きさ」で決まる音の感覚的な特徴を指す。音楽であれば、普通は音の高さは1種類ではなく色々な高さの音がいっぺんに聴こえてくる。数秒の間、音色に着目して曲を比較すれば似た曲でも判別できるくらいはっきりとした特徴が捉えられるのでは?という発想だ。

 

では、音色に着目しやすいようデータを変換するとなると、「音の高さ」と「音の大きさ」がわかりやすくなった方が特徴が見えやすい。音の高さは言い換えると音の周波数である。音の周波数ごとに音の大きさがわかるように変換したい。そこで登場する技術が「フーリエ変換」である。200年くらい前にフーリエは「あらゆる信号は色んな周波数の信号の足し算で再現できる」ことに気づいたそうだ。言い換えれば、どんな音でもその音色を音の高さごとに分解できるということだ。

フーリエ変換」の中身については、この場では書ききれないので興味を持った人は、まずフーリエ級数展開から検索してみてほしい。

 

先程の波形データのある瞬間をフーリエ変換した結果が下図だ。

f:id:xxxxmhj:20150711172223j:plain

横軸が周波数(音の高さ)で縦軸が音の強さだ。音の大きさと音の強さは同じものではないが、ここでは似たものと考えてほしい。

ここまでできてしまえば、ピークになっている周波数等に着目すれば、その音色の特徴を捉えることができる。この変換結果はある一瞬のものだが、数秒に渡って特徴を記録しておけば、その特徴は世界で1つ(1曲)のものになるだろう。

 

あとは、あらかじめ登録してある曲の特徴データとマイクから入ってきた音声の特徴を比較し、似たものがあれば曲を特定できるというわけだ。

 

いかにもすごい技術だぞといった風に書いたが昔から使われている信号処理の基本的な技術である。世の中フーリエ変換まみれである。

 

興味が湧いたらぜひ関連技術を調べてみてほしい。