使用Python测量音频“响度”

Sam*_*ing 3 python audio audio-analysis

我正在使用 Python \xe2\x80\x94\xc2\xa0 计算一段音频的响度,可能是通过提取一段音频的峰值音量,或者可能使用更准确的测量(RMS?)。

\n\n

做到这一点的最佳方法是什么?我看过pyaudio,但这似乎没有达到我想要的效果。看起来不错的是ruby​​-audio,因为这似乎已经sound.abs.max内置在其中。

\n\n

输入音频将从持续时间约为 30 秒的各种本地 MP3 文件中获取。

\n

小智 5

我认为 RMS 将是最准确的测量方法。需要注意的一件事是,我们对不同频率的响度感知不同,因此使用 fft 将音频转换为频率空间(numpy.fft 应该只适用于 30 秒的音频)。现在据此计算功率谱密度。使用响度曲线按频率对 PSD 进行加权。特别是低于10Hz的频率,因为那里会有很大的功率(它会主导时域中的RMS计算),但我们听不到它。现在积分 PSD 并取平方根,这将给出感知的 RMS。

您还可以将 mp3 分成多个部分或窗口,并应用此技术来给出特定部分的音量。

  • 嗨,李,感谢您的详细描述!你已经完美地回答了我的第一个问题。 (2认同)