2014-08-27 378 views
1

我发现了一些关于这个主题,但没有密切相关,所以没有找到答案。Java - Wav音频分割

我正在将我为音高识别开发的现有JAVA项目扩展为简单的单声道音乐识别,但我坚持使用波形文件分割。所以,我明白了,我应该在我的波形(一座“山”)中探测到大能量的存在,但我还不确定如何知道“山”在哪里开始?有时候他们不够清楚。音符播放速度不是很快,但信号很少下降到零。它可能会下降一半。

如果分割算法丢失一个音符或两个音符就没有问题,那么之后我会有模式匹配算法。 我只需要想法如何迭代样本(窗口或一个接一个)以及如何决定阵列的哪些部分调用基音检测。 如果有这种请分享任何开源实现...

在此先感谢

回答

1

如果使用非JAVA工具都OK,你可以使用sphinx_cont_fileseg。它是Sphinx语音识别系统的一部分,它位于市电Linux发行版的回购站(或者您可以编译源代码!)。

sphinx_cont_fileseg生成一个文本文件,其中包含音频文件中的所有“语音”片段。你可以从你的JAVA代码运行它,然后解析结果。 这不是最优的,但它可能比编写自己的VAD好。