有没有办法以算法方式确定.wav或.mp3文件的音频质量?
基本上我有不同录音设置的用户(即他们来自世界各地,我无法控制他们)将音频录制到mp3 / wav文件。此时软件应确定其设置是否正常(不幸的是,由于某些原因,他们无法通过收听他们自己的录音来做出这个决定,因此我们偶尔会得到基本上无法理解的录音。低音量或高噪音。)
我正在进行音量检查以确保麦克风级别正常;不幸的是,这错过了音量高但清晰度低的情况。我想知道我是否可以进行某种标准扫描(理想情况下是Python),可以检测到背景噪音很多。
我意识到一种可能的解决方案是让他们记录完全静音,然后与口述录音进行比较,如果“静音”录音的音量太接近语音录音的音量,则认为音频“不好”。但这取决于从演讲者那里获得一个好的样本,这可能是也可能不是我可以依赖的东西。
所以我想知道是否只是一种方法来扫描音频文件(这些将是~10秒长),并识别声音文件是“嘈杂”还是清晰。
答案 0 :(得分:1)
这一切都取决于你的质量问题,这不是你的问题100%明确,但这里有一些建议:
在音量高且清晰度低的情况下,我猜测问题是用户的输入增益太高。录制完成后,您只需检查失真。更好的是,你可以使用自动增益控制(AGC)进行录音,以防止这种情况发生。
在噪音太大的情况下,我假设问题在于扬声器离麦克风太远了。在这种情况下,史蒂夫的建议可能有用,但为了使其真正起作用,你需要做大量的工作来比较样本记录和开发统计数据,看看你如何区别对待。在实践中,我认为这是太多的工作。我认为更容易且更有可能工作的更简单的替代方案(尽管未必保证)将创建信号的包络,然后从中创建直方图并查看直方图如何与现有的好的和坏的记录进行比较。如果我们只讨论语音,你可以将信号分成三个频段(使用时域滤波器,而不是FFT),让你知道噪声(高频段和低频段)的多少以及多少你关心的声音(中心乐队)。
但是,我会再次使用AGC durring录音,如果AGC发现它需要将输入增益设置得太高,那么它可能是一个糟糕的录音。
答案 1 :(得分:0)
不是我的领域,但我怀疑如果你得到一个频谱,(可能进行傅里叶变换),并比较“好”和“嘈杂”的录音,你会发现噪音有助于提高一个更高的交叉谱水平在不良录音中比好。看看SciPy中的信号处理部分 - 这可能会有所帮助。
答案 2 :(得分:0)
我正在构建一个旨在检测各种不良音频的API。您可以使用此API计算总体得分,还可以向人们提供具体建议,以帮助他们提高声音质量。看看:https://www.tinydrop.io/documentation/