音楽のフィンガープリントはどのように機能しますか (Shazam や Lala.com などのサイトの場合)?
-
20-09-2019 - |
質問
私の大規模な (120 GB) 音楽コレクションには重複した曲が多数含まれており、重複を検出することを期待してトラックのフィンガープリントを試みてきました。私は CS 専攻なので、そこで何が行われているのか非常に興味があります。私がやっていることは、Shazam や Lala.com ほど正確なものではありません。どのようにしてトラックを「ハッシュ」するのでしょうか?すべてのファイル (26,000 ファイル) に対して標準の MD5 ハッシュを実行しましたが、異なるトラックに数百の等しいハッシュが見つかったため、機能しません。
Shazam とは異なり、Lala.com は完全なファイルを扱うため、私は Lala.com に興味がありますが、どちらも同様のテクニックを使用していると思います。音楽の一意の識別子を生成する方法を説明できる人はいますか?
解決
オーディオフィンガープリントの精液の論文は、2002-03でHaitsmaとKalkerの作品です。オーディオのフレーム毎に、それは、(時間フレーム及び周波数帯域の両端の差)を前処理した後、フレームのスペクトルの二値化バージョンを格納します。
この手順では、堅牢性を追加します。全体の信号が時間的にシフトされている場合、それはまだ(少なくとも、1は、パフォーマンスの低下の下限を導き出すことができます)動作します。それは、環境騒音にかなり堅牢です。創業以来、低レベルの音楽の類似性に多くの論文があったので、単一の答えはありません。
あなたは絶対に同一のファイルを持っていますか、すなわち、信号が時間整列され、ビット深度が同じで、サンプリングレートは同じですか?それから私は、MD5などのハッシュが動作するはずだと思うでしょう。これらのパラメータのいずれかが変更された場合でも、そのハッシュをでしょう。このようなイベントでは、先に述べたような手順では、より良い仕事でしょう。
ISMIR手続利用できる無料のオンラインを見てみましょう。楽しいもの。 http://www.ismir.net/する
他のヒント
いくつかのより多くの研究(!これがすべてでは決定的ではないが)した後、私は彼らが使用するアプローチのいくつかを詳細にMusicBrainz.orgでのwiki全体で起こっます: