上面两个图是一个人说得两句话 且前面说得是一样的,语音生成的语谱图
import numpy as np
from scipy.fftpack import fft, ifft
import matplotlib.pyplot as plt
from matplotlib.pylab import mpl
from scipy.io import wavfile
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
mpl.rcParams['axes.unicode_minus'] = False # 显示负号
s,data=wavfile.read("BAC009S0218W0451.wav")
ly=[]
# 分帧 以采样点为单位
d_l=400
for len_s in range(0,133):
print(len_s)
print(d_l/s,"s","total {}".format(133*(d_l/s)))
y=data[data!=0][int((1/2)*d_l*len_s):int((1/2)*d_l*(len_s+1))]
fft_y = fft(y) # 快速傅里叶变换
ly.append(np.abs(fft_y.mean()))
# 均值频谱变化差异
ly=np.array(ly[1:])-np.array(ly[:-1])
plt.subplot(111)
plt.plot(range(len(ly)), ly, ".",'blue')
plt.title('单边振幅谱(归一化)', fontsize=9, color='blue')
plt.show()