こんな方におすすめ
- MACにpyaudioをインストールしたい
- pyaudioについて知りたい
pyaudioをインストールの方法についてです。自分がインストールしようと思ったら、いくつかつまづいてしまいましたので、ブログに書いておきます。
pyaudioとは
そもそもpyaudioって何?
簡単にいうと、音声入出力用のライブラリであるPortAudioを動かすためのpythonのモジュールです。
PortAudioは、Windows,MAC,Linuxなど様々なOSに対応しています。
そのため、PyAudioを使用すると、Python上で簡単にさまざまなプラットフォームでオーディオを再生および録音できます。
MACにpyaudioのインストールの方法
pyaudioはportaudioが必要となります。まずは、portaudioをインストールしてください。portaudioのインストールには、Homebrewを使用します。
まずは、ターミナルからbrewをupdateします。
1 |
brew update |
次にbrewでportaudioをインストールします。
1 |
brew install portaudio |
pipを20.1.1にupgradeします。
1 2 3 4 |
pip install --upgrade pip Collecting pip Downloading pip-20.1.1-py2.py3-none-any.whl (1.5 MB) |████████████████████████████████| 1.5 MB 554 kB/s |
pipを使ってpyaudioをインストールします。
1 2 |
pip install pyaudio Successfully installed pyaudio-0.2.11 |
これで、pythonのプログラム上で、pyaudioをインポートすることができます。
Pyaudioでwavファイルを再生する
pyaudioとwaveをインポートする。
1 2 |
import pyaudio import wave |
チャンクサイズを設定し、wavファイルを開く。今回、wavファイルをフリー素材からダウンロードしました。
1 2 3 4 5 |
CHUNK_SIZE = 1024 #futta-wins.wav はフリー素材からダウンロード wf = wave.open('futta-wins.wav', 'rb') |
PyAudioインスタンスを作成する。
1 |
p = pyaudio.PyAudio() |
ストリームを開く。
1 |
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(), rate=wf.getframerate(), output=True) |
チャンクサイズだけデータを読み込み、ストリームに書き込み再生する。
1 2 3 4 5 6 7 8 |
data = wf.readframes(CHUNK_SIZE) i=0 # Streamに読み取ったデータを書き込む=再生する while len(data) > 0: stream.write(data) data = wf.readframes(CHUNK_SIZE) |
ストリームを止めて、クローズしインスタンスを破棄する。
1 2 3 |
stream.stop_stream() stream.close() p.terminate() |
まとめ
以上の流れで、pyaudioをインストールして、python上でwavファイルを再生できます。