2011-08-13 9 views
2

私が持っているオーディオファイル(mp3)にオーディオサンプル(ユーザーが提供する)を識別したいと考えています。ファイル内のオーディオサンプルを特定する

mp3ファイルは、テスト目的で保管したラジオストリームで、私はショーのプレロールを持っています。私はファイル内でそれを特定し、ファイル内で再生中のタイムスタンプを取得したいと思います。

注:このソリューションは、Java、Python、またはC++のいずれかのプログラミング言語で使用できます。私はビデオファイルをどのように分析するのか分からず、このテーマについての参考文献が役立ちます。

+0

はっきり聞こえるものにマッチさせようとしていますか?または、透かしソリューションをお探しですか? (http://en.wikipedia.org/wiki/Audio_watermark_detection) – Brad

答えて

3

この問題は、オーディオフィンガープリンティングのカテゴリに該当します。サンプルをソングにマッチさせた場合、ソング内でサンプルが出現するタイムスタンプは確かに分かります。 Shazamの背後にいる人たちが技術を説明している偉大な論文があります:http://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf彼らは基本的にスペクトログラムのローカル最大値を取り出し、相対位置に基づいてハッシュを作成します。ここで

は、オーディオフィンガープリントアルゴリズムの良いレビューです:いずれの場合でhttp://mtg.upf.edu/files/publications/MMSP-2002-pcano.pdf

、あなたはおそらくFFTおよびスペクトログラムで多くの作業になります。 This postはPythonでそれを行う方法について話しています。

2

私は、干草と針の両方のファイルのFFTスペクトログラムを計算することから始めます。その後、スペクトログラムを試してみるといいかもしれません。イメージとしてフォーマットすると、そのために既製のアルゴリズムを使うことさえできます。

正規の方法か最適な方法かどうかはわかりませんが、うまくいくはずです。

関連する問題