【问题标题】:Audio comparison against a model与模型的音频比较
【发布时间】:2011-04-22 18:40:07
【问题描述】:

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

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

我想到了以下几点:

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

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

录制声音片段 - 生成傅里叶变换。

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

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

谢谢

【问题讨论】:

    标签: java comparison transform fft


    【解决方案1】:

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

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

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

    祝你好运!

    【讨论】:

    • 嗨 - 这看起来很有希望!谢谢!但是,没有真正的文档来解释如何使用特定的音频处理类 - 有什么想法吗?
    • 看看 MandelEllisExtractor 或 TimbreDistributionExtractor。使用此类上可用的 calculate() 方法。此方法将返回一个 AudioFeature 实例。 AudioFeature 类的 getDistance() 方法可用于计算到任何其他 AudioFeature 实例的距离。 cp.jku.at/people/schedl/Research/Development/CoMIRVA/releases/…
    • 我尝试编写一个快速程序,结果我的 2 - 3 秒 mp3 太短,无法被 mandelelleisextractor 处理,我想知道最小长度需要是多少?
    • 啊,默认最小秒数似乎是 25。尝试使用 MandelEllisExtractor(AudioPreProcessor.DEFAULT_SAMPLE_RATE,0, 1 , 0)。这是默认构造函数使用的,除了将最小秒数设置为 25 而不是 1。不确定结果是否会好,但值得一试:-)
    • 太棒了 - 干杯 - 他们的文档不是很好,但我想我应该寻找一个非默认构造函数!
    猜你喜欢
    • 2016-03-19
    • 2010-12-19
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2019-03-22
    • 2015-08-04
    • 2011-06-21
    • 2018-07-18
    相关资源
    最近更新 更多