基于 MATLAB 分析语音信号频域特征_第1页
基于 MATLAB 分析语音信号频域特征_第2页
基于 MATLAB 分析语音信号频域特征_第3页
基于 MATLAB 分析语音信号频域特征_第4页
基于 MATLAB 分析语音信号频域特征_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、语音信号处理实验报告实验三 基于 MATLAB 分析语音信号频域特征所在院系:工学院专业: 电子信息工程班级:电信112姓名:学号:指导教师:汤永清 2014年05月06日实验三 基于 MATLAB 分析语音信号频域特征一、 实验目的信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。输出频谱是声

2、道系统频率响应与激励源频谱的乘积。声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。本实验要求掌握傅里叶分析原理,会利用已学的知识,编写程序估计短时谱、倒谱,画出语谱图,并分析实验结果,在此基础上,借助频域分析方法所求得的参数分析语音信号的基音周期或共振峰。二、实验原理1、 短时傅立叶变换由于语音信号是短时平稳的随机信号,某一语音信号帧的短时傅立叶变换的定义为:其中 w(n-m)是实窗口函数序列,n表示某一语音信号帧。令 n-m=k',则得到同

3、样,不同的窗口函数,将得到不同的傅立叶变换式的结果。由上式可见,短时傅立叶变换有两个变量:n和 ,所以它既是时序 n的离散函数,又是角频率 的连续函数。与离散傅立叶变换逼近傅立叶变换一样,如令 =2k/N,则得离散的短时傅立叶吧如下:2、 语谱图水平方向是时间轴,垂直方向是频率轴,图上的灰度条纹代表各个时刻的语音短谱。语谱图反映了语音信号的动态频率特性,在语音分析中具有重要的实用价值。被成为可视语言。语谱图的时间分辨率和频率分辨率是由窗函数的特性决定的。时间分辨率高,可以看出时间波形的每个周期及共振峰随时间的变化,但频率分辨率低,不足以分辨由于激励所形成的细微结构,称为宽带语谱图;而窄带语谱图

4、正好与之相反。宽带语谱图可以获得较高的时间分辨率,反映频谱的快速时变过程;窄带语谱图可以获得较高的频率分辨率,反映频谱的精细结构。两者相结合,可以提供带两与语音特性相关的信息。语谱图上因其不同的灰度,形成不同的纹路,称之为“声纹”。声纹因人而异,因此可以在司法、安全等场合得到应用。3、 复倒谱和倒谱在时域上,语音产生模型实际上是一个激励信号与声道冲激响应的卷积。对于浊音,激励信号可以由周期脉冲序列表示;对于清音,激励信号可以由随机噪声序列表示。声道系统相当于参数缓慢变化的零极点线性滤波器。这样经过同态处理后,语音信号的复倒谱,激励信号的复倒谱,声道系统的复倒谱之间满足下面的关系:由于倒谱对应于

5、复倒谱的偶部,因此倒谱与复倒谱具有同样的特点,很容易知道语音信号的倒谱,激励信号的倒谱以及声道系统的倒谱之间满足下面关系:浊音信号的倒谱中存在着峰值,它的出现位置等于该语音段的基音周期,而清音的倒谱中则不存在峰值。利用这个特点我们可以进行清浊音的判断,并且可以估计浊音的基音周期。4、 基因周期估计浊音信号的倒谱中存在峰值,它的出现位置等于该语音段的基音周期,而清音的倒谱中则不存在峰值。利用倒谱的这个特点,我们可以进行语音的清浊音判决,并且可以估计浊音的基音周期。首先计算语音的倒谱,然后在可能出现的基因周期附近寻找峰值。如果倒谱峰值超过了预先设置的门限,则输入语音判断为浊音,其峰值位置就是基因周

