java - 与模型的音频比较

标签 java comparison transform fft

我希望能够用 Java 解决以下问题 - 因为它是我最有经验的语言,也是我的首选。

我希望能够建立一个声音模型 - 例如狗吠声,基于不同狗吠声的 100 个声音样本...一旦我有了这个样本,我希望能够录制来自麦克风并根据模型对其进行处理,以确定录制的样本与模型足够接近的匹配概率,从而确定录制的声音是否是狗。

我有以下想法:

获取 100 只狗的傅立叶变换。

获取 100 人的平均 FT - 这就是现在的模型。

录制声音剪辑 - 生成傅里叶变换。

从模型 FT 中扣除声音片段 FT,看看它们如何比较?

我对音频没有太多经验 - 所以如果有人能告诉我这是否是正确的方法 - 使用什么 FFT 库 - 以及从 100 个样本构建平均 FT 的过程是什么 - 那太好了!

谢谢

最佳答案

尽管我已经多次阅读有关 FT 的内容,但我自己从未专门使用过它们。

但是,我使用了 CoMIRVA 库。它实现了基于 FT 等技术来比较音乐 (www.cp.jku.at/comirva)。简而言之,它通过比较音色来比较两个“音频源”(http://en.wikipedia.org/wiki/Timbre)。当我使用它时,它在某些情况下效果很好,但在其他情况下效果不佳。然而,那是音乐。我不知道它是否适用于狗叫。

我建议您看一下它并阅读有关它实现的技术的更多信息。您可以在音频处理标题下找到更多详细信息。我建议您阅读这两份报告(Mandel 和 Ellis、Aucouturier 和 Pachet)。

祝你好运!

关于java - 与模型的音频比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758774/

相关文章:

java - 使用 JavaFX8 3D 将两个球体与一个圆柱体连接起来

java - 比较 int 和 Java 中的字符常量

css - 在 Chrome 中使用 CSS3 转换的视频刚性边缘

java - 无法连续搜索

java - 字符串是不可变的。究竟是什么意思?

c++ - 有符号/无符号比较

mysql获取包含20位长十进制数的两个字段之间的数字

jquery - JQuery 和转换源

javascript - 从一个固定 Canvas 写入另一个 float Canvas

java - 在可以与父线程通信的新线程上分派(dispatch)任务