web-dev-qa-db-ja.com

Pythonでオーディオファイルの音量を正規化する方法:現在利用可能なパッケージはありますか?

正規化する必要のあるAAC(.m4a)オーディオファイルがたくさんあり、いくつかのパッケージを使用して単純なpythonスクリプトでそれを行う方法を見つけたいと思っていました。I見つかった このスレッド 誰かがPythonでffmpegコマンドラインユーティリティを書いたスーパーユーザーで、それはうまく機能しますが、現在利用可能なものがあるかどうか疑問に思っていましたパッケージpip installは、タスク次第です。

7
Luke Davis

pydub モジュールを使用して、最小限のコードでピークボリュームの正規化を実現できます。を使用してpydubをインストールします

pip install pydub

ここ からのインスピレーション

Rmsは、pydubがaudio_segment.rmsとして提供する平均振幅の測定値であるpydubで測定できます。また、値を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")
9
Anil_M
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

4
WeiJian Yen