- 确认数据准确性:检查音频文件格式是否正确, 确保音频文件没有被损坏或节选了某些部分,验证 文件是否正确打开。
- 数据预处理:音频文件需要进行一些预处理, 比如格式转换(如音频文件压缩),音频音量标准化和音频频率归一化,以便获得相对准确的FFT数据。
- FFT可视化参数的调整:参数的缺省值可能并不适用于所有的音频文件,需要根据实际情况进行调整, 如FFT长度,采样率,窗函数等。
以下示例代码展示了如何使用Python的matplotlib库获取音频文件的FFT可视化图:
import numpy as np
from scipy.io import wavfile
from matplotlib import pyplot as plt
#读取wav文件
fs, signal = wavfile.read('audio.wav')
#设置参数(根据音频文件进行调整)
N = 1024 # FFT长度
start_time = 0 # 图形起始时间
end_time = 1 # 图形终止时间
#处理数据
signal = signal[int(start_time*fs):int(end_time*fs)]
signal = signal / (2.0**15)
signal = signal - np.average(signal)
#FFT
fft_result = np.fft.fft(signal, N)
freqs = np.fft.fftfreq(N, d = 1.0/fs)
fft_result = 10*np.log10(np.abs(fft_result))
#绘制频谱图
plt.plot(freqs[:int(N/2)],fft_result[:int(N/2)],'r')
plt.xlabel('Freq (Hz)')
plt.ylabel('dB')
plt.show()