Unity 使用Python进行特效音量一致性处理

Unity 使用Python进行特效音量一致性处理

  • 前言
  • 源码
  • 鸣谢

前言

从网上找的各种音效放在游戏里面声音听起来有高有低,用一个Python脚本就可以让杂乱的声音听上去音量一致。

Unity 使用Python进行特效音量一致性处理_第1张图片

源码

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)

鸣谢

ChatGPT

你可能感兴趣的:(python,unity,游戏引擎)