【Python入門】pydubで複数のmp3をミックスして保存する方法|音楽合成を簡単に実現
2025-08-28
Pythonでmp3を合成できる?
音楽や音声ファイルを扱う際に「複数のmp3をミックスして1つにまとめたい」と思ったことはありませんか?
Pythonの pydub を使えば、難しい知識がなくても簡単に実現できます。
必要な準備
1. pydubのインストール
まずはライブラリをインストールします。
pip install pydub
2. ffmpegのインストール
pydubがmp3を読み書きするためには ffmpeg が必要です。
macOSの場合はHomebrewでインストールできます。
brew install ffmpeg
Windowsの場合は公式サイトからバイナリをダウンロードしてパスを通してください。
mp3をミックスするコード例
ここでは例として、音声ファイル(voice.mp3) と 音楽ファイル(music.mp3) をミックスして、1つのmp3として保存します。
from pydub import AudioSegment
# 音声と音楽の読み込み
voice = AudioSegment.from_file("voice.mp3", format="mp3")
music = AudioSegment.from_file("music.mp3", format="mp3")
# 音量を調整(音楽を少し小さめにする)
music = music - 10 # -10dB
# 音楽に音声を重ねる(0msからスタート)
mixed = music.overlay(voice, position=0)
# mp3として保存
mixed.export("mixed_output.mp3", format="mp3")
print("ミックス完了! mixed_output.mp3 を確認してください。")
コードのポイント解説
AudioSegment.from_file()でmp3ファイルを読み込むmusic - 10のように数値を引くと音量を下げられる.overlay()を使えば複数の音声を合成可能.export()で保存形式を指定して書き出し
応用例
- BGMとナレーションを組み合わせて動画用音声を作成
- 複数の効果音を重ねてゲーム用サウンドを生成
- DJ風に曲をミックスしてリミックス音源を作成
よくあるエラーと対処法
Q1. FileNotFoundError: ffmpeg not found
👉 ffmpegがインストールされていないか、PATHが通っていません。ffmpeg -version で確認してください。
Q2. ModuleNotFoundError: No module named 'audioop'
👉 Python 3.13以降では audioop が削除されています。以下で代替できます:
pip install audioop-lts
まとめ
- pydub を使えば、Pythonで簡単にmp3ファイルをミックスできる
- ffmpeg が必須なので忘れずにインストール
overlay()を使うことでBGMと音声を組み合わせ可能- Python 3.13以降の
audioopエラーはaudioop-ltsで解決
PythonでTOTP・HOTPを実装する方法|ワンタイムパスワード
Python ブラウザ指定し自動で開く!webbrowserモジュール完全ガイド
Pythonでmoricons.dllのアイコンをPNGとして抽出する方法
【Python音声再生】playsoundではなくpygameを選ぶ理由とは?
Pythonのtqdmライブラリで簡単プログレスバーを実装する方法
📡Dash × PlotlyでリアルタイムスピードテストWebアプリを作る
【Python】pyttsx3のインストール方法と使い方|音声合成で日本語を喋らせる&音声ファイルに保存
【Python入門】pydubで簡単なリズムを作ってmp3保存する方法|audioopエラー対策