【问题标题】:How to normalize the volume of an audio file in python?如何在python中标准化音频文件的音量?
【发布时间】:2017-07-18 10:47:42
【问题描述】:

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

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

【问题讨论】:

    标签: python audio ffmpeg aac replaygain


    【解决方案1】:
    from pydub import AudioSegment, effects  
    
    rawsound = AudioSegment.from_file("./input.m4a", "m4a")  
    normalizedsound = effects.normalize(rawsound)  
    normalizedsound.export("./output.wav", format="wav")
    

    之前:

    之后:

    【讨论】:

      【解决方案2】:

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

      安装pydub
      pip install pydub
      

      来自here的灵感

      您可以在pydub 中测量 rms,这是一种平均幅度的度量,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")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-16
        • 2015-01-06
        • 1970-01-01
        • 2014-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多