14

我有一堆.m4a需要规范化的 AAC ( ) 音频文件,并希望找到一种方法来使用一些包使用简单的 python 脚本来完成它。

我在超级用户上找到了这个线程,有人ffmpeg在 python 中编写了一个命令行实用程序,它运行良好,但想知道是否有一些当前可用的 python 包pip install可以完成任务。

4

2 回答 2

18

您可以使用pydub模块以最少的代码实现峰值音量的标准化。安装pydub使用

pip install pydub

灵感来自这里

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

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

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")
于 2017-02-27T21:47:47.610 回答
16
from pydub import AudioSegment, effects  

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

前:

图像前

后:

后像

于 2019-09-06T02:58:32.250 回答