作为对我之前的question的跟进,如果我想让我的智能手机应用程序检测到某个特定的音符,我只需要知道传入的声音是否是那个音符,带有一定的模糊性,就可以让音符关闭x美分。
既然如此,在速度和准确性方面,是否有比其他方法更好的方法?也就是说,通过知道你正在寻找的笔记是,比如说#C3,怎样才能最好地判断这个音符是否存在?我假设找一个音符比分离所有波形要容易,然后看基频的结果。
在对我最初问题的回答中,一位回答者建议,如果你知道笔记在某一范围内,自相关可能会很好。我想知道,如果您只需要检查是否存在某个注释(+/- x美分),那么自相关是否会更好地工作。
这些方法是:
FFT
任何想法都将不胜感激。
发布于 2009-10-14 21:30:04
正如你所描述的,你只需要确定一个特定的音高是否存在。一个非常简单的(快速)检测器只会记录一个波形的等效周期,然后记录另一个周期并将它们关联起来,就像一个过于简化的(单滞后)自相关。如果有一个高匹配,你知道被记录的波形是重复在大约同一时期,或它的一个谐波。
例如,要检测1 kHz,记录1ms的音频(48 kHz上的48个样本),然后再记录另一个1ms,并比较它们(correlate =乘所有样本和和)。如果它们对齐(相关高于某个阈值),那么您将听到1 kHz、2 kHz、3 kHz或其他倍数。做几节课会让你对比赛更有信心。
一个真正的自相关会告诉你哪个和弦,特别是,如果这对你很重要的话。
https://stackoverflow.com/questions/1490805
复制相似问题