前言
从网上找的各种音效放在游戏里面声音听起来有高有低,用一个Python
脚本就可以让杂乱的声音听上去音量一致。
源码
tip:
target_db=-20
表示目标分贝级别为-20 dB
。在音频处理中,分贝(dB)是用于衡量音量的单位。较高的分贝级别表示更大的音量,而较低的分贝级别表示较小的音量。
在这个脚本中,我们使用目标分贝级别来统一音频文件的音量。如果一个音频文件的当前分贝级别低于目标分贝级别,脚本会增加音频的音量使其达到目标级别。相反,如果一个音频文件的当前分贝级别高于目标分贝级别,脚本会减小音频的音量使其接近目标级别。
在这种情况下,目标分贝级别为-20 dB
是一个常见的选择,因为它通常被认为是音频的适当音量级别,能够提供清晰的声音而不会过于响亮。
你可以根据自己的需求调整target_db
参数,选择适合你的应用场景的目标音量级别。
import os
from pydub import AudioSegment
from pydub.utils import make_chunks
def normalize_audio_volume(input_folder, output_folder, target_db=-20):
# 创建输出目录
os.makedirs(output_folder, exist_ok=True)
# 获取输入文件夹中的所有文件
file_list = os.listdir(input_folder)
# 遍历文件夹中的每个文件
for file_name in file_list:
input_path = os.path.join(input_folder, file_name)
# 检查文件是否是音频文件
if file_name.endswith('.mp3') or file_name.endswith('.wav'):
print("处理文件:", file_name)
# 使用pydub库加载音频文件
audio = AudioSegment.from_file(input_path)
# 计算音频文件的当前分贝级别
current_db = audio.dBFS
# 计算音频文件需要增加或减少的分贝数
db_diff = target_db - current_db
# 调整音频文件的音量
normalized_audio = audio + db_diff
# 构建输出文件路径
output_path = os.path.join(output_folder, file_name)
# 将调整后的音频文件保存到输出文件夹
normalized_audio.export(output_path, format=file_name[-3:])
print("已调整音量")
print("音量调整完成!输出文件位于:", output_folder)
# 测试代码
input_folder = "D:\Project\Python\\normalize_audio\\audio" # 将此处的路径替换为实际文件夹的路径
output_folder = "D:\Project\Python\\normalize_audio\\output" # 将此处的路径替换为实际的输出文件夹路径
normalize_audio_volume(input_folder, output_folder)