Python:pysoundfileを使って読み込んだwavデータをFFTをする

自分用メモです。

これ一つで取りあえずはwav読み込みとFFTのサンプルかねてるので参考になれば

import soundfile as sf
import numpy as np
import matplotlib.pyplot as plt
from scipy import fftpack

fname = 'whitenoise.wav' # mono
data, samplerate = sf.read(fname)


X = fftpack.fft(data)
freqList = fftpack.fftfreq(len(data), d=1.0/ samplerate)

amplitude = [np.sqrt(c.real ** 2 + c.imag ** 2) for c in X]  # 振幅スペクトル

# 波形を描画

# 振幅スペクトルを描画
plt.plot(freqList, amplitude, marker='.', linestyle='-',label = "fft plot")
plt.axis([0, 25000, 0, 2000])
plt.xlabel("frequency [Hz]")
plt.ylabel("amplitude")

f:id:gsmcustomeffects:20190107141330p:plain
ホワイトノイズ.wav(44100kHz)