2015-03-03 70 views
2

我正在開發個人項目。基本上我有一個小的聲音剪輯集合,如拍手或嘟嘟聲。我想創建一個程序,通過麥克風或某種形式的音頻輸入來偵聽聲音,當播放聲音片段時,它應該識別該片段。使用Java識別wav文件中的聲音片段

我已經試過尋找這個自己,並已找到這篇文章。 http://www.redcode.nl/blog/2010/06/creating-shazam-in-java/

我試着複製它,但我發現它不能按預期工作。我猜測我用來創建散列的聲音片段太小,無法創建足夠的值進行比較。想知道是否有任何知道的程序或算法能夠做到這一點。

回答

2

丹埃利斯'slides可能是一個很好的開始。他們解釋音頻指紋識別的主要任務和兩個最有名的方法:

  • 的Shazam的算法由A.王(paper
  • 飛利浦(現在的Gracenote公司)算法通過Haitsma/Kalker(paper

正如您已經嘗試過具有里程碑意義的(Shazam)方法,或許值得您花時間來擺脫基於流的方法。由於您的查詢非常短,您可能還想調整分析框架長度和重疊。較短的框架和較大的重疊可能會改善您對極短時間樣本的結果。如果你想更深入地研究Haitsma/Kalker算法,你可能也會對這個不幸的支付paper(由我)感興趣。