《语音信号处理》实验3LPC特征提取.docx

上传人:b****4 文档编号:681052 上传时间:2022-10-12 格式:DOCX 页数:10 大小:361.71KB
下载 相关 举报
《语音信号处理》实验3LPC特征提取.docx_第1页
第1页 / 共10页
《语音信号处理》实验3LPC特征提取.docx_第2页
第2页 / 共10页
《语音信号处理》实验3LPC特征提取.docx_第3页
第3页 / 共10页
《语音信号处理》实验3LPC特征提取.docx_第4页
第4页 / 共10页
《语音信号处理》实验3LPC特征提取.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

《语音信号处理》实验3LPC特征提取.docx

《《语音信号处理》实验3LPC特征提取.docx》由会员分享,可在线阅读,更多相关《《语音信号处理》实验3LPC特征提取.docx(10页珍藏版)》请在冰豆网上搜索。

《语音信号处理》实验3LPC特征提取.docx

《语音信号处理》实验3LPC特征提取

华南理工大学

 

《语音信号处理》实验报告

 

实验名称:

LPC特征提取

学号:

班级:

10级电信5班

日期:

2013年5月24日

 

1.实验目的

1、熟练运用MATLAB软件进行语音信号实验;

2、熟悉短时分析原理、LPC的原理;

3、学习运用MATLAB编程进行LPC的提取;

4、学会利用短时分析原理提取LPC特征序列。

 

2.实验原理

1、LPC分析基本原理

LPC分析为线性时不变因果稳定系统V(z)建立一个全极点模型,并利用均方误差准则,对已知的语音信号s(n)进行模型参数估计。

如果利用P个取样值来进行预测,则称为P阶线性预测。

假设用过去P个取样值的加权之和来预测信号当前取样值,则预测信号为:

(1)

其中加权系数用表示,称为预测系数,则预测误差为:

(2)

要使预测最佳,则要使短时平均预测误差最小有:

(3)

(4)

(5)

最小的可表示成:

(6)

显然,误差越接近于零,线性预测的准确度在均方误差最小的意义上为最佳,由此可以计算出预测系数。

通过LPC分析,由若干帧语音可以得到若干组LPC参数,每组参数形成一个描绘该帧语音特征的矢量,即LPC特征矢量。

由LPC特征矢量可以进一步得到很多种派生特征矢量,例如线性预测倒谱系数、线谱对特征、部分相关系数、对数面积比等等。

不同的特征矢量具有不同的特点,它们在语音编码和识别领域有着不同的应用价值。

2、自相关法

在最佳线性预测中,若用下式定义的时间平均最小均方准则代替(3)式的集合平均最小均方准则,即令

(7)

事实上就是短时自相关函数,因而

(8)

(9)

根据平稳随机信号的自相关性质,可得

(10)

由(6)式,可得:

(11)

综上所述,可以得到如下矩阵形式:

 

(12)

值得注意的是,自相关法在计算预测误差时,数据段的两端都需要加P个零取样值,因而可造成谱估计失真。

特别是在短数据段的情况下,这一现实更为严重。

另外,当预测系数量化时,有可能造成实际系统的不稳定。

自相关解法主要有杜宾算法、格型算法和舒尔算法等几种高效递推算法。

3、协方差法

如果在最佳线性预测中,用下式定义的时间平均最小均方准则代替(3)式的集合平均最小均方准则,则可得到类似的方程:

(13)

可以看出,这里的数据段两端不需要添加零取样值。

在理论上,协方差法计算出来的预测系数有可能造成预测误差滤波器的不稳定,但在实际上当每帧信号取样足够多时,其计算结果将与自相关法的结果很接近,因而稳定性一般是能够保证的(当然这种方法也有量化效应可能引起不稳定的缺点)。

协方差解法的最大优点在于不存在自相关法中两端出现很大预测误差的情况,在N和P相差不大时,其参数估值比自相关法要精确的多。

但是在语音信号处理时,往往取N在200左右。

此时,自相关法具有较大误差的段落在整个语音段中所占的比例很小,参数估值也是比较准确的。

在这种情况下,协方差法误差较小的优点就不再突出,其缺乏高效递推算法的缺点成为了制约因素。

所以,在语音信号处理中往往使用高效的自相关法。

5、LPC

由于频率响应反映声道的频率响应和被分析信号的谱包络,因此用做反傅里叶变换求出的LPC倒谱系数。

通过线性预测分析得到的合成滤波器的系统函数为,其冲激响应为h(n)。

h(n)的倒谱为,就是说的逆变换是存在的。

设,将式两边同时对求导,得得到,于是有

令其左右两边z的各次幂前系数分别相等,得到和间的递推关系

,按其可直接从预测系数{}求得倒谱。

这个倒谱是根据线性预测模型得到的,又称为LPC倒谱。

