序文
インターネット上で見つかるさまざまな効果音は、ゲーム内で高音や低音で聞こえますが、Python
スクリプトを使用すると、乱雑な音を一貫して聞こえるようにすることができます。
ソースコード
ヒント:
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)