Matlab 语谱图(时频图)绘制与分析
语谱图:先将语音信号作傅里叶变换,然后以横轴为时间,纵轴为频率,用颜色表示幅值即可绘制出语谱图。在一幅图中表示信号的频率、幅度随时间的变化,故也称“时频图”。
%matlab 2016a
%需要先安装语音处理工具箱(matlab_voicebox)
[Y,FS,WMODE,FIDX]=readwav('sound0_10','s',-1,-1);
%Y为读到的双声道数据
%FS为采样频率
%这里的输入参数sound0_10为双声道数字0到10的声音文件(sound0_10.wav)
%其它参数的功能忘了
Y1 = Y(:,1); %Y为双声道数据,取第2通道
plot(Y1); %画Y1波形图
grid on;
specgram(Y1,2048,44100,2048,1536);
%Y1为波形数据
%FFT帧长2048点(在44100Hz频率时约为46ms)
%采样频率44.1KHz
%加窗长度,一般与帧长相等
%帧重叠长度,此处取为帧长的3/4
图1数字0-10波形图
图2数字0-10语谱图
图3
语谱图简单分析
1、san(1),si(4),shi(2)声母相同,图2中3,4,10三个音的头部相似。(从图中还能看出读音不准,4、10平卷舌不分。本人普通话三级甲等,