Pythonは音声処理にも利用できます。以下はPythonを使って音声を取得し、FFTによる周波数解析を行い、スペクトルを表示する方法です。
import pyaudio
import numpy as np
import matplotlib.pyplot as plt
# PyAudioオブジェクトを作成
pa = pyaudio.PyAudio()
# ストリームを開く
stream = pa.open(format=pyaudio.paFloat32,
channels=1,
rate=44100,
input=True,
frames_per_buffer=1024)
# ストリームからデータを読み込む
data = stream.read(1024)
# バイナリデータをnumpy配列に変換
data = np.frombuffer(data, dtype=np.float32)
# FFTを実行
spectrum = np.fft.fft(data)
# スペクトルを表示
plt.plot(np.abs(spectrum))
plt.show()
# ストリームを閉じる
stream.close()
pa.terminate()
上記のコードは、PyAudioモジュールを使って音声データを取得し、NumPyを使ってFFTを実行し、matplotlibを使ってスペクトルを表示します。