Pythonを使用してWAVファイルを再生する方法について説明します。この記事では、Pythonの標準ライブラリであるwave
とpyaudio
を使用します。
必要なモジュール
以下のモジュールが必要です。
- numpy
- matplotlib
- wave
- struct
- pyaudio
WAVファイルの再生
まず、numpyを使用して音声データを生成します。
import numpy as np
sec = 1 #1秒
note_hz = 440 #ラの音の周波数
sample_hz = 44100 #サンプリング周波数
t = np.arange(0, sample_hz * sec) #1秒分の時間の配列を確保
wv = np.sin(2 * np.pi * note_hz * t/sample_hz)
次に、生成した音声データをWAVファイルとして出力します。
import wave
import struct
max_num = 32767.0 / max(wv) #バイナリ化の下準備の下準備
wv16 = [int(x * max_num) for x in wv] #バイナリ化の下準備
bi_wv = struct.pack("h" * len(wv16), *wv16) #バイナリ化
最後に、pyaudioを使用して音声を再生します。
import pyaudio
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
stream.write(bi_wv)
stream.close()
p.terminate()
以上がPythonを使用してWAVファイルを再生する基本的な方法です。この方法を使用すれば、自分で生成した音声データを再生したり、既存のWAVファイルを再生したりすることが可能です。.