2015-03-03 37 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(由我)感兴趣。