(完整word版)哈尔滨工程大学语音信号处理实验报告_第1页
(完整word版)哈尔滨工程大学语音信号处理实验报告_第2页
免费预览已结束,剩余27页可下载查看

下载本文档

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

文档简介

1、必爾牘 N 理2普实验报告实验课程名称:语音信号处理实验姓名: _班级:20120811 学号:_实验序号实验名称实验过程实验结果实验成绩实验一语音信号的端点检测实验二语音信号的特征提取实验三语音信号的基频提取指导教师张磊_实验教室21B#29321B#293_实验时间 20152015 年 4 4 月 1212 日实验成绩_实验一 语音信号的端点检测一、实验目的1、 掌握短时能量的求解方法2、 掌握短时平均过零率的求解方法3、 掌握利用短时平均过零率和短时能量等特征,对输入的语音信号进行端点检 测。二、实验设备HP计算机、Matlab软件三、实验原理1、短时能量语音信号的短时能量分析给出了反

2、应这些幅度变化的一个合适的描述方法 对于信号x(n),短时能量的定义如下:2 2 2En二、x(m)w(n _ m)=xx (m)h(n _ m) = x (n) h(n)m二;m :-:2、短时平均过零率短时平均过零率是指每帧内信号通过零值的次数。 对于连续语音信号,可以 考察其时域波形通过时间轴的情况。 对于离散信号,实质上就是信号采样点符号 变化的次数。过零率在一定程度上可以反映出频率的信息。 短时平均过零率的公 式为:100Znsgnx(m) - sgnx(m -1) w(n - m)2m=jod1nN /二;、sgn Xw(m)_sg nXw(m_1)2m f其中,sgn.是符号函数

3、,即彳x(n)O冊皿:-1 x(n)“3、端点检测原理能够实现这些判决的依据在于,不同性质语音的各种短时参数具有不同的概 率密度函数,以及相邻的若干帧语音应具有一致的语音特性, 它们不会在S、U、V之间随机地跳来跳去。要正确判断每个输入语音的起点和终点, 利用短时平均 幅度参数E和短时平均过零率Z可以做到这一点。首先,根据浊音情况下的短时能量参数的概率密度函数 P(E|V)确定一个阈 值参数 EH,EH值一般定的较高。当一帧输入信号的短时平均幅度参数超过 EH时,就可以判定该帧语音信号不是无声,而有相当大的可能是浊音。根据 EH可 判定输入语音的前后两个点 Ai和A2。在 Ai和 A2之间的部

4、分肯定是语音段,但语为此,再设定一个较低的阈值参数 EL,由 Ai点向前找,当短时能量由大到 小减至 EL可以确定点 Bi。类似地,可以由 A2点向后找,确定 B2点。在 Bi和 B2之间的仍能肯定是语音段。然后由 Bi向前和 B2向后,利用短时平均过零率进行 搜索。根据无声情况下的短时平均过零率,设置一个参数Zs,如果由 Bi向前搜索时,短时平均过零率大于 Zs的3倍,则认为这些信号仍属于语音段,直到短 时平均过零率下降到低于3倍的 Zs,这时的点 Ci就是语音的精确的起点。对于 终点也做类似的处理,可以确定终点 C2。采用短时平均过零率的原因在于,Bi点以前可能是一段清辅音,它的能量相当弱

5、,依靠能量不可能将它们与无声段 分开。而对于清辅音来说,它们的过零率明显高于无声段,因而能用这个参数 将二者区分开来。存在噪声的情况下,正常的过零率计算会存在一定的误差, 解决这个问题的 一种方法是对上述过零率定义做一个简单的修改, 即设立一个门限T,将过零率 的含义修改为跨过正负门限的次数,如图2。图2门限短时平均过零率于是,有:1匸】Zn=2、sgnx(m)-T-sgnx(m-1)-Tsgnx(m) T _sgnx(m-1) Tw(n_m)这样计算的短时平均过零率就有一定的抗干扰能力。即使存在小的随机噪 声,只要它不超过正负门限所构成的带,就不会产生虚假过零率。四、实验步骤及程序实验程序:

