我希望能够在Java中解决以下问题 - 因为它是我最常用的语言,也是我的首选。
我希望能够建立一个声音模型 - 例如狗吠声基于100个不同狗吠声的声音样本...一旦我有这个样本我想能够录制一个剪辑麦克风并对照模型进行处理,以确定记录的样本与模型足够匹配的概率,以确定录制的声音是否是狗。
我记得以下几点:
获得100只狗的傅里叶变换。
获得100的平均FT - 现在是模型。
录制声音片段 - 生成傅里叶变换。
从模型FT中扣除声音片段FT,看看他们如何比较?
我对音频没有太大的经验 - 所以如果有人能告诉我这是否是正确的方法 - 使用什么FFT库 - 以及从100个样本构建平均FT的过程是什么 - 那将是伟大的!
谢谢
答案 0 :(得分:1)
尽管我已多次阅读过有关FT的内容,但我自己从未专门使用它们。
但是,我使用了CoMIRVA库。它实现的技术基于FT等比较音乐(www.cp.jku.at/comirva)。简而言之,它通过比较音色(http://en.wikipedia.org/wiki/Timbre)来比较两个“音频源”。当我使用它时,它在某些情况下运行良好,而在其他情况下效果不佳。然而,那就是音乐。我不知道它是否适用于狗吠。
我建议您查看它并阅读有关其实现的技术的更多信息。您可以在“音频处理”标题下找到更多详细信息。我建议你阅读这两份报告(Mandel和Ellis,Aucouturier和Pachet)。
祝你好运!