【问题标题】:Questions about Filters for Note Onset Detection?关于音符起始检测过滤器的问题?
【发布时间】:2011-09-17 15:15:38
【问题描述】:

如果我可能无知,请原谅我,但我想问一些关于使用过滤算法进行音符起始检测的问题。

  1. “检测功能”是否与对音频信号使用过滤器相同?或者一般来说,Detection Function、Filtering(对信号进行预处理)和Peak-Picking有什么区别?

  2. 我经常听说低通(或高通)滤波器,但我很困惑。我读到它可以消除低于(或高于)某个阈值的某些频率。但是,我使用时域来计算音符开始(即使用信号幅度/能量的变化)。所以我不确定如何将低通滤波应用于时域。还有其他用于检测音符开头的好的过滤器吗?

  3. 光谱能量和相位能量有什么区别? (我有一个想法,spectral 是指频谱图或频率,但我不知道 Phase 是什么)

  4. 我在处理动态阈值时遇到了困难。有什么好的算法建议吗?例如,我有以下信号:

如上图所示,我错过了一些音符开始。简要描述我的算法,我计算并记录音频信号中发生的能量/幅度变化。然后我得到最大的“能量变化”并根据灵敏度,我取它的百分比并将其设置为阈值。所以这就是处理不同程度的幅度/能量的问题所在。如果我将灵敏度设置得太低,我会想出“鬼”发作,如果我将灵敏度设置得太高,我会错过一些发作。有什么建议可以改进我正在使用的算法(或建议一种新算法)?

我确信很难达到 100% 的准确率,但与我现在所拥有的相比,我需要一个更好的算法来检测音符的起始位置。我会很感激我能得到的所有帮助。非常感谢!

【问题讨论】:

    标签: audio filter signal-processing onset-detection


    【解决方案1】:

    一种方法是检测幅度包络的突然增加。计算幅度包络的一种方法是对输入信号进行整流(即取绝对值),然后对其进行低通滤波。查看http://www.musicdsp.org 中的代码示例,了解时域过滤器示例和包络跟随器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2018-02-10
      • 2010-11-05
      相关资源
      最近更新 更多