使用Java识别wav文件中的声音片段

时间:2015-03-03 03:19:00

标签: java audio javasound

我正在从事个人项目。基本上我有一些小的声音片段,如拍手或嘟嘟声。我想创建一个程序,通过麦克风或某种形式的音频输入来监听声音,当我播放声音片段时,它应该识别该片段。

我自己试过这个并找到了这篇文章。 http://www.redcode.nl/blog/2010/06/creating-shazam-in-java/

我尝试复制它,但我发现它没有按预期工作。我猜测我用来创建哈希的声音片段太小而无法创建足够的值来进行比较。

想知道是否有任何熟悉的程序或算法能够做到这一点。

1 个答案:

答案 0 :(得分:2)

Dan Ellis'slides可能是一个好的开始。他们解释了音频指纹识别的主要任务和两个最着名的方法:

  • A. Wang的Shazam算法(paper
  • Haitsma / Kalker的飞利浦(现为Gracenote)算法(paper

由于您已经尝试过具有里程碑意义的(Shazam)方法,或许值得花些时间来摆弄基于流的方法。由于您的查询非常短,您可能还需要调整分析帧长度和重叠。较短的帧和更大的重叠可以改善非常短的样本的结果。如果您想更深入地研究Haitsma / Kalker算法,您可能也会对此感兴趣,不幸的是,我支付了paper(我)。