LPC倒谱由于利用线性预测中声道系统函数H(z)的最小相位特性,因此避免了一般同态处理中求复对数的麻烦。

3.实验数据及平台

本实验所采用的数据是语音文件phrase.WAV和monologuespeech_female,平台是MATLAB。

4.实验过程(步骤)

(1)、实验步骤

1、输入原始语音

2、对样本语音进行加窗处理

3、计算LPC系数

4、建立语音正则方程

5、输出原始样本语音、预测语音波形和预测误差

6、输出LPC谱

7、求出预测误差的倒谱

8、输出原始语音和预测语音的语谱图

(2)实验流程

加窗处理

输出图像

计算LPC系数

建立语音正则方程

输入原始语音

图1LPC系数实验流程图

5.实验结果及讨论

我们使用的原始语音为“monologuespeech_female”,运行程序,得到原始语音语谱图和原始语音波形:

图2原始语音语谱图和原始语音波形

在这里我们选取线性预测阶数为15,下图是实验的结果,图3上半部分中蓝色的线是原始语音帧波形,红色的线是预测语音帧的波形;下半部分为预测误差;图4为原始语音帧和预测语音帧的短时谱和LPC谱的波形:

图3

图4短时谱和LPC谱

图5原始语音和预测误差的倒谱波形

图6原始语音语谱图和预测语音语谱图

LPC系数:

ai=

Columns1through8

1.0000-0.5313-0.1624-0.2005-0.07260.14810.0192-0.1592

Columns9through16

-0.12480.18570.06360.0848-0.1475-0.05620.0129-0.0196

通过计算LPC系数可以很好的利用先行预测中声道系统函数的最小相位特性来提取特征函数

6.实验总结

这次实验利用MATLAB对信号进行分析和处理,主要就是进行语音线性预测,语音线性预测的基本思想是:

一个语音信号的抽样值可以用过去若干个取样值的线性组合来逼近。

通过使实际语音抽样值与线性预测抽样值的均方误差达到最小,可以确定唯一的一组线性预测系数。

通过这个实验,我对语音线性预测进行了探究和验证,巩固了课所学的知识。

7.实验代码

I=wavread('E:

\yuuyin\monologuespeech_female.wav');%读入原始语音

%subplot(3,1,1),

plot(I);

title('原始语音波形')

%对指定帧位置进行加窗处理

Q=I';

N=256;%窗长

Hamm=hamming(N);%加窗

frame=60;%需要处理的帧位置

M=Q(((frame-1)*(N/2)+1):

((frame-1)*(N/2)+N));

Frame=M.*Hamm';%加窗后的语音帧

[B,F,T]=specgram(I,N,N/2,N);

[m,n]=size(B);

fori=1:

m

FTframe1(i)=B(i,frame);

end

P=input('请输入预测器阶数=');

ai=lpc(Frame,P);%计算lpc系数

LP=filter([0-ai(2:

end)],1,Frame);%建立语音帧的正则方程

FFTlp=fft(LP);

E=Frame-LP;%预测误差

subplot(2,1,1),plot(1:

N,Frame,1:

N,LP,'-r');grid;

title('原始语音和预测语音波形')

subplot(2,1,2),plot(E);grid;

title('预测误差');

pause

fLength(1:

2*N)=[M,zeros(1,N)];

Xm=fft(fLength,2*N);

X=Xm.*conj(Xm);

Y=fft(X,2*N);

Rk=Y(1:

N);

PART=sum(ai(2:

P+1).*Rk(1:

P));

G=sqrt(sum(Frame.^2)-PART);

A=(FTframe1-FFTlp(1:

length(F')))./FTframe1;

subplot(2,1,1),plot(F',20*log(abs(FTframe1)),F',(20*log(abs(1./A))),'-r');grid;

xlabel('频率/dB');ylabel('幅度');

title('短时谱');

subplot(2,1,2),plot(F',(20*log(abs(G./A))));grid;

xlabel('频率/dB');ylabel('幅度');

title('LPC谱');

pause

%求出预测误差的倒谱

pitch=fftshift(rceps(E));

M_pitch=fftshift(rceps(Frame));

subplot(2,1,1),plot(M_pitch);grid;

xlabel('语音帧');ylabel('/dB');

title('原始语音帧倒谱');

subplot(2,1,2),plot(pitch);grid;

xlabel('语音帧');ylabel('/dB');

title('预测误差倒谱');

pause

%画出语谱图

ai1=lpc(I,P);%计算原始语音lpc系数

LP1=filter([0-ai(2:

end)],1,I);%建立原始语音的正则方程

subplot(2,1,1);

specgram(I,N,N/2,N);

title('原始语音语谱图');

subplot(2,1,2);

specgram(LP1,N,N/2,N);

title('预测语音语谱图');

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1