语音中的语谱图

     语谱图直观的表示语音信号随时间变化的频谱特性。任一给定频率成分在给定时刻的强弱用相应点的灰度或色调的浓淡来表示。用语谱图分析语音又称为语谱分析。语谱图中显示了大量的与语音的语句特性有关的信息,它综合了频谱图和时域波形的特点,明显地显示出语音频谱随时间的变化情况,或者说是一种动态的频谱。可以用语谱仪来记录这种谱图。

    语谱图的纵轴对应于频率,横轴对应于时间,而图像的黑白度对应于能量。所以声音的谐振频率在图上就表示成为黑带,浊音部分则出现条纹图形,这是因为此时的时域波形有周期性,在浊音的时间间隔内图形显得很紧密。

语谱图的Matlab程序:

%语谱图程序 2013/9/24
clear all;
[x,sr]=wavread('test.wav');  %sr为采样频率
if(size(x,1)>size(x,2))    %size(x,1)为x的行数,size(x,2)为x的列数
    x=x';
end
s=length(x);
w=round(44*sr/1000);   %窗长,取离44*sr/1000最近的整数
n=w;                   %fft的点数
ov=w/2;                %50%的重叠   
h=w-ov;
% win=hanning(n)';  %汉宁窗
win=hamming(n)';    %汉明窗
c=1;
ncols=1+fix((s-n)/h);
d=zeros((1+n/2),ncols);
for b=0:h:(s-n)
    u=win.*x((b+1):(b+n));
    t=fft(u);
    d(:,c)=t(1:(1+n/2))';
    c=c+1;
end
tt=[0:h:(s-n)]/sr;
ff=[0:(n/2)]*sr/n;
imagesc(tt/1000,ff/1000,20*log10(abs(d)));
colormap(gray);
axis xy
xlabel('时间/s');
ylabel('频率/kHz');

结果为:

语音中的语谱图_第1张图片




你可能感兴趣的:(语音识别)