资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,实验四,基于,MATLAB,的语音信号,LPC,分析,一、实验目的,掌握,LPC,原理,会利用已学的知识,编写程序估计线性预测系数以及,LPC,的推演参数,。,能利用所求的相关参数估计语音的端点、清浊音判断、基因周期、共振峰等,。,二、实验原理,LPC,分析基本原理,LPC,分析为线性时不变因果稳定系统,V,(,z,)建立一个全极点模型,并利用均方误差准则,对已知的语音信号,s(n),进行模型参数估计。,如果利用,P,个取样值来进行预测,则称为,P,阶线性预测。假设用过去,P,个取样值,的加权之和来预测信号当前取样值 ,则预测信号 为:,(1),其中加权系数用 表示,称为预测系数,则预测误差为,:,(2),要使预测最佳,则要使短时平均预测误差最小有:,(3),(4),令,(5),最小的 可表示成:,(6),显然,误差越接近于零,线性预测的准确度在均方误差最小的意义上为最佳,由此可以计算出预测系数。,通过,LPC,分析,由若干帧语音可以得到若干组,LPC,参数,每组参数形成一个描绘该帧语音特征的矢量,即,LPC,特征矢量。由,LPC,特征矢量可以进一步得到很多种派生特征矢量,例如线性预测倒谱系数、线谱对特征、部分相关系数、对数面积比等等。不同的特征矢量具有不同的特点,它们在语音编码和识别领域有着不同的应用价值。,自相关法,在最佳线性预测中,若用下式定义的时间平均最小均方准则代替,(3),式的集合平均最小均方准则,即令,(,7,),事实上就是短时自相关函数,因而,(,8,),(,9,),根据平稳随机信号的自相关性质,可得,(,10,),由,(6),式,可得:,(,11,),综上所述,可以得到如下矩阵形式:,(,12,),协方差法,如果在最佳线性预测中,用下式定义的时间平均最小均方准则代替,(3),式的集合平均最小均方准则,则可得到类似的方程:,(,13,),可以看出,这里的数据段两端不需要添加零取样值。在理论上,协方差法计算出来的预测系数有可能造成预测误差滤波器的不稳定,但在实际上当每帧信号取样足够多时,其计算结果将与自相关法的结果很接近,因而稳定性一般是能够保证的,(,当然这种方法也有量化效应可能引起不稳定的缺点,),。,协方差解法的最大优点在于不存在自相关法中两端出现很大预测误差的情况,在,N,和,P,相差不大时,其参数估值比自相关法要精确的多。但是在语音信号处理时,往往取,N,在,200,左右。此时,自相关法具有较大误差的段落在整个语音段中所占的比例很小,参数估值也是比较准确的。在这种情况下,协方差法误差较小的优点就不再突出,其缺乏高效递推算法的缺点成为了制约因素。所以,在语音信号处理中往往使用高效的自相关法。,结合语音帧能量构成,LPC,组合参数,实验证明,组合参数可以提高系统的识别性能。,组合参数虽然可以提高系统的性能,但很显然,无论是在特征参数提取环节,还是在模型训练和模型匹配环节都使运算量有所增加。在特征参数提取环节,要计算一种以上的特征参数。在模型训练和模型匹配环节,由于组合参数特征矢量的维数较多,使运算复杂度有所增加。运算量的增加会使系统的识别速度受到影响。,为使运算量问题得到较好的解决,所以可以由,LPC,参数与语音帧能量构成组合参数,能够在运算量增加不明显的情况下改进系统的性能。,语音帧能量是指一帧语音信号的能量,它等于该帧语音样值的平方和。选取与语音帧能量构成组合参数主要有以下考虑:,1,)语音帧能量是语音信号最基本的短时参数之一,它表征一帧语音信号能量的大小,是语音信号一个重要的时域特征;,2,)由一帧语音求出的语音帧能量是一个标量值,与其它参量构成组合参数不会使原特征矢量的维数明显增加,特征矢量的维数越少,则需要的运算复杂度越小,另外,获取语音帧能量的运算并不复杂;,3,)语音帧能量与,LPC,参数之间的相关性不大,它们反映的是语音信号的不同特征,应该有较好的效果。,模型增益,G,模型的激励信号 表示为:,(,20,),预测误差,e(n),如式(,2,),这样当实际的预测系数与模型系数相等时,有,(,21,),这说明激励信号正比于误差信号,其比例常数等于模型增益,G,。通常假设误差信号的能量等于输入激励信号的能量,因此可以得到:,(,22,),对于式中的激励信号额,e(n),,主要分为浊音和清音两种情况。其中为浊音时,考虑到此时实际的激励信号为声门脉冲,因此可以将激励信号表示为,n=0,时的单位抽样。为了保证这个假设成立,要求分析的区间应该大致和语音基因周期的长度相等。当语音为清音时,我们假定激励信号,e(n),为一个零均值、单位方差的平稳白噪声过程。,采用自相关解法时,浊音的模型增益为,(23),清音计算模型增益的公式和浊音相同。,实验结果,(,参考,),我们使用的原始语音为“,kdt_070”,,采样频率为,11000Hz,运行程序见附录。,在这里我们取第,30,帧进行观察,线性预测阶数为,12,,看到图,3.1,所示的原始语音帧的波形,预测语音帧波形和它们之间预测误差的波形。图,3.2,为原始语音帧和预测语音帧的短时谱和,LPC,谱的波形,图,3.1,原始语音帧、预测语音帧和预测误差的波形,图,3.2,原始语音帧和预测语音帧的短时谱和,LPC,谱的波形,这里我们可以改变线性误差的阶数来观察语音帧的短时谱和,LP,谱的变化情况,如图,3.3,。,图,3.3,预测阶数对语音帧短时谱和,LPC,谱的影响,从图中可以看出,,P,越大,,LPC,谱越能反映出语音短时谱的细节部分,但,LPC,谱的光滑度随之下降。由于我们的目的只是用,LPC,谱反映声道综合效应的谱的表示式,而具体的谐波形状是通过激励谱来控制的,因此,LPC,谱只要能够体现出语音的共振峰的结构和谱包络就可以,因此从计算复杂性的角度分析,预测阶数,P,应该适中。,图,3.4,是原始语音和预测误差的倒谱波形,我们可以从中计算出原始语音的基音周期。从图中看出两峰值之间的间隔为,40,点左右,基音周期为,40/11000=3.6ms,,频率为,278Hz,左右。,图,3.4,原始语音和预测误差的倒谱波形,图,3.5,给出了原始语音的语谱图和预测语音的语谱图,通过比较发现,预测语音的预测效果还可以,基音频率相差无几。,图,3.5,原始语音的语谱图和预测语音的语谱图,MusicSource=wavread(kdt_070);,Music_source=MusicSource;,N=256;%window length,,,N=100-1000;,Hamm=hamming(N);%create Hamming window,frame=input(,请键入想要处理的帧位置,=);,%origin is current frame,origin=Music_source(frame-1)*(N/2)+1):(frame-1)*(N/2)+N);,Frame=origin.*Hamm;,%Short Time Fourier Transform,s1,f1,t1=specgram(MusicSource,N,N/2,N);,Xs1,Ys1=size(s1);,for i=1:Xs1,FTframe1(i)=s1(i,frame);,end,N1=input(,请键入预测器阶数,=);%N1 is predictors order,coef,gain=lpc(Frame,N1);%LPC analysis using Levinson-Durbin recursion,est_Frame=filter(0-coef(2:end),1,Frame);%estimate frame(LP),FFT_est=fft(est_Frame);,err=Frame-est_Frame;%error,%FFT_err=fft(err);,subplot(3,1,1);plot(MusicSource)%,做原始语音信号的时域图形,title(,原始语音信号,);,subplot(3,1,2),plot(1:N,Frame,1:N,est_Frame,-r);grid;title(,原始语音帧,vs.,预测后语音帧,),subplot(3,1,3),plot(err);grid;title(,误差,);pause,fLength(1:2*N)=origin,zeros(1,N);,Xm=fft(fLength,2*N);,X=Xm.*conj(Xm);,Y=fft(X,2*N);,Rk=Y(1:N);,PART=sum(coef(2:N1+1).*Rk(1:N1);,G=sqrt(sum(Frame.2)-PART);,A=(FTframe1-FFT_est(1:length(f1)./FTframe1;%inverse filter A(Z),subplot(2,1,1),plot(f1,20*log(abs(FTframe1),f1,(20*log(abs(1./A),-r);grid;title(,短时谱,);,subplot(2,1,2),plot(f1,(20*log(abs(G./A);grid;title(LPC,谱,);,pause,temp=FTframe1-FFT_est(1:length(f1);,%not move higher frequnce,pitch1=log(abs(temp);,pLength=length(pitch1);,result1=ifft(pitch1,N);,%move higher frequnce,pitch1(pLength-32):pLength)=0;,result2=ifft(pitch1,N);,%direct do real cepstrum with err,pitch=fftshift(rceps(err);,origin_pitch=fftshift(rceps(Frame);,subplot(211),plot(origin_pitch);grid;title(,原始语音帧倒谱,(,直接调用函数,);,subplot(212),plot(pitch);grid;title(,预测误差倒谱,(,直接调用函数,);,pause,subplot(211),plot(1:length(result1),fftshift(real(result1);grid;title(,预测误差倒谱,(,根据定义编写,没有去除高频分量,);,subplot(212),plot(1:length(result2),fftshift(real(result2);grid;title(,预测误差倒谱,(,根据定义编写,去除高频分量,);,四、实验报告要求,1、简述实验目的和实验原理;,2、,matlab,程序清单及结果图形;,3、实验结果分析,加群 肇念霜淭,
展开阅读全文