1

作为我之前问题的后续,如果我希望我的智能手机应用程序检测到某个音符,并且我只需要知道传入的声音是否是那个音符,并带有一定的模糊性,就可以允许注意要偏离 x 美分。

鉴于此,在速度和准确性方面是否有比其他方法更好的方法?也就是说,通过知道您要查找的音符是#C3,如何最好地判断该音符是否存在?我假设寻找单个音符比分离所有波形更容易,然后查看基频的结果。

在对我最初问题的回答中,一位受访者建议,如果您知道注释在一定范围内,自相关可能会很好地发挥作用。我想知道如果您只需要检查是否存在某个音符(+/- x 美分),那么自相关是否会更好。

这些方法是:

  • 亲吻 FFT
  • FFTW
  • 离散小波变换
  • 自相关
  • 过零分析
  • 倍频程滤波器
  • 载重吨

任何想法将不胜感激。

4

1 回答 1

1

正如您所描述的那样,您只需要确定是否存在特定的音调。一个非常简单(快速)的检测器将只记录一个波形周期的等效值,然后记录另一个周期并将它们关联起来,就像一个过度简化的(单滞后)自相关。如果匹配度高,您就知道正在记录的波形在大约相同的周期重复,或者是它的谐波。

例如,要检测 1 kHz,记录 1 ms 的音频(48 kHz 的 48 个样本),然后再记录 1 ms,并比较它们(相关 = 将所有样本相乘并求和)。如果它们对齐(相关性高于某个阈值),那么您正在收听 1 kHz、2 kHz、3 kHz 或其他一些倍频。做几个时期会让你对比赛更有信心。

真正的自相关会告诉你哪个谐波,特别是,如果这对你很重要。

于 2009-10-14T21:30:04.843 回答