PydubによりWAVをMP3に変換する【Python】

PydubによりWAVをMP3に変換する【Python】 プログラミング

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が作成されています。

圧縮もされて、容量がかなり減っています。
変換の際のオプション次第では、もっと圧縮率を高めることができるかもしれません。

でも、デフォルトでも十分に効果はあります。

タイトルとURLをコピーしました