私は協力的な音楽識別サービスを作成する必要があります。すべてのユーザーは、曲をフィンガープリントし、メタ情報付きのサーバーに送信するオプションがあります。最初にサービスデータベースは空になり、音楽フィンガープリントが受信されるたびに、その曲のメタデータが更新されます(サーバーは、異なるユーザーがそれぞれ異なる情報を送信する場合、多数の選択肢に基づいて指紋にメタデータを割り当てます)同じ指紋)。どのようにオーディオ指紋アルゴリズムを選択して協力音楽データベースを作成しますか?
私は曲全体の指紋を計算する必要があります。ちょっと分かりやすい曲を特定する必要はありません。
指紋が100%正確であるべきではありません。同じファイルが異なる圧縮率でエンコードされている場合、2つの曲ファイルが同じフィンガープリントを受信すると私は満足します。低レベルのノイズの独立性はプラスになります。
黙っていても問題ありません。私は標準的な無音抑圧アルゴリズムを使用して削除する必要があります(この場合も非常に正確な結果は必要ありません)。
http://echoprint.me/とhttps://acoustid.org/のようないくつかのオープンソースライブラリがあると知っていますが、theesライブラリは私の必要に応じて徹底的に使用されています。私は全体の曲のためにあまりにも重くない(いくつかのkb)指紋を与えるアルゴリズムが必要です。
魔女は私が使うことができる最も単純で高速なアルゴリズムですか?すべて
この問題は、実際にははるかに複雑なそれはそう以上です。 Googleは、コンテンツIDアルゴリズムにかなりの投資をしました。これは動画で使用されている音楽のアルゴリズムと同じです。それは時々かなり間違っていることが知られています。 – Philipp
これは、C#/NET](https://github.com/nelemans1971/AudioFingerprinting)で書かれたAudio Fingerprintingソフトウェアが役に立ちます。 – wp78de