【问题标题】:How to detect sound frequency for particular sound in iphone?如何检测iphone中特定声音的声音频率?
【发布时间】:2012-12-19 10:33:00
【问题描述】:

我正在做一个应用程序,我想检测声音频率。如何检测特定声音(如狗的声音)的频率?有人有教程或一些示例代码吗?

【问题讨论】:

  • 狗叫没有特定的频率 - 它有一个复杂的随时间变化的频谱
  • 你是对的,但是如何比较两个声音是一样的
  • 这是一个非常复杂的主题 - 您通常将声音转换为频域,然后执行特征提取,以便您可以将传入声音的特征与参考特征数据库进行比较。
  • @Bing 如果您的问题得到回答,请考虑将其标记为答案。

标签: iphone ios signal-processing


【解决方案1】:

检测单个频率,甚至计算单个 FFT,都不是区分狗叫声和其他相同音量的常见声音的可靠方法。

可行的是使用 MFCC 进行声音指纹分析,然后针对足够大的“狗”声音数据库进行统计模式匹配。一些指向所需信号处理类型的指针可能会在此处得到解答:Music Recognition and Signal Processing

这是非常重要的东西,比任何简短的教程更适合多个大学教科书章节。

【讨论】:

    【解决方案2】:

    要检测频率,您可以使用 FFT 等音高检测算法。

    在此处了解更多信息:http://en.wikipedia.org/wiki/Pitch_detection_algorithm

    您可以查看此项目以获取使用 FFT 算法检测频率的 iOS 工作源代码: https://github.com/hollance/SimonSings

    【讨论】:

    • 这是一个更精简的 FFT 音高跟踪示例,附有教程解释:blog.bjornroche.com/2012/07/…
    • FFT 是一种检测音高的简单方法:即使您在频域中找到全局最大值,它仍然可能是谐波。
    • @ValentinRadu 你是对的。 FFT 只是其中一种方式,并不是最好的。
    • 有一些方法可以避免谐波,其中之一是使用滤波器(这是我在教程中所做的)。比较 FFT 和时域方法并简单地说一种方法是“最好的”取决于许多因素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多