由于工作需要修改.wav文件的音量大小,网上说audacity软件里面的效果-标准化也可以改变音量大小,但是一个一个弄太慢。所以我又看了很多资料,终于知道怎么搞了。
1.单独调整一个音频文件的音量大小
from pydub import AudioSegment
def match_target_amplitude(sound, target_dBFS):
change_in_dBFS = target_dBFS - sound.dBFS
return sound.apply_gain(change_in_dBFS)
sound = AudioSegment.from_file("test.wav", "wav") #加载WAV文件
db = sound.dBFS #取得WAV文件的声音分贝值
normalized_sound = match_target_amplitude(sound, db+10) #db+10表示比原来的声音大10db,需要加大音量就加多少,反之则减多少
normalized_sound.export("out.wav", format="wav")
2.运行脚本后,音频的波形对照图,如下:
第一行的是原始音频(test.wav),第二行的是增大了10db的音频(out.wav),从波形来看,音量明显增大 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200923144856525.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3prd18xOTk4,size_16,color_FFFFFF,t_70#pic_center)
3.批处理文件夹下所有音频文件
import os
from pydub import AudioSegment
def match_target_amplitude(sound, target_dBFS):
change_in_dBFS = target_dBFS - sound.dBFS
return sound.apply_gain(change_in_dBFS)
input_path = r"E:\test" #原始音频路径
output_path = r"E:\out" #输出保存路径
filename = os.listdir(input_path) #遍历原始音频路径下所有文件名
for file in filename:
path1 = input_path + "\\" + file
path2 = output_path + "\\" + file
sound = AudioSegment.from_file(path1, format="wav") # 加载WAV文件
db = sound.dBFS # 取得WAV文件的声音分贝值
normalized_sound = match_target_amplitude(sound, db + 10) # db+10表示比原来的声音大10db,需要加大音量就加多少,反之则减多少
normalized_sound.export(path2, format="wav")
|