有没有办法可靠地检测录音何时有太多的背景噪音?

Posted

技术标签:

【中文标题】有没有办法可靠地检测录音何时有太多的背景噪音?【英文标题】:Is there a way to reliably detect when an audio recording has too much background noise? 【发布时间】:2016-05-09 22:29:25 【问题描述】:

对于我的工作,我们为英语学习者进行在线测试。其中一部分涉及对学生进行语音录音。我们通过用于 Firefox 和 Chrome 的 MediaRecorder js API 来做到这一点。这是一种快速测试大量学生的有效解决方案,但我们发现测试环境有时过于嘈杂,以至于评分者无法评估学生。

我们希望能够自动检测背景噪音水平是否过大,并在存在时提醒学生,但我怀疑这是否可行。部分问题在于,大多数背景噪声通常不是我们认为的白噪声,而是由其他考生的其他人声产生的。因此,我不确定典型的 SNR 算法是否可以区分嘈杂环境和正常响应。我只是想四处打听,看看是否有任何方法可以获得一些自动测量,从而使我们能够识别由于背景噪音很大而导致难以理解的录音的可能候选者。就像我说的,我怀疑是否有简单的解决方案,但我想我会问一下以防万一。

【问题讨论】:

【参考方案1】:

在考试开始时在屏幕上设置倒计时:“开始考试 3...2...1...”,并希望学生在倒计时期间保持安静几秒钟。

如果麦克风在至少 2 秒内没有足够安静,则警告噪音并给出“仍然继续/重试/退出选择”如果学生在倒计时期间说话,他们会发现他们是噪音,不说话再试一次。

【讨论】:

【参考方案2】:

只是一些想法-

您可以随着时间的推移测量平均声级,看看它是或多或少是恒定的还是更接近自然可变的水平(使用weighted moving average 和 RMS 可能是一个很好的起点,无需测试)。计算出一个阈值,该阈值可能或多或少是由背景声音引起的。

除此之外,以这种方式分离声音几乎“不可能”。白噪声、嘶嘶声和嗡嗡声,甚至是通过噪声过滤器运行的指纹噪声(但在浏览器中实时使用可能会很强烈并且你需要一些东西来产生指纹)。

但是当“噪音”是其他人的声音时,由于声音变得过于相似,这将变得非常困难。即使是像 iZotope RX 这样的高级软件也无法做到这一点,即使专门定义了您要删除的内容的特征。无论如何,这种复杂性可能需要太多糟糕的浏览器。

物理解决方案:指向性更强的麦克风可以解决其中的一些问题,但也需要用户更加注意正确放置。一个小的portable "sound booth"(链接作为示例)可以消除侧面和后面的一些噪音,如果可能的话,可以在位置设置。

我的 2 美分..

【讨论】:

以上是关于有没有办法可靠地检测录音何时有太多的背景噪音?的主要内容,如果未能解决你的问题,请参考以下文章

忽略背景噪音?

对抗噪音,一键清晰,HMS Core音频编辑服务给你“录音棚”般的体验

对抗噪音,一键清晰,HMS Core音频编辑服务给你“录音棚”般的体验

如何使用 SwiftUI 在 macOS 上可靠地检索窗口的背景颜色?

机器学习训练和测试数据拆分方法

ImageMagick消除背景噪音