2

有什么方法可以通过算法确定 .wav 或 .mp3 文件的音频质量吗?

基本上,我的用户具有不同的录音设置(即他们来自世界各地,我无法控制他们)将音频录制到 mp3/wav 文件。此时软件应该确定他们的设置是否正确(可悲的是,由于某种原因,他们无法仅通过听自己的录音来做出决定,因此有时我们会得到基本上无法理解的录音,因为低音量或高噪音)。

我正在检查音量以确保麦克风电平正常;不幸的是,这错过了音量高但清晰度低的情况。我想知道是否可以进行某种标准扫描(最好是在 Python 中)来检测何时存在大量背景噪音。

我意识到一种可能的解决方案是让他们录制完全静音,然后与口语录音进行比较,如果“静音”录音的音量与口语录音的音量太接近,则认为音频“不好”。但这取决于两次都从演讲者那里得到一个好的样本,这可能是我可以依赖的东西,也可能不是。

所以我想知道是否有一种方法可以扫描音频文件(大约 10 秒长)并识别声音文件是“嘈杂”还是清晰。

4

3 回答 3

2

我正在构建一个旨在检测各种不良音频的 API。您可以使用此 API 计算总分,并就如何提高音质向人们提供具体建议。看看:
https ://www.tinydrop.tech/documentation/#loudness-detection

于 2018-11-11T19:43:18.053 回答
1

这完全取决于您的质量问题是什么,从您的问题中不是 100% 清楚,但这里有一些建议:

在音量高而清晰度低的情况下,我猜问题是用户的输入增益太高了。录制后,您可以简单地检查失真。更好的是,您可以在录制期间使用自动增益控制 (AGC) 来防止这种情况发生。

在噪音太大的情况下,我假设问题是扬声器离麦克风太远。在这种情况下,Steve 的建议可能会奏效,但要使其真正奏效,您需要做大量工作来比较样本记录和开发统计数据,以了解如何进行区分。在实践中,我认为这是太多的工作。我认为更简单且更有可能工作(尽管不一定保证)的更简单的替代方法是创建信号的包络,然后从中创建直方图,并查看直方图与现有的好和坏记录的比较。如果我们只讨论语音,您可以将信号分成三个频带(使用时域滤波器,

不过,我还是会在录音期间使用 AGC,如果 AGC 发现它需要将输入增益设置得太高,那可能是一次糟糕的录音。

于 2013-06-26T17:22:33.697 回答
0

不完全是我的领域,但我怀疑如果你得到一个频谱,(也许做一个傅立叶变换),并比较“好”和“嘈杂”的录音,你会发现噪音会导致交叉频谱水平在坏的情况下更高录音比好。看看 SciPy 中的信号处理部分——这可能会有所帮助。

于 2013-06-26T14:51:47.307 回答