6、期的估计值;反之,如果没有超出门限的峰值的话,则输入语音为清音。5、 共振峰估计对倒谱进行滤波,取出低时间部分进行进行逆特征系统处理,可以得到一个平滑的对数谱函数,这个对数谱函数显示了输入语音段的共振峰结构,同时谱的峰值对应于共振峰频率。通过此对数谱进行峰值检测,就可以估计出前几个共振峰的频率和强度。对于浊音的声道特性,可以采用前三个共振峰来描述;清音不具备共振峰特点。二、 实验结果1 短时谱2 语谱图3 倒谱和复倒谱图 3、4是加矩形窗和汉明窗的倒谱图和复倒谱图,图中横轴的单位是Hz,纵轴的单位是 dB。4 基因周期和共振峰估计四、参考程序clear a=wavread('beiji

7、ng.wav'); subplot(2,1,1), plot(a); title('original signal'); grid N=256; h=hamming(N); for m=1:N b(m)=a(m)*h(m) endy=20*log(abs(fft(b) subplot(2,1,2) plot(y);title('¶ÌʱÆ×'); grid x,fs,nbits=wavread('beijing.wav') specgram(x,512,fs,100); xlab

8、el('ʱ¼ä(s)'); ylabel('ƵÂÊ(Hz)'); title('ÓïÆ×ͼ');clear a=wavread('beijing.wav',4000,4350); N=300; h=linspace(1,1,N); for m=1:N b(m)=a(m)*h(m); endc=cceps(b); c=fftshift(c); d=rceps(b); d=fftshift(

9、d); subplot(2,1,1) plot(d);title('¼Ó¾ØÐδ°Ê±µÄµ¹Æ×') subplot(2,1,2) plot(c);title('¼Ó¾ØÐδ°Ê±µÄ¸´µ¹Æ×') clear a=wa

10、vread('beijing.wav',4000,4350); N=300; h=hamming(N); for m=1:N b(m)=a(m)*h(m); endc=cceps(b); c=fftshift(c); d=rceps(b); d=fftshift(d); subplot(2,1,1) plot(d);title('¼ÓººÃ÷´°Ê±µÄµ¹Æ×') subplot(2,1,2) plot

11、(c);title('¼ÓººÃ÷´°Ê±µÄ¸´µ¹Æ×') 语音信号处理实验报告实验四 基于 MATLAB的 LPC分析所在院系:工学院专业: 电子信息工程班级:电信112姓名:学号:指导教师:汤永清 2014年05月06日实验四基于 MATLAB的 LPC分析一、 实验目的线性预测分析是有效的语音分析技术之一,在语音编码、语音合成、语音识别和说话人识别等语音处理领域中得到了广泛的应用。语音线性预

12、测的基本思想是:一个语音信号的抽样值可以用过去若干个取样值的线性组合来逼近。通过使实际语音抽样值与线性预测抽样值的均方误差达到小,可以确定唯一的一组线性预测系数。采用线性预测分析不仅能够得到语音信号的预测波形,而且能够提供一个非常好的声道模型。如果将语音模型看作激励源通过一个线性时不变系统产生的输出,那么可以利用 LP 分析对声道参数进行估值,以少量低信息率的时变参数精确地描述语音波形及其频谱的性质。此外,LP分析还能够对共振峰、功率谱等语音参数进行精确估计,LP分析得到的参数可以作为语音识别的重要参数之一。由于语音是一种短时平稳信号,因此只能利用一段语音来估计模型参数。此时有两种方案:一种是

13、将长的语音序列加窗,然后对加窗语音进行 LP分析,只要限定窗的长度就可以保证分析的短时性,这种方案称为自相关法;另一种方案不对语音加窗,而是在计算均方预测误差时限制其取和区间,这样可以导出 LP分析的自协方差法。本实验要求掌握 LPC原理,会利用已学的知识,编写程序估计线性预测系数以及 LPC 的推演参数,并能利用所求的相关参数估计语音的端点、清浊音判断、基因周期、共振峰等。二、 实验原理1 LP分析基本原理LP分析为线性时不变因果稳定系统 V(z)建立一个全极点模型,并利用均方误差准则,对已知的语音信号 s(n)进行模型参数估计。如果利用 P个取样值来进行预测,则称为 P阶线性预测。假设用过

14、去 P个取样值显然,误差越接近于零,线性预测的准确度在均方误差小的意义上为佳,由此可以计算出预测系数。通过 LPC分析,由若干帧语音可以得到若干组 LPC参数,每组参数形成一个描绘该帧语音特征的矢量,即 LPC特征矢量。由 LPC特征矢量可以进一步得到很多种派生特征矢量,例如线性预测倒谱系数、线谱对特征、部分相关系数、对数面积比等等。不同的特征矢量具有不同的特点,它们在语音编码和识别领域有着不同的应用价值。2 自相关法值得注意的是,自相关法在计算预测误差时,数据段的两端都需要加 P个零取样值,因而可造成谱估计失真。特别是在短数据段的情况下,这一现实更为严重。另外,当预测系数量化时,有可能造成实

15、际系统的不稳定。3 协方差法可以看出,这里的数据段两端不需要添加零取样值。在理论上,协方差法计算出来的预测系数有可能造成预测误差滤波器的不稳定,但在实际上当每帧信号取样足够多时,其计算结果将与自相关法的结果很接近,因而稳定性一般是能够保证的 (当然这种方法也有量化效应可能引起不稳定的缺点)。协方差解法的大优点在于不存在自相关法中两端出现很大预测误差的情况,在 N和 P 相差不大时,其参数估值比自相关法要精确的多。但是在语音信号处理时,往往取 N在 200 左右。此时,自相关法具有较大误差的段落在整个语音段中所占的比例很小,参数估值也是比较准确的。在这种情况下,协方差法误差较小的优点就不再突出,

16、其缺乏高效递推算法的缺点成为了制约因素。所以,在语音信号处理中往往使用高效的自相关法。4 全极点声道模型将线性预测分析应用于语音信号处理,不仅是为了利用其预测功能,更因为它提供了一个非常好的声道模型。将式(2)所示的方程看成是滤波器在语音信号激励下的输入输出方程,则该滤波器称为预测误差滤波器,其 e(n)是输出误差。变换到 z域,P阶预测误差滤波器的系统函数为因为预测误差含有语音信号的基音信息,所以对于浊音,模型的激励信号源是以基音周期重复的单位脉冲;对于清音,激励信号源 e(n)是自噪声。语音信号的全极点模型是一种很重要的声道模型,是许多应用和研究的基础。6 结合语音帧能量构成LPC组合参数

17、由于人能从声音的音色、频高等各种信息中感知说话人的个性,因此可以想象,利用特征的有效组合可以得到比较稳定的识别性能。一般来说,如果组合的各参量之间相关性不大,则会更有效一些,因为它们分别反映了语音信号中的不同特征。多年来,人们对组合参数在说话人识别中的应用进行了大量研究。实验证明,组合参数可以提高系统的识别性能。组合参数虽然可以提高系统的性能,但很显然,无论是在特征参数提取环节,还是在模型训练和模型匹配环节都使运算量有所增加。在特征参数提取环节,要计算一种以上的特征参数。在模型训练和模型匹配环节,由于组合参数特征矢量的维数较多,使运算复杂度有所增加。运算量的增加会使系统的识别速度受到影响。语音

18、帧能量是指一帧语音信号的能量,它等于该帧语音样值的平方和。选取与语音帧能量构成组合参数主要有以下考虑:1)语音帧能量是语音信号基本的短时参数之一,它表帧能量是一个标量值,与其它参量构成组合参数不会使原特征矢量的维数明显增加,特征矢征一帧语音信号能量的大小,是语音信号一个重要的时域特征;2)由一帧语音求出的语音量的维数越少,则需要的运算复杂度越小,另外,获取语音帧能量的运算并不复杂;3)语音帧能量与 LPC参数之间的相关性不大,它们反映的是语音信号的不同特征,应该有较好的效果。7 模型增益G三、 实验结果(参考)我们使用的原始语音为“北风”,采样频率为 11000Hz,运行程序见附录。在这里我们

