7.2 pyaudio で WAVE ファイルを再生する

どれを選ぶべきか分からないけれど、 ネットで pyaudio を推している人がいて、それに従ってみる。

readparam.py

#coding: utf-8
# 参考 http://aidiary.hatenablog.com/entry/20110515/1305420830
# 準備 sudo port install py27-pyaudio 

import wave
import pyaudio
import sys # argv

if __name__ == '__main__':
    argv = sys.argv
    argc = len(argv)
    if argc == 1:
        wf = wave.open("guitar-5-3.wav", "r")
    else:
        wf = wave.open(argv[1], "r")

    # ストリームを開く
    p = pyaudio.PyAudio()
    stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                    channels=wf.getnchannels(),
                    rate=wf.getframerate(),
                    output=True)

    # チャンク単位でストリームに出力し音声を再生
    chunk = 1024
    data = wf.readframes(chunk)
    while data != '':
        stream.write(data)
        data = wf.readframes(chunk)
    stream.close()
    p.terminate()

桂田 祐史
2017-10-09