音楽の自動分類&検索技術 〜まだ見ぬ「お気に入り」を求めて〜

きのう紹介した『ウェブ進化論』に書いてあったんだけどさ、テキストの世界では Google を筆頭として検索技術が確立してるじゃない。でもテキスト以外のメディア、たとえば画像とか動画とかに対する検索技術はまだあまり確立してるとは言えないのね。まぁ、マルチメディアに対する検索は「何を入力として何が出力されればいいのか」からして定義しにくいわけだが。今のところ、静止画に対しては「入力=1枚の画像、出力=それに似た画像」なら特徴量抽出による類似画像検索ソフトがあるし、「入力=キーワード、出力=それに関連する画像」なら Google イメージ検索がある程度の答えを出してくれるかなと。
んで思ったのは、音楽に対する類似検索/キーワード検索って、やればできるんじゃないのかな?
イメージとしては↓みたいな。

類似検索(入力=楽曲、出力=それに似た楽曲)
例:ある人がお気に入りの曲を検索エンジンにかけると、その人が気に入りそうな曲がリストアップされる。
キーワード検索(入力=キーワード、出力=その属性を持つ楽曲)
例:お気に入りのボーカリスト名を検索エンジンにかけると、声質の似たボーカリストの歌がリストアップされる。

これの何が嬉しいかというと、単なるキーワード検索と違って楽曲の内容に基づいて検索されること。つまり、厳密に指定されたキーワード自体を含んでいなくても、それと同じ傾向を持つ楽曲を見つけられる。手元の「お気に入り」を元手に、まだ見ぬ「お気に入り」を発掘できるわけだ。
実現方法としては↓のような感じ。

  1. まず、楽曲の中の特徴量(たとえばテンポ、周波数分布、楽器やボーカルの波形、 etc)を分析・数値化してデータベースに蓄えておく。ここは単純にフーリエ変換するだけでも、たとえばラップ系ヒーリング系では全然違う特徴量が得られそうな気がする。
  2. それぞれの曲に対してタグ付けを行う(キーワードと関連付ける)。ジャンル、歌手、作曲家、年代、地域などがタグになりうる。同じタグを持つ曲同士で特徴量の加重平均をとることで、「演歌の特徴」「モー娘の特徴」「1960年代の特徴」みたいなものが数値化できる。タグ付けは多人数で投票方式みたくするといいだろう。
  3. こうしてできたデータベースに対して検索をかける。類似検索の場合、入力された楽曲に対して特徴量を計算し、データベースの中から特徴量が近いものを探す。キーワード検索の場合、入力されたキーワード(複数可)が持つ特徴量をもとに、それらの特徴を併せ持つ楽曲を探す。

多人数でタグ付けをするあたりは、はてなブックマークの仕組みが使えそうだ。検索精度を左右する一番のキーポイントはやっぱ、人間が「似ている」と感じる楽曲同士が近い値を持つような特徴量の取り方だろうな。
…うーん、こんなのすでに誰かが研究してそうな気もするけど、そこらへんどうなんでしょ。やぎさんが詳しいかな?