Pythonを使って、WAVをMP3に変換する必要が出てきたとします。
この場合、あなたならどうしますか?
残念ながら、Python単独では無理です。
そのため、FFmpegの力を借りることになります。
つまり、PythonからFFmpegを利用するということです。
そして、そのための手段がPythonでは何個か用意されています。
今回は、その手段の一つであるPudubを利用します。
Pydubによって、WAVをMP3に変換することをゴールとしましょう。
本記事の内容
- Pydubとは?
- Pydubのシステム要件
- Pydubのインストール
- PydubでWAVをMP3に変換する
それでは、上記に沿って解説していきます。
Pydubとは?
Pydubは、音声を扱うためのインターフェースです。
冒頭において、PydubはFFmpegを操作すると書きました。
FFmpeg以外では、Libavを操作することも可能です。
音声再生を行う場合には、以下に依存します。
- simpleaudio
- pyaudio
- ffplay
- avplay
上記より、Pydubは様々なソフト・ライブラリのインターフェースになるのです。
Pydubのルールさえ覚えれば、様々な音声処理ソフト・ライブラリを扱えます。
Pydubの役割については、イメージを掴めたでしょうか?
イメージが掴めたら、次はPydubのシステム要件を確認します。
Pydubのシステム要件
現時点(2021年4月)でのPydubの最新バージョンは、0.25.1となります。
この最新バージョンは、2021年3月10日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
そして、サポート対象となるPythonのバージョンは以下。
- Python 2.7
- Python 3.4
- Python 3.5
- Python 3.6
- Python 3.7
- Python 3.8
Python 3.9が対象にないのは、テストができていないだけでしょう。
Python 3.9でも問題ないはずです。
私は、現時点で最新の3.9.4で検証しています。
>python -V Python 3.9.4
ここまでは余程の環境でなければ、問題ないでしょう。
重要になるのは、FFmpegです。
FFmpegがインストールされていることが、今回は必須の条件となります。
(※Libavはメンテされていないので利用しません)
と言っても、なんてことはありません。
macOSやLinuxでは、普通にインストールすればOKです。
Windowsの場合も、パスさえ通せば何も難しいことはありません。
詳細は、次の記事をご覧ください。
「FFmpegのダウンロード・インストール」でパスの通し方も説明しています。
ffmpeg -version
上記コマンドが実行できれば、準備はOKと言えます。
では、実際にPydubをインストールしていきます。
Pydubのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.0.1 setuptools 56.0.0
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、Pydubのインストールです。
Pydubのインストールは、以下のコマンドとなります。
pip install pydub
インストールには、そこそこ時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- pip 21.0.1 pydub 0.25.1 setuptools 56.0.0
ソフト(パス)やライブラリが存在していれば、利用するのでしょう。
インストール時に、依存するモノをまとめてインストールするわけではないようです。
以上、Pydubのインストールが完了しました。
では、実際にPydubを使ってWAVをMP3に変換してみましょう。
PydubでWAVをMP3に変換する
最初に、WAVファイルを用意します。
test.wavとします。
このtest.wavをMP3に変換するコードは、以下。
from pydub import AudioSegment # 読み込み sound = AudioSegment.from_wav("test.wav") # 変換 sound.export("test.mp3", format="mp3")
びっくりするぐらい簡単です。
これほど簡単なら、Pydubを利用する価値があると言えますね。
上記コードを実行すると、test.mp3が作成されています。
圧縮もされて、容量がかなり減っています。
変換の際のオプション次第では、もっと圧縮率を高めることができるかもしれません。
でも、デフォルトでも十分に効果はあります。