2 ポイント 投稿者 GN⁺ 2023-12-06 | 1件のコメント | WhatsAppで共有

要約タイトル: Shazamの音楽認識技術の仕組み

Shazamとは何か?

  • Shazamは、周囲で再生されている音楽を識別するアプリである。
  • アプリを開き、音楽が再生されている間に数秒間オーディオを録音して、データベースで検索する。
  • 過去には電話番号経由でサービスを提供しており、通話品質の限界のため音楽認識は難しい作業だった。

音楽認識が難しい理由

  • 信号処理に慣れていない人にとって、オーディオ信号の複雑さゆえに音楽認識は難しい問題である。
  • 曲の特定部分をトラック全体から見つける総当たり方式は非常に遅く、バックグラウンドノイズや周波数効果などによって信号の形が大きく変わる可能性がある。

システム概要

  • Shazamは、音楽を登録する流れと認識する流れの2つに分かれており、どちらの流れにもスペクトログラムの計算、スペクトログラム内のピーク検出、ピークのハッシュ化といった共通の段階がある。
  • 登録フローではハッシュをデータベースに保存し、認識フローではデータベース内のハッシュと比較して再生中の曲を識別する。

スペクトログラム計算

  • オーディオのスペクトログラムを得るには、Fourier変換を理解する必要がある。
  • Fourier変換はオーディオに存在する周波数を示し、これによって時間に応じた周波数の変化を表すスペクトログラムを生成する。

スペクトログラム

  • スペクトログラムは、時間とともに変化する周波数をよりよく表現するために、曲を小さな部分に分けてFourier変換を適用する。
  • スペクトログラムは、時間(X軸)、周波数(Y軸)、強度(Z軸/色)の3Dグラフである。

指紋生成

  • スペクトログラムから最も大きな周波数を示すピークを見つけ、オーディオの固有の指紋を抽出する。
  • これらのピークはノイズやその他の歪みにも耐えられるため、指紋生成に適している。

ピーク検出

  • スペクトログラムのピークは信号内で最も強い周波数を表し、オーディオ指紋で利用するために均等に分布している必要がある。
  • 最大フィルタ手法を使ってスペクトログラムのピークを強調し、その位置を見つける。

ハッシュ化

  • スペクトログラムのピークのペアを作ってハッシュを生成し、これによって一意性を高める。
  • ハッシュには2つのピークの周波数と時間差が含まれ、データベースに保存される。

マッチング

  • データベース内の指紋コレクションから、与えられたオーディオサンプルと一致する指紋を見つける過程を説明する。
  • ハッシュを検索し、曲ごとにグループ化したうえで、ハッシュが一致しているかを確認し、最も多く一致するトラックを選ぶ。

結論

  • Shazamは、曲を登録して認識するために、スペクトログラム計算、ピーク抽出、ハッシュペア生成、指紋保存などの過程を経る。

GN⁺の見解

  • この記事で最も重要なのは、Shazamが音楽を認識する複雑な過程をわかりやすく説明している点である。
  • 技術的な詳細を段階ごとに分解し、初級ソフトウェアエンジニアでも理解できるようにしている点が興味深く魅力的である。

1件のコメント

 
GN⁺ 2023-12-06
Hacker Newsのコメント
  • Shazamの効率的なハッシュベースのアプローチ

    2008年にShazamが登場した当時、楽曲を計算効率よくハッシュに変換する方法を開発したのは賢明なアプローチだった。今日この種のサービスを立ち上げるなら、基本的にはモデルを学習させるR&D的な手法を取るだろうが、それは非効率でコストもかさむ可能性がある。楽曲数は有限なので、ハッシュベースのアプローチのほうがはるかに高性能になり得る。

  • Shazamが今なお持つ魔法のような魅力

    Shazamは20年以上たった今でも魔法のように感じられる数少ない製品の1つであり、技術者が目指すべき対象だ。

  • Shazamの仕組みを説明するWall Street Journalの動画

    Wall Street Journalが制作した、Shazam独自のオーディオフィンガープリントの作り方を説明する美しい動画がある。

  • ChromaprintとAcoustIDの説明

    Chromaprintはスペクトルの最大値ではなく音高変化のパターンに基づいて動作し、AcoustIDという大規模なオープンデータベースで使われていて、MusicBrainzの録音とオーディオフィンガープリントを結び付けている。Shazamほど商業的な支援を受けていないにもかかわらず、データベースには多くの音楽が含まれており驚かされる。

  • Shazamとデジタル信号処理に関する興味深い記事

    Shazamの仕組みとデジタル信号処理についての優れた入門記事で、オーディオフィンガープリント認識がどのように機能するのか理解したい人には必読だ。

  • 他のメディアにも応用できる類似アルゴリズム

    オーディオフィンガープリント認識だけでなく他のメディアにも適用できる類似の近似アルゴリズムがあり、現実世界のハッシュを理解したい人はこの文章をじっくり読むべきだ。

  • Every Noise At OnceというWebサイトの重要性

    Every Noise At Onceは、音楽ジャンルの分類や新しい楽曲シグネチャが導入する分岐したサブジャンルにアルゴリズムマッチングを適用する驚くべきサイトだが、ホスティング問題のためにサービス停止の危機にあり、もし失われればワールドワイドウェブにとって大きな損失になるだろう。

  • 音楽認識プロセスの直感性

    このシステムは、私たちの認識プロセスと非常によく似た形でメロディの断片を識別し、それを順番にマッチさせる方式で、私たちがいくつかの音符を聞いて曲を認識するやり方と一致している。

  • 音楽認識に使われるフーリエ変換

    音楽認識でよく使われるフーリエ変換への言及があり、これはEchoprintというオープンソース版でも使われていたが、Spotifyに買収された後にサービスは終了した。