在录音中检测低频提示

信息处理 声音的 频率
2022-02-07 20:21:03

我希望找到一个linux程序或库,用于类似perlpython(尽管对任何解决方案开放)的语言来检测录音中的低频线索。

理想情况下,我最终会HH:MM:SS以与提示发生位置相对应的格式打印出时间戳。

这是音频提示的视觉示例:

在此处输入图像描述

提示似乎是独特的波形,并且在整个录音过程中没有此频率的其他声音。频率太低了,听得见。基于此,我假设必须可以检测到提​​示。

1个回答

您可以使用简单的基于时间的低通滤波器解决此问题,无需 FFT:

  • 通过将采样率除以要检测的频率来计算所需的最小积分时间。对于 44100Hz 的 10Hz,它将是 4410 个样本,所以让我们取 4500 个样本。

  • 然后对这组样本应用低通滤波器(选择正确的频率切割),您将隔离您想要的频率。我真的不知道如何使用它们,但它应该看起来像这样:

y(n)=x(n)+x(n1)+...

  • 根据以下公式计算过滤后的样本组在 dBFS(满量程)中的相对功率:

pRMS=x12+x22+n
dbFS=20log10pRMSpmax
'n' 后面的样本数和 'pmax' 样本的最大值。

如果您获得的电平优于您选择的特定阈值(不是低,因为您的音频肯定有微小的低频分量),那么有一个提示,否则没有。

至于时间戳方面,您可以在每次进入这个低频检测循环时增加一个变量,并使用采样率计算经过的时间。然后编写一个数组,其中包含每个成功检测的输入/输出时间。

不确定是否真的需要最小集成时间。