如何在python中规范化音频文件的音量?

2024-04-16 07:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一大堆AAC(.m4a)音频文件需要规范化,我希望能找到一种方法,使用一些软件包,用一个简单的python脚本来实现这一点

我在superuser上找到了this thread,有人在那里用python编写了一个ffmpeg命令行实用程序,它工作得很好,但我想知道是否有一些当前可用的python包带有pip install可以完成这项任务


Tags: installpip方法命令行实用程序脚本this规范化
2条回答
from pydub import AudioSegment, effects  

rawsound = AudioSegment.from_file("./input.m4a", "m4a")  
normalizedsound = effects.normalize(rawsound)  
normalizedsound.export("./output.wav", format="wav")

之前:

Before image

之后:

After image

您可以使用pydub模块以最少的代码量实现峰值容量的规范化。 使用安装pydub

pip install pydub

来自here的启示

您可以在pydub中测量rms,这是平均振幅的度量,pydub将其作为audio_segment.rms提供。它还提供了一种将值转换为dBFS(audio_segment.dBFS)的方便方法

如果希望音频文件具有相同的平均振幅,基本上可以选择一个平均振幅(在下例中为-20 dBFS),并根据需要进行调整:

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("yourAudio.m4a", "m4a")
normalized_sound = match_target_amplitude(sound, -20.0)
normalized_sound.export("nomrmalizedAudio.m4a", format="mp4")

相关问题 更多 >