19、取第 30帧进行观察,线性预测阶数为 12,看到图所示的原始语音帧的波形,预测语音帧波形和它们之间预测误差的波形。图为原始语音帧和预测语音帧的短时谱和 LPC谱的波形这里我们可以改变线性误差的阶数来观察语音帧的短时谱和LP谱的变化情况,如图。图3.3 预测阶数对语音帧短时谱和LPC谱的影响图给出了原始语音的语谱图和预测语音的语谱图,通过比较发现,预测语音的预测效果还可以,基音频率相差无几。三、附录(LPC 分析参考程序)MusicSource = wavread('beijing.wav'); Music_source = MusicSource' N = 256; H

20、amm = hamming(N); frame = input('请键入想要处理的帧位置 = '); origin = Music_source(frame - 1) * (N / 2) + 1):(frame - 1) * (N / 2) + N); Frame = origin .* Hamm' 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('请键入预测器阶数 = 

21、9;); coef,gain = lpc(Frame,N1); est_Frame = filter(0 -coef(2:end),1,Frame); FFT_est = fft(est_Frame); err = Frame - est_Frame; subplot(2,1,1),plot(1:N,Frame,1:N,est_Frame,'-r');grid;title('原始语音帧vs.预测后语音帧') subplot(2,1,2),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 ;subplot(2,1,1),plot(f1',20*log(abs(FTframe1),f1',(20*log

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论