我有多个波形文件,有些是小音量,有些是大音量。
我想“标准化”声音振幅。
(就像某些音频音序器应用程序具有的“标准化”功能。 把音量调大到峰值就到了0db。)
例如 librosa 库,它有 librosa.util.normalize,但我不确定这是我的意思。
我想调整音频的音量,有什么做法吗?
答案 0 :(得分:1)
找到任何通道中的最大峰值(正或负,因此使用 abs)。例如,在一个 16 位文件中,假设您找到 25000。计算该值相对于有符号 16 位范围内最大值的比率并将其取反:
ratio = 32767.0 / 25000 #(equivalent to 1 / (25000 / 32767.0))
现在迭代所有样本并将它们乘以反向比率,使 25000 变为 32767 :
for(sample in samples):
sample = round(sample * ratio)
此操作被称为“标准化”或“优化”,具体取决于软件。