Unity は特殊効果のボリューム一貫性処理に Python を使用します

Unity は特殊効果のボリューム一貫性処理に Python を使用します

序文

インターネット上で見つかるさまざまな効果音は、ゲーム内で高音や低音で聞こえますが、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)

ありがとう

チャットGPT

おすすめ

転載: blog.csdn.net/a71468293a/article/details/130947459