6、function poin t_check()s 仁 wavread(ma n. wav);s=s1/max(abs(s1);s=filter(1 -0.9375,1,s);plot(s);len=len gth(s);roun d=160;repeat=80;inc=roun d-repeat;%b_le n-2*repeat;ka=ceil(le n-roun d)/(r oun d-repeat)+1;s=s;zeros(r oun d-repeat)*(ka-1)+ro un d-le n,1);len=len gth(s);w=zeros(r oun d,ka);for i=1:ka

7、 for k=1:ro undw(k,i)=s(k+(i-1)*(rou nd-repeat),1); endend门限门限门限门限门限门限时间ST=0.01;F=zeros(ka,ro un d);for i=1:kafor k=0:ro un d-1for j=1:r oun d-kF(ka,k+1)=F(ka,k+1)+abs(w(j,i)-w(j+k,i);endif(k0&w(k+2,i)0)z=sig n(w(k+1,i)-ST)-sig n(w(k+2,i)+ST);elseif(w(k+1,i)0)z=sig n(w(k+2,i)-ST)-sig n(w(k+1,i)+

8、ST);endif(z=2)f(i,1)=f(i,1)+1;endendendendamp=sum(abs(w).A2,1);实验结果截图:0.8五、实验结果与分析这次实验利用MATLAB对信号进行分析和处理,利用短时过零率和短时能 量,对语音信号的端点进行检测。我之前虽然接触过MATLAB软件,但从未进行过有关语音信号的操作,在实验过程中欠缺独立性,代码是参考网上的,在理 解的基础上借鉴。学习是无止境的,现在的动手能力不强也是由于之前的松懈造 成的,以后一定要多动手,毕竟能力是立身之本。实验二语音信号的特征提取、实验目的1、掌握语音信号的Mel倒谱特征(MFCC的求解方法2、掌握语音信号的线

9、性预测原理以及LPC特征的求解方法二、实验设备HP计算机、Matlab软件三、实验原理1、MFCC特征原理及求解方法在语音识别和说话人识别中,常用的语音特征是基于Mel频率的、倒谱系数(Mel Frequency Cepstrum Coefficien,简称MFCC)。由于MFCC参数是将人耳 的听觉感知特性和语音的产生机制相结合,因此目前大多数语音识别系统中广泛使用这种特征。研究者根据心理学实验得到了类似于耳蜗作用的一组滤波器组,这就是Mel频率滤波器组。Mel频率可以用公式表达如下:Mel frequency =2595 log(1 f / 700)在实际应用中,MFCC倒谱系数计算过程如

10、下:(1)将信号进行分帧,预加重和加汉明窗处理,然后进行短时傅立叶变换 得到其频谱;(2)求出频谱平方,即能量谱,并用M个Mel带通滤波器进行滤波,由 于每一个频带中分量的作用在人耳中是叠加的,因此将每个滤波频带 内的能量进行叠加,这时第k个滤波器输出功率谱 x (k);(3)将每个滤波器的输出取对数,得到相应频带的对数功率谱;并进行反 离散余弦变换,得到L个MFCC系数,如下式所示。一般L取1216个左右;M5 =為 logx(k)cos(k 0.5)n/Mn =1,2,丄k T(4)这种直接得到的MFCC特征作为静态特征,将这种静态特征做一阶 和二阶差分,得到相应的动态特征。2、线性预测原

11、理及LPC特征求解方法根据参数模型功率谱估计的思想,可以将语音信号 x(n)看作是由一个输入序 列 u(n)激励一个全极点的系统(模型)H(z)而产生的输出,如图3所示。u(n)x(n)- H- s(n)图 3 语音信号的模型化系统的传递函数为:Gp1ajZ其中G为常数,ai为实数,p为模型的阶数。显而易见,这种模型是以系数 ai和 增益G为模型参数的全极点模型,即AR模型。用系数ai可以定义一个p阶线性预测器 F(z)pF(z)八 ajZi丝这个p阶预测器从时域角度可以理解为,用信号的前p个样本来预测当前的 样本得到预测值 X(n),pX(n)八 aiX(n-i)im因为预测器 F(z)是用

12、AR模型的系数ai来构造的,而AR模型是在最小均 方意义上对数据的拟合,所以预测器 F(z)必然是一个最佳预测器,即此时预测 器的预测误差短时总能量最小。语音信号的线性预测分析就是根据这一性质,从语音信号 x(n)出发,依据最小均方误差准则,估计出一组线性预测器的系数ai,它就是我们所要求的信号AR模型的系数。ai被称为线性预测系数或LPC系数。预测器的预测误差 e(n)为:pe( n)=x( n)-x( n)=x( n) 一 aix( n-i)i =H(z)=由上式可知,e(n)是输入为 x(n),且具有如下形式传递函数的滤波器的输出pA(z) =1 _F(z) =1aiz因此称 A(z)为

13、预测误差滤波器。比较式(4-1)和式(4-5)可知 A(z)二 G/H (z), 即预测误差滤波器是系统 H (z)的逆滤波器。为了在最小均方误差意义上计算一组最佳预测系数,定义短时预测均方误差 为p222En二 e (n) = x(n) -X(n)二 x(n)ajX(n -i)nnni =1由于语音信号的时变特性,线性预测分析应该在短时的语音段上进行,即按帧进行。因此上式的求和通常也是在一帧语音的范围内进行。为了使En达到最小,ai必须满足 也/玄=0, (k=1,2,p)。则有:p-(2、x(n)x(n-k)-2、x(n-k)x(n-i)ni=1n这样可以得到以ai为变量的线性方程组px(

14、n)x(n-k)八 ax(n -k)x(n-i),k=1,2, pni T n要构造信号的AR模型,还应估算增益因子G。将系统传递函数转化成差分 方程的形式:px(n)八 aiX(n -k) Gu(n)i斗则预测误差 e(n)和残差能量 En分别计算如下:e(n)八x(n) x(n)Gu(n)nnEn二 G2 u2(n)n激励信号 u(n)无法准确计算,但根据前文所述的语音产生模型,在浊音情况 下,激励可以看作是准周期的脉冲串;在清音时,可以看作为高斯白噪声。因此 输入信号总能量可以认为近似为 1,这样估算增益因子 &= E1/2o这种计算只是 一种近似的方法,。-:En:ak为了使模

15、型的假定能够很好地符合语音产生的模型,需要考虑如下两个因 素。(1)模型阶数p的选择阶数p应与共振峰的个数相吻合,通常一对极点对应一个共振峰,因此当共 振峰数为5时,应取p=10。考虑到一些情况,一般按如下的方式计算模型阶数 p =2D 1,其中D为共振峰的个数。(2)通过预加重进行高频提升由于声门脉冲形状和口唇辐射的影响,语音信号的频谱在总趋势上会产生高 频衰落的现象,大约每倍程下降6dB。要抵消这一影响,通常在LPC分析之前 采用一个非常简单的一阶FIR滤波器进行预加重以进行高频提升,其传递函数为1 - - zJ,其中为预加重系数,对10kHz采样的语音,一般取:-=0.95。大量的 实践

16、证明:LPC参数是反映语音信号特征的良好参数。附:莱文逊一杜宾递推算法该算法过程如下:(1)计算自相关系数 Rn(j),j =0,1,., p ;(2)E(0)二 Rn(0) ;(3)(4)iT ;开始按如下公式进行递推运算:i(i4)jj mE(i 4)RJi)- a(R(i -j)kia, = ki-kia (,j h , . j.-,1E=(1_好疋(7(5)i 1。若i则算法结束退出,否则返回第(4)步。四、实验步骤及程序MFC特征提取程序:close allclearclcx=wavread(N:sec on dma n. wav);ban k=melba nkm(24,256,80

17、00,0,0.5,m);ban k=full(ba nk);ban k=ba nk/max(ba nk(:);for k=1:12n=0:23;dctcoef(k,:)=cos(2* n+1)*k*pi/(2*24);endw = 1 + 6 * sin(pi * 1:12 ./ 12);w = w/max(w);% 预加重滤波器xx=double(x);xx=filter(1 -0.9375,1,xx); %语音信号分帧xx=enframe(xx,256,80); % 计算每帧的 MFCC 参数 for i=1:size(xx,1)y = xx(i,:);s = y .* hammi ng(

18、256);t = abs(fft(s);t = t.A2;c1=dctcoef * log(ba nk * t(1:129);c2 = c1.*w;m(i,:)=c2;endfigureimagesc(m);xlabel(帧数);ylabel(幅度);title(MFCC);实验结果截图:LPC特征提取程序:clearclcI = wavread(N:secondman.wav);% 读入原始语音%subplot(3,1,1),plot(I);title(原始语音波形)%对指定帧位置进行加窗处理Q = I;N = 256; % 窗长Hamm = hammi ng(N); % 加窗frame =

19、 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);for i = 1:mFTframe1(i) = B(i,frame);endP =50;%i nput(请输入预测器阶数=);ai = lpc(Frame,P); % 计算 lpc 系数LP = filter(0 -ai(2:e nd),1,Frame); %建立语音帧的正则方程FFTlp = fft(LP);E

20、= Frame - LP; % 预测误差figuresubplot(2,1,1),plot(1:N,Frame,1:N,LP,-r);grid;200040006000800010000120001400016000帧数MFCCtitle(原始语音和预测语音波形)subplot(2,1,2),plot(E);grid;title(预测误差);figurefLen gth(1 : 2 * N) = M,zeros(1,N);Xm = fft(fLe ngth,2 * N);X = Xm .* conj(Xm);Y = fft(X , 2 * N);Rk = Y(1 : N);PART = sum

21、(ai(2 : P + 1) .* Rk(1 : P);G = sqrt(sum(Frame.A2) - PART);A = (FTframel - FFTlp(1 : len gth(F) ./ FTframelsubplot(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(LP

22、C 谱);figure%求出预测误差的倒谱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(预测误差倒谱);figure%画出语谱图ail = lpc(I,P); % 计算原始语音 Ipc 系数LP1 = filter(0 -ai(2:e nd),1,l); %建

23、立原始语音的正则方程subplot(2,1,1);specgram(I,N,N/2,N);title(原始语音语谱图);subplot(2,1,2);specgram(LP1,N,N/2,N);title(预测语音语谱图);实验结果截图:100020003000400050006000700080009000 10000Time预测语音语谱图50-5-10原始语音帧倒谱050100150200语音帧预测误差倒谱25030010-2-3501002000150语音帧250300WVCDeuaeb原始语音语谱图ooOTime100200a/i IV、= = A %u_ / _71短时谱0-100-

24、200-30010 2030405060频率/dB70LPC 谱1000-100102050703040频率/dBri fl J 1f 、-VA人i 卡屮 w、760原始语音和预测语音波形预测误差0.10.050-0.05-0.110015020025030050原始语音波形1五、实验结果与分析这次实验利用MATLAB对信号进行分析和处理,主要就是进行语音线性预 测,语音线性预测的基本思想是:一个语音信号的抽样值可以用过去若干个取样 值的线性组合来逼近。通过使实际语音抽样值与线性预测抽样值的均方误差达到 最小,可以确定唯一的一组线性预测系数。做了LPC特征提取的实验之后,促进了我对MFCC特征

25、提取进行探究和验证,此次试验让我对相关知识加深了理 解。实验三语音信号的基频提取一、实验目的1、 掌握语音信号基频的概念,加深对基频刻画声调特征作用的理解。2、 掌握语音信号基频特征的典型求解方法二、实验设备HP计算机、Matlab软件三、实验原理1、 基频概念的理解基音检测的方法大致可分为三类: 波形估计法。直接由语音波形来估计 基音周期,分析出波形上的周期峰值。包括并行处理法、数据减少法等;相关处理法。这种方法在语音信号处理中广泛使用, 这是因为相关处理法抗波形的 相位失真能力强,另外它在硬件处理上结构简单。 包括波形自相关法、平均振幅 差分函数法(AMDF)、简化逆滤波法(SIFT)等;

26、 变换法。将语音信号变换 到频域或倒谱域来估计基音周期,利用同态分析方法将声道的影响消除, 得到属 于激励部分的信息,进一步求取基音周期,比如倒谱法。虽然倒谱分析算法比较 复杂,但基音估计效果较好。这里我们只考虑自相关方法的基频提取。2、 自相关方法的基频提取浊音信号的自相关函数在基音周期的整数倍位置上出现峰值,而清音的自相关函数没有明显的峰值出现,因此检测自相关函数是否有峰值就可以判断是清音 或浊音,峰一峰值之间对应的就是基音周期。为了提高自相关方法检测基音周期的准确性,需要进行一些前期的预处理。1)预处理语音信号的低幅值部分包含大量的共振峰信息,而高幅值部分包含较多 的基音信息。因此,任何

27、削减或者抑制语音低幅度部分的非线性处理都会使 自相关方法的性能得到改善。中心削波即是一种非线性处理,用以消除语音 信号的低幅度部分,其削波特性如图4所示,数学表达形式为y(n) =C(n)二x(n) - L0、x(n )+Lx(n) CL|x(n) 4 CLx(n) -CL-CL+1-1+CL图5三电平削波函数其中削波电平 CL由语音信号的峰值幅度来确定,它等于语音段最大幅度的一个 固定百分数,一般取最大信号幅度的60%70%。这个门限的选择是重要的,一 般在不损失基音信息的情况下应尽可能选得高些,以达到较好的效果。经过中心削波后只保留了超过削波电平的部分,其结果是削去了许多和声道响应有关的波

28、 动。中心削波后的语音再计算自相关函数, 这样在基音周期位置呈现大而尖的峰 值,而其余的次要峰值幅度都很小。 据报道使用这种方法,对电话带宽的语音在 信噪比低至18dB的情况下获得了良好的性能。计算自相关函数的运算量是很大的,其原因是传统的计算机进行乘法运算非 常费时。尽管近年来随着数字信号处理器的广泛使用, 实时地计算自相关函数已 经不是问题,但在基音检测中仍然有一些减少短时自相关运算的有效方法。如可对中心削波函数进行修正,采用三电平中心削波的方法,如图5所示。其削波函 数为1 x(n) CLy(n) =Cx(n) = 0|x(n)伍 C1 x(n) v CL即削波器的输出在 x(n) CL

29、时为1,x(n 厂:-CL时为-1,除此以外均为零。 虽然这一处理会增加刚刚超过削波电平峰的重要性,但大多数次要的峰被滤除掉 了,而只保留了明显的周期性峰。*Cx此外,还可以用一个通带为900Hz的线性相位低通滤波器滤除高次谐波分 量。这样处理后的信号,基本上只含有第一共振峰以下的基波和谐波分量。实验表明,用这种方法做预处理,对改善自相关和平均幅度差函数法的基音检测都有 明显的效果。2)基于自相关函数的基音检测短时自相关函数在基音周期的各个整数倍点上有很大的峰值,只要找到第一最大峰值点的位置,并计算它与原点的间隔,便能估计出基音周期。但实际上并 不是这么简单,第一个最大峰值点的位置有时不能与基

30、音周期相吻合。产生这种 情况的原因有以下两个方面。第一方面是与窗的长度有关。一般认为窗长至少应 大于两个基音周期,才可能有较好的效果。第二方面与声道特性的影响有关。有的情况下,即使窗长已经选得足够长,第一个最大峰值点与基音周期仍不一致, 这就是声道共振峰特性的干扰。经过上述带通滤波的预处理,就可以消除大部分 的共振峰的影响。但是,如果希望减少自相关计算中的乘法运算,可以把上述中心削波后的信号y(n)的自相关用两个信号的互相关代替,其中一个信号是y(n),令一个信号是对y(n)进行三电平量化产生的结果 y(n)。显然,y(n) 只有-1,0,+1三种可能的取值,因而这里的互相关计算只需做加减法,而这个 互相关序列的周期性与y(n)的自相关序列近似相同。下面结合L.R.Rabiner篇论文中介绍的具体例子来叙述关于自相关函数的 基音检测方法。假设信号的采样率为10kHz,窗序列采用300点的矩形窗,帧叠200点。这时对每一帧进行基音周期估计的步骤如下:(1)用900Hz低通滤波器对一帧语音信号x(n)进行滤波,并去掉开头的20个输出值不用,得到x (n);(2)分别求x (n)的前部100个样点和后部100个样点的最大幅度,并取 其中较小的一个,乘以因子0.68作为门限电平 CL;(3)对x(n)分别进行中心削波得到y(n)和三电

温馨提示

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

评论

0/150

提交评论