2016-11-23 3 views
1

私は協力的な音楽識別サービスを作成する必要があります。すべてのユーザーは、曲をフィンガープリントし、メタ情報付きのサーバーに送信するオプションがあります。最初にサービスデータベースは空になり、音楽フィンガープリントが受信されるたびに、その曲のメタデータが更新されます(サーバーは、異なるユーザーがそれぞれ異なる情報を送信する場合、多数の選択肢に基づいて指紋にメタデータを割り当てます)同じ指紋)。どのようにオーディオ指紋アルゴリズムを選択して協力音楽データベースを作成しますか?

私は曲全体の指紋を計算する必要があります。ちょっと分かりやすい曲を特定する必要はありません。

指紋が100%正確であるべきではありません。同じファイルが異なる圧縮率でエンコードされている場合、2つの曲ファイルが同じフィンガープリントを受信すると私は満足します。低レベルのノイズの独立性はプラスになります。

黙っていても問題ありません。私は標準的な無音抑圧アルゴリズムを使用して削除する必要があります(この場合も非常に正確な結果は必要ありません)。

http://echoprint.me/https://acoustid.org/のようないくつかのオープンソースライブラリがあると知っていますが、theesライブラリは私の必要に応じて徹底的に使用されています。私は全体の曲のためにあまりにも重くない(いくつかのkb)指紋を与えるアルゴリズムが必要です。

魔女は私が使うことができる最も単純で高速なアルゴリズムですか?すべて

+0

この問題は、実際にははるかに複雑なそれはそう以上です。 Googleは、コンテンツIDアルゴリズムにかなりの投資をしました。これは動画で使用されている音楽のアルゴリズムと同じです。それは時々かなり間違っていることが知られています。 – Philipp

+0

これは、C#/NET](https://github.com/nelemans1971/AudioFingerprinting)で書かれたAudio Fingerprintingソフトウェアが役に立ちます。 – wp78de

答えて

2

おかげで私はあなたがAcoustIDプロジェクトを使用することをお勧め。あなたの説明は、このプロジェクトと多くの点でマッチしています。彼らのアプローチのうちのいくつかだけが、あなたが示唆しているものと異なっています。

サービスで短いオーディオスニペットを特定できますか?

いいえ、できません。このサービスは、フルオーディオのファイルを識別するために設計されています。 ファイル。最終的にこのユースケースもサポートしたいと考えていますが、 これは現在のところ優先事項ではありません。 が実装されている場合でも、元のオーディオ (長いオーディオストリームのトラックリストを作成するなど)と一致するようになり、電話にバックグラウンドノイズが記録された音声 は記録されません。

いくつかのより良い説明のための彼らのメーリングリストを見てください:https://groups.google.com/forum/#!forum/acoustid

関連する問題