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