在较长的音频中定位参考音频

信息处理 离散信号
2022-02-21 09:28:08

我正在尝试解决以下问题:

假设我有一个参考声音,并且我知道的录音至少包含一次参考声音。如何确定音频中播放声音的位置?较长的录音可能有噪音,我不能假设与录音中播放的声音完全一致(意思是,如果我知道除了参考声音之外的录音中播放的声音的内容,我不能只是减去从录音本身)。

我正在尝试的方法如下:

  1. 从录制的声音中抓取参考声音的大小
  2. 对于每个窗口,计算 N 个主频率(通过在 FFT 结果中找到峰值幅度)
  3. 将点分配给参考声音的主要频率(其中最主要的得分为 N,最少的得分为 1)
  4. 将窗口的主要频率与这些频率进行比较并对其进行评分

接下来的几个部分只是实验性的,用于缩小结果范围。

  1. 对匹配项进行一些过滤(例如,分数低于可能分数一半的匹配项被过滤掉)
  2. 查看重叠匹配并计算与参考声音的互相关(使用每个可能的时间偏移,更喜欢最大结果)。更喜欢需要较小班次的比赛
  3. 在匹配的端点上执行该转变

问题是我还想检测是否播放了部分参考声音,如果参考声音快速连续播放两次,其中一个被切断,第 6 步将不允许这样做。

似乎必须有一个不像这样临时的解决方案。我对DSP领域很陌生,所以可能有些简单的东西我不知道。

有任何想法吗?

谢谢!

1个回答

似乎匹配的过滤器对我的用例来说已经足够了。