mp3ファイルは様々なアプリで作成することができるファイルフォーマット形式ですが、信号処理ではwavファイルの方が汎用性があります。ここではPythonのpydubでmp3をwavに変換する方法を紹介します。
こんにちは。wat(@watlablog)です。ここではmp3をwavに変換する方法を紹介します!
ffmpegのインストール
pydubというライブラリを使えばmp3ファイルを扱えるようになりますが、その実態はffmpegというPythonとは関係の無い外部ソフトを使うというものです。
そのためffmpegをまずはインストールしましょう。
ffmpegをダウンロードする
まずは以下のページにアクセスします。
https://ffmpeg.zeranoe.com/builds/
以下のページが開きます。デフォルトで必要な要件はセットされていると思いますが、①ソフトのバージョン、Windowsのビット数、Linking(よくわかりませんが、シェアしないのであればStaticで良いと思います)を選択し、②Download Buildをクリックします。
ffmpegを任意のディレクトリに置く
ダウンロードしたffmpegはzipファイルを解凍し、任意の場所に置きます(これがインストールの意味になるかな)。
僕はCドライブのProgram Filesの中に「ffmpeg」というフォルダ名で置いておきました。
ffmpeg.exeへのパスを通す
ffmpegを任意の場所に置いた後は、Pythonでffmpegを呼び出せるように「パスを通す」必要があります。
まず、コンピュータのプロパティ等から、「環境変数」のダイアログを開きます。
その後、①システムの環境変数のPath(またはPATH)を選択し、②編集をクリックします。
次に①「ffmpeg.exe」のあるアドレスをコピーし、②コピーしたアドレスを新規欄にペーストします。
あとは全てOKをクリックし、ウィンドウを閉じます。
コンピュータを再起動する
パスを通した後のお決まりですが、最後にコンピュータを再起動します。
これでffmpegの準備は完了です。
Python/pydubでmp3をwavにするコード
pydubをpipインストールする
pydubはpipで簡単にインストールすることが可能です。コマンドプロンプトに以下のコードを打ち込み、実行します。
1 |
python -m pip install pydub |
Pythonコード
mp3ファイルをwavファイルに変換するコードを以下に示します。import文を入れてもたった3行なので簡単ですね。
ここではtest.mp3というファイルを.pyファイルと同じ階層に置き、コードを実行することでtest.wavが生成されます。
1 2 3 |
import pydub sound = pydub.AudioSegment.from_mp3("test.mp3") sound.export("test.wav", format="wav") |
おまけ:wavからmp3に変換するコード
以下はおまけです。
mp3からwavに変換するのは以下のコードで可能です。
1 2 3 |
import pydub sound = pydub.AudioSegment.from_wav("test.wav") sound.export("test.mp3", format="mp3") |
まとめ
本記事ではmp3ファイルをwavファイルに変換する方法を紹介しました。
その方法はffmpegという外部ソフトをpydubを使って操作するといったものでした。
(pydubを使わなくてもffmpegでいいじゃん…と思うこともありますが、色々なソフトの使い方を覚えるよりもPythonで一元化した方が好きな人もいるかも知れないので本記事を残しておきます。)
音声ファイルは複雑なフォーマットになっていますが、これでmp3ファイルであってもWATLABで扱う信号処理プログラミングが適用できそうです!
Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!