PyAudio のデフォルトの録音例を使用し、numpy と scipy を追加しました。scipy.io.wavefile.read('FILE.wav')
ただし、ファイルを記録した後に
のみ使用できます。また、このランダムなタプルも提供されます(44100, array([[ 0, 0],
[-2, 0],
[ 0, -2],
...,
[-2, -2],
[ 1, 3],
[ 2, -1]], dtype=int16))
。この配列は私に何を与えてくれますか、できれば録音中にwavファイルの各フレームの周波数/振幅を取得する方法を知っていますか?
10109 次
1 に答える
12
配列はランダム データではなく、ステレオ サウンドのウェーブ データであり、44100 はサンプリング レートです。次のコードを使用して、左チャネルの波形をプロットします。
import scipy.io.wavfile as wavfile
import numpy as np
import pylab as pl
rate, data = wavfile.read('FILE.wav')
t = np.arange(len(data[:,0]))*1.0/rate
pl.plot(t, data[:,0])
pl.show()
波の周波数と振幅を取得するには、FFT を実行します。次のコードは、すべての周波数ビンのパワーをプロットします。
p = 20*np.log10(np.abs(np.fft.rfft(data[:2048, 0])))
f = np.linspace(0, rate/2.0, len(p))
pl.plot(f, p)
pl.xlabel("Frequency(Hz)")
pl.ylabel("Power(dB)")
pl.show()
于 2011-08-02T07:45:03.290 に答える