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

Matlab 语谱图(时频图)绘制与分析-LMLPHP

图1数字0-10波形图

Matlab 语谱图(时频图)绘制与分析-LMLPHP

图2数字0-10语谱图

Matlab 语谱图(时频图)绘制与分析-LMLPHP

图3

语谱图简单分析

1、san(1),si(4),shi(2)声母相同,图2中3,4,10三个音的头部相似。(从图中还能看出读音不准,4、10平卷舌不分。本人普通话三级甲等,

04-28 12:23