我想记录一只狗吠,保存文件并与包含不同类型树皮的几个文件(警告树皮,哭泣树皮等)进行比较。
为了获得匹配,我怎么能进行比较?此类应用程序要遵循的流程是什么?
感谢您的提示。
答案 0 :(得分:4)
您的问题没有简单的答案。但是,对于初学者,您可能会研究音频指纹识别的工作原理。本文是shazam创作者写的一个很好的开始:
http://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf
我不确定这种方法对狗吠有多好,但有一些概念可能会有用。
另一件需要关注的是FFT如何工作。这是一个教程,其中包含我为音高跟踪编写的代码,这是使用FFT的一种方法。您正在更多地关注音调和音高如何与给定狗的共振峰结构相互作用。因此,您想要得出的参数可能包括基本音高(单独,可能足以区分呜呜声与其他类型的吠声),以及基音音高与高次谐波的比例,这将有助于识别树皮的侵略程度(I我在这里猜一点):
http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html
最后,您可能希望对基本语音识别和语音处理进行一些研究,因为会有一些重叠。维基百科可能足以让你入门。
编辑:哦,此外,一旦你确定了一些用于比较的参数,你就需要一种方法来将你的多个参数与多个参数的声音数据库进行比较。我不认为shazam文章中的技术会起作用。你可以尝试的一件事是Logistic Regression。还有其他选择,但这可能是最简单的。
答案 1 :(得分:1)
我会查看Google的开源lib musicg API:http://code.google.com/p/musicg/
它是Java,所以它适用于Android,它提供了两个音频文件的相似性指标。