Python: 比较两个可能有噪音的音频文件

Python: Compare two audio files which may have noise

出于项目目的,我正在从舞台附近的不同区域录制音频剪辑(波形文件)。我需要检查源音频是否是;使用从附近地方录制的音频,舞台的音频在舞台附近的位置非常清晰。

更清楚地说,我在舞台附近的地方有麦克风,我有来自舞台和这些附近地方的音频片段。如何判断附近是否接收到舞台的声音,或者如何判断舞台的声音对附近的地方造成了干扰。

听起来是个有趣的项目...给出具体细节的方法,因为您的问题可能涉及感知和卷积神经网络等广阔领域...首先确保您的音频文件及时对齐...提要将 window 音频样本(比如 2^12 即 4096,或更多但始终是 2 的幂)转换为 FFT 调用(离散傅里叶变换),这将为您提供一个频率仓数组,每个频率仓的幅度为(忽略相位)...然后比较舞台麦克风和每个周围麦克风文件之间的 FFT 数组...然后在及时向前滑动此 window 样本后重复上述操作并重复,直到您访问了完整的示例 ...您可能想尝试使用此采样的各种宽度 window

也尝试各种方法来比较一对麦克风信号之间的 FFT 阵列...在此比较中,应给予 FFT 阵列中幅度最大的频率仓更大的权重,因为您希望避免噪声进入低幅值的频率箱使水变得浑浊 - 通过对频率箱幅度进行平方以突出主导频率并衰减较安静的频率来做到这一点......为简单起见,在开始时使用 sin 曲线作为音频信号 - 搜索移动应用程序: Frequency Sound Generator - 你会得到一个更简单的 FFT 阵列......这里的目标只是你的源音频中的一个频率将出现在 FFT 输出分析中

要在上面执行你真正需要的唯一库是 DFT 调用,但是如果你没有足够的时间自己动手制作上面的方法,这些 python 存储库可能会加速你的项目

Librosa - Python 音频和音乐分析库

https://librosa.github.io/
https://github.com/librosa/librosa

Madmom - Python 音频和音乐信号处理库

https://madmom.readthedocs.io/en/latest/modules/audio/cepstrogram.html?highlight=mfcc https://madmom.readthedocs.io https://github.com/CPJKU/madmom

但是我建议你避免使用上面的库,而只使用你自己的库 - YMMV