jupyter noteでpydubを使うための方法





　次のソースコードを使って、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\\<user_name>\\Documents\\pydub_inst\\input.wav")
play(sound)
 
環境
windows8.1
jupyter note 6.0.0
Python ver.3.7.3(64bit)
![1_pydubがない.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/c03e47f3-86ff-1e04-66e8-5bc65f95ab96.png)

 

上記のソースコードをjupyter noteで実行したところ、pydubモジュールがないとエラーが出力された。
 
対処方法
(1)condaに必要なモジュールが入っているか確認
　Anaconda Promptからconda_listを実行し、pydubとpyaudioが入っているかを確認
![2_conda_list.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/e391ca43-f0d6-8681-0b09-9e142c08a9d1.png)
 
　pydub、pyaudio共に入っていなかった。（もしこの二つのモジュールが入っていたら、(3)へ進みffmpegのインストールとpathを設定)
 ![3_conda_list_pydubなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/8abecf5f-b825-313a-7a87-16984ce07a99.png)

 
(2)pydubとpyaudioをインストールする。
　まず、pydubをインストール
pip install pydub
![3_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/cf401c45-996e-3f66-b08a-9680fb2abec2.png)
 

　次にpyaudioをインストール
conda install pyaudio
![10_pyaudioインストール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/ee6707ad-4990-c328-9cb1-29a1951c200e.png)
 
 
(3)ffmpegをダウンロード
　pydubを動かすためにffmpegが必要なので次のサイトからダウンロードする。（もし、ffmpegがインストールされ、pathも正常に切られていたなら、pydubモジュールの問題ではなく、別の原因が考えられる。）
サイト：https://ffmpeg.zeranoe.com/builds/
![5_ffmpeg_download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/46e09abb-e47e-0ff4-1afe-dcf6c2fb8b62.png)
 

　zipファイルを解凍し、解凍したフォルダの名前をわかりやすい適当な名前(例えばffmpeg-win64)に変更し “C:\Program Files”の下に置く。
![6_ffmpeg_c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/02db7219-2b47-ef98-4514-4b11304d961e.png)
![12_bin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/f39a1f63-93cf-1fd5-d675-7fe9e066915c.png)
 

　ffmpegのバイナリーファイルにpathを切る。
windowsのコントロールパネル――システム――システムの詳細設定(システムのプロパティ)――環境変数――システム環境変数――編集
![7_システムのプロパティ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/465bb0d7-836b-8e74-ae8d-93ad51997951.png)
 　　 
　システム変数の編集の変数値の最後尾にffmpegのルートからパスを追記する。(ドライブ名C:の前にセミコロン(;)も忘れないように追記。)
例）;C:\Program Files\ffmpeg-win64\bin
![8_環境変数＿path.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/504f54f5-7313-2022-e55e-9fecd248e7fb.png)
![9_システムの環境変数＿編集.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/ae33bdc0-799c-4a42-9191-3eb7e151e084.png)
 

(4)正常動作の確認
　以上で必要なモジュールなどを全てインストールしたので、正常動作を確認する。
![11_正常動作.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/29b10eb3-7f2f-3f40-2f44-2e604ca36e53.png)
jupyter noteで先ほどのソースコードを実行し、音声が出力されたことを確認した。