MacでPyAudioを使ってみる.
インターバルタイマー的なのが欲しかったのでPythonで音を出そうと思い,PyAudioを使ってみました.
PyAudioっていうのはPortAudioのPythonラッパで,PortAudioはプラットフォームに依存しない音声APIのライブラリらしいです.
インストール
公式サイト http://people.csail.mit.edu/hubert/pyaudio/ にアクセスしてdmgをインストール
Python 2.7の場所にライブラリを置いてくれないので,2.6のところからシンボリックリンクを貼ります.
% sudo ln -s /Library/Python/2.6/site-packages/_portaudio.so /Library/Python/2.7/site-packages/ % sudo ln -s /Library/Python/2.6/site-packages/pyaudio.py* /Library/Python/2.7/site-packages/
サンプルの実行
インストールが終わったら
PyAudioの公式サイトトップページのサンプルを実行してみる.
# vi example.py """ Play a WAVE file. """ import pyaudio import wave import sys chunk = 1024 if len(sys.argv) < 2: print "Plays a wave file.\n\n" +\ "Usage: %s filename.wav" % sys.argv[0] sys.exit(-1) wf = wave.open(sys.argv[1], 'rb') p = pyaudio.PyAudio() # open stream stream = p.open(format = p.get_format_from_width(wf.getsampwidth()), channels = wf.getnchannels(), rate = wf.getframerate(), output = True) # read data data = wf.readframes(chunk) # play stream while data != '': stream.write(data) data = wf.readframes(chunk) stream.close() p.terminate()
実行
% python example.py sample.wav