Pythonでnumpyの信号をスピーカーから出力するのはどうすればよいのかを探していると,sounddeviceというのが見つかった.
これを使ってこの後 仕事で少し遊んでみることにした...
音を出力する例としては以下のようになる.
zがnumpy.arrayでこの例では正弦波の重ね合わせになっている.
import numpy as np import sounddevice as sd fs = 44100 t = np.linspace(0, 44099, num=44100, endpoint=False); z = 0.2 * np.sin(t * 2 * np.pi * 11000) + 0.2 * np.sin(t * 2 * np.pi * 11001) + 0.2 * np.sin(t * 2 * np.pi * 11002) + 0.2 * np.sin(t * 2 * np.pi * 11003) + 0.2 * np.sin(t * 2 * np.pi * 11004) + 0.2 * np.sin(t * 2 * np.pi * 11005); sd.play(z, fs)
この例は再生だけなので後で,録音も以下のように行える.
import numpy as np import sounddevice as sd fs = 44100 duration = 5 # seconds z2 = sd.rec(int(duration * fs), samplerate=fs, channels=1) sd.wait() sd.play(z2, fs); # 録音したものを再生