32

プログラムで 2 つのオーディオ ファイルを比較したいと考えています。例: iPhone アプリにサウンド ファイルがあり、別のファイルを録音します。既存の音が録音された音と一致するかどうかを確認したい ( - 音声認識に似ています)。

どうすればこれを達成できますか?

4

4 に答える 4

13

とにかく、モバイルデバイスには適していないオーディオフィンガープリンティング計算をサーバーに実行させます。次に、モバイル アプリがファイルをサーバーにアップロードし、分析結果を取得して表示します。したがって、それを実装するプログラミング言語はそれほど重要ではないと思います。次に、いくつかの AF 実装を示します。

Java: http://www.redcode.nl/blog/2010/06/creating-shazam-in-java/

VC++: http://code.google.com/p/musicip-libofa/

C#: https://web.archive.org/web/20190128062416/https://www.codeproject.com/Articles/206507/Duplicates-detector-via-audio-fingerprinting

于 2011-08-11T16:37:07.747 に答える
5

ずっと前に質問されたことは知っていますが、明確な答えは他の誰かを助けることができます.

  1. Echoprintのライブラリ(ウェブサイト: echoprint.me/start ) は、次の問題の解決に役立ちます。

    • 大きなコレクションの重複除去
    • ハードドライブまたはサーバー上の曲を識別 (トラック、アーティスト...)
    • データを使用して Ecoprint サーバーを実行する
    • iOS デバイスで曲を識別する

    PS: その他の音楽指向の機能については、ここでAPIのリストを確認できます。

  2. フィンガープリンティングを自分で実装したい場合は、ここに参考文献としてリストされているドキュメントを読む必要があります。おそらく、Google Code の musicip-libofa を参照してください。

これが役立つことを願っています;)

于 2013-04-15T19:26:38.697 に答える
3
  • バンドパス フィルターを適用してノイズを低減する
  • 振幅の正規化
  • 相互相関を計算する

かなりMhzが集中する可能性があります。

DSP の詳細は、よく知られているテキストにあります。

  • Alan V. Oppenheim と Ronald W. Schafer によるデジタル信号処理
于 2011-08-18T05:13:07.777 に答える
2

同様に、両方のオーディオトラックから数秒のサンプルを選択し、それらを振幅で正規化し、バンドパスフィルターを使用してノイズを低減し、相関器を使用してみてください。

たとえば、2つのうちの1つの5秒間のサンプルを取得し、それを2つ目のサンプルの上にスライドさせて、シフトするたびに相互相関を計算することができます。(小さすぎるパケットを使用すると、予期しないときに高い相関が発生する可能性があり、信号のトリミングと相互相関による副作用が発生する可能性があることに注意してください)。相互相関の結果をすべて含む配列を収集した後、最大値のインデックスを取得できます。

次に、実験的にしきい値を設定する必要があります。これは、いつパシェが同じであると想定するかを決定します。これは、比較しているオーディオトラックの品質に応じて変わります。

無線通信で前文を受信して​​区別するためのコリエーターを実装しました。私のスクリプトは実際にはmatlabで実行されます。あなたが興味を持っているなら、私は共通の部分を見つけてあなたにそれを送ることを試みることができます。

フォーラムに貼り付けるには長すぎるコードになります。よろしければお知らせください。できるだけ早くお送りします。

乾杯

于 2011-08-18T11:30:21.737 に答える