【问题标题】:Note Onset Detection using Spectral Difference注意使用光谱差异的起始检测
【发布时间】:2011-09-21 20:28:12
【问题描述】:
我对发病检测相当陌生。我阅读了一些关于它的论文,并且知道仅使用时域时,可能会有大量的误报/否定,并且通常建议同时使用时域和频域或频域。
关于这一点,我有点困惑,因为我在如何使用光谱能量或 FFT 箱的结果来确定音符开始方面遇到了麻烦。因为,音符的开始不是由振幅的尖峰代表吗?
有人可以启发我吗?谢谢!
【问题讨论】:
标签:
audio
signal-processing
fft
spectrum
onset-detection
【解决方案2】:
“因为,音符的开始不是由振幅的尖峰代表吗?”
答:并非总是如此。在打击乐器(包括钢琴)上确实如此,但对于小提琴、长笛等,音符经常随着频率变化而“滑入”彼此,而幅度没有急剧增加。
如果您坚持使用单一乐器,例如钢琴起始检测是可行的。广义发病检测是一个更加困难的问题。大约有十几个原始特征已用于发病检测。编写代码后,您仍然需要决定如何最好地使用它们。
【解决方案3】:
您可以将特定频率的振幅的急剧差异视为可疑的声音起始点。例如,如果长笛从演奏 G5 切换到演奏 C,则在 784 Hz 左右的频谱幅度会急剧下降。
如果您不知道要检查的频率,FFT 矢量的幅度将为您提供某个时间窗口内每个频率的幅度(分辨率取决于时间窗口的长度)。选择您的频率或一堆频率,然后区分两个不同时间窗口的两个 FFT。这可能会给你一些东西,可以用作声音开始的可能性估计的一部分,或者在两个时间窗口之间的某个地方发生变化。滑动窗口或在时间上连续逼近它们的位置可能有助于缩小可疑音符开始或声音发生其他重大变化的时间。