【Python】MP3ファイルを一括で任意の音量に統一するスクリプト

本ブログはアフィリエイト広告を利用しています

WEB / アプリ
WEB / アプリ
この記事は約4分で読めます。

とっちゃん@nyanco! です。

今回は指定フォルダ内のMP3ファイルを指定した音量に統一(ノーマライズ)するPythonコードの共有です。

肉玉にゃんこ

この手だとフリーソフトのMP3Gainが有名ですが、よりサクッと使えるようにパイソンで作ってみましたにゃ〜
ちなみに変換時に再エンコードするので僅かに音質劣化しますにゃ〜(ほぼ分からないレベルですにゃ〜)

スポンサーリンク

コードの動作環境

  • OS:Windows11 / macOS Sequoia15.1
  • FFmpeg必須
  • Pythonバージョン:3.11.2
  • 別途必要ライブラリ:
    • Pydub:Pythonで音声ファイルを簡単に操作・編集できるライブラリ
pip install pydub

MP3ファイルを一括で任意の音量に統一するスクリプト

早速ですがスクリプトはこちら!

import os
from pydub import AudioSegment

# 入力フォルダと出力フォルダのパスを指定
input_folder = r'path/to/input/folder'
output_folder = r'path/to/output/folder'

# 目標音量レベル(dBFS)を指定
target_dbfs = -20.0

# 出力フォルダが存在しない場合、作成
os.makedirs(output_folder, exist_ok=True)

# フォルダ内のMP3ファイルを処理
for filename in os.listdir(input_folder):
    if filename.endswith('.mp3'):
        # MP3ファイルを読み込む
        audio = AudioSegment.from_mp3(os.path.join(input_folder, filename))
        
        # 音量を調整
        change_in_dbfs = target_dbfs - audio.dBFS
        normalized_audio = audio.apply_gain(change_in_dbfs)
        
        # 出力ファイルのパスを作成
        output_path = os.path.join(output_folder, filename)
        
        # 調整後の音声を保存
        normalized_audio.export(output_path, format='mp3')
        
        print(f'Normalized and exported: {filename}')

print('All MP3 files have been normalized and saved to the output folder.')

コードは自動生成AI「perplexity」で作成したものを元にカスタマイズしています。

自分用にカスタマイズする箇所は以下の通り。

  • 5行目:変換元になるmp3ファイルが格納されたフォルダパス
  • 6行目:変換後の出力先となるフォルダパス(フォルダがない場合は自動生成される)
  • 9行目:統一したい音量レベルを指定(マイナス値が大きいほど音量が小さくなる)

音量レベルの目安
YouTubeやTikTok動画のBGMとして使用する場合、あくまで目安ですが-18 dBFS から -30 dBFS の範囲が適切とされています(ナレーションの有無や動画内容によって異なる)。

以下、具体的な使い方の流れですがとてもシンプルです。

5行目で指定したフォルダに変換したいmp3ファイルを用意してpythonファイルを実行すると、このようにコンソールウィンドウに続々と変換されたmp3ファイルが表示されていきます。

肉玉にゃんこ

1ファイルにつき1・2秒程度かかりますにゃ〜
ファイル数が多いと少し時間がかかりますにゃ〜

「プロセスが完了しました」と表示されたらOKです!

▼出力先に指定したフォルダ内に音量が統一化されたmp3ファイルが確認できたら完了です。

肉玉にゃんこ

バラバラだった音量が統一されて聴きやすくなりましたにゃ〜!

▼サクッとすぐに使えるように下記より.pyファイルのダウンロードも可能です(zip圧縮しています)。

→MP3ファイルを一括で任意の音量に統一する.pyファイルをダウンロード

おわりに

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント