使用Python测量音频“响度”

时间:2011-05-29 21:32:54

标签: python audio audio-analysis

我想用Python计算一段音频的响度 - 可能是通过提取一段音频的峰值音量,或者可能使用更准确的测量(RMS?)。

最好的方法是什么?我已经看过pyaudio了,但这似乎没有我想要的。看起来不错的是ruby-audio,因为它似乎内置了sound.abs.max

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

1 个答案:

答案 0 :(得分:2)

我认为RMS是最准确的衡量标准。有一点需要注意的是,我们在不同的频率下以不同的方式测量响度,因此将音频转换为频率空间的fft(numpy.fft应该在仅30秒的音频时效果很好)。现在从中计算功率谱密度。使用一些响度曲线按频率对PSD进行加权。特别是低于10Hz的频率,因为那里将有很多功率(它将主导时域中的RMS计算),但我们听不到它。现在整合PSD并取平方根,这样就可以得到一个有效的RMS。

您还可以将mp3分解为多个部分或窗口,并应用此技术为特定部分提供音量。