次のソースコードを使って、jupyter noteでwaveファイルなどを再生したかったが、簡単にはいかなかったのでその対処方法を記述する。
色々調べたり実験したところ、pydubモジュールの外にpyaudioモジュールとffmpegとが必要なことが分かった。(特に実験の結果、pydubを動かすためには、ソースコードにpyaudioの記述がなくても、anacondaにpyaudioのモジュールが必要であることが分かった。pyaudioモジュールがないとplay(sound)コマンドを実行したときに、C:\Users<user_name>\AppData\Local\Tempフォルダのwaveファイルにアクセスできないとエラーメッセージが出力された。これを解消するためにpyaudioモジュールを追加して、対処できた。)
本対処方法は、anaconda、jupyter-noteだけでなく、python-Idleでも有効ではないかと考えるので、pydubモジュールでお困りの方は試してみてはいかがでしょうか。
追記:python-Idleでは次のページがとても参考になります。
https://watlab-blog.com/2019/05/21/pyaudio-install/
動作させたかったpythonのソースコード
from pydub import AudioSegment
from pydub.playback import play
sound = AudioSegment.from_wav("C:\Users\\Documents\pydub_inst\input.wav")
play(sound)
環境
windows8.1
jupyter note 6.0.0
Python ver.3.7.3(64bit)
上記のソースコードをjupyter noteで実行したところ、pydubモジュールがないとエラーが出力された。
対処方法
(1)condaに必要なモジュールが入っているか確認
Anaconda Promptからconda_listを実行し、pydubとpyaudioが入っているかを確認
pydub、pyaudio共に入っていなかった。(もしこの二つのモジュールが入っていたら、(3)へ進みffmpegのインストールとpathを設定)
(2)pydubとpyaudioをインストールする。
まず、pydubをインストール
pip install pydub
次にpyaudioをインストール
conda install pyaudio
(3)ffmpegをダウンロード
pydubを動かすためにffmpegが必要なので次のサイトからダウンロードする。(もし、ffmpegがインストールされ、pathも正常に切られていたなら、pydubモジュールの問題ではなく、別の原因が考えられる。)
サイト:https://ffmpeg.zeranoe.com/builds/
zipファイルを解凍し、解凍したフォルダの名前をわかりやすい適当な名前(例えばffmpeg-win64)に変更し “C:\Program Files”の下に置く。
ffmpegのバイナリーファイルにpathを切る。
windowsのコントロールパネル――システム――システムの詳細設定(システムのプロパティ)――環境変数――システム環境変数――編集
システム変数の編集の変数値の最後尾にffmpegのルートからパスを追記する。(ドライブ名C:の前にセミコロン(;)も忘れないように追記。)
例);C:\Program Files\ffmpeg-win64\bin
(4)正常動作の確認
以上で必要なモジュールなどを全てインストールしたので、正常動作を確認する。
jupyter noteで先ほどのソースコードを実行し、音声が出力されたことを確認した。