用修正的短时自相关检测语音的基音周期(完整版)实用资料.doc
上传人:天马****23 上传时间:2024-09-10 格式:DOC 页数:129 大小:4.9MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

用修正的短时自相关检测语音的基音周期(完整版)实用资料.doc

用修正的短时自相关检测语音的基音周期(完整版)实用资料.doc

预览

免费试读已结束,剩余 119 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用修正的短时自相关检测语音的基音周期(完整版)实用资料(可以直接使用,可编辑完整版实用资料,欢迎下载)用修正的短时自相关检测语音的基音周期一、实验目的1.熟悉前一个实验程序以及中心削波的意义。.2.用Matlab实现用修正的短时自相关检测语音的基音周期。3.分析修正的短时自相关在基音周期检测中的应用。4.能够对程序进行重新编制。二、实验原理如果x(n)是一个周期为P的信号,则其自相关函数也是周期为P的信号,且在信号周期的整数倍处,自相关函数取最大值。语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。计算两相邻最大峰值间的距离,就可以估计出基音周期。观察浊音信号的自相关函数图,其中真正反映基音周期的只有少数几个峰,而其余大多数峰都是由于声道的共振特性引起的。因此为了突出反映基音周期的信息,同时压缩其他无关信息,减小运算量,有必要对语音信号进行适当预处理后再进行自相关计算以获得基音周期。第一种方法是先对语音信号进行低通滤波,再进行自相关计算,因为语音信号包括十分丰富的谐波分量,基音频率的范围分布宰0~500Hz左右,即使女高音升c调最高也不会超过1Kz,所以采用1Kz的低通滤波器先对语音信号进行滤波,保留基音频率,再用2Kz采样频率进行采样;最后用2~20ms的滞后时间计算短时自相关,帧长取10~20ms,即可估计出基音周期。且中心削波函数如式(3-1)一般削波电平XL取本帧语音幅度的60%~70%。将削波后的序列f(x)用短时自相关函数估计基音周期,在基音周期位置的峰值更加尖锐,可以有效减少倍频或半频错误。三、实验要求1.实验前自己用CoolEdit音频编辑软件录制浊音部分,并把它保存为.txt文件。2.分别取长度N=160和N’=N+K的矩形窗函数作用于语音信号上,首先对其进行中心削波,比较削波前和削波后语音信号波形,并使得削波后的信号进行乘积并求和,计算延迟为0<K<160时的相关值,并且用得到的相关值来检测语音信号的基音周期,用MATLAB画出图形。3.写出实验报告,分析实验结果。四、实验程序及数据fid=fopen('voice.txt','rt');[a,count]=fscanf(fid,'%f',[1,inf]);L=length(a);m=max(a);fori=1:La(i)=a(i)/m;endm=max(a);n=min(a);ht=(m+n)/2;fori=1:L;a(i)=a(i)-ht;endfigure(1)subplot(2,1,1);plot(a,'k');axis([0,350,-1,1]);title('中心削波前语音波形');xlabel('样点数');ylabel('幅度');coeff=0.7;th0=max(a)*coeff;fork=1:L;ifa(k)>=th0a(k)=a(k)-th0;elseifa(k)<=(-th0);a(k)=a(k)+th0;elsea(k)=0;endendm=max(a);fori=1:La(i)=a(i)/m;endsubplot(2,1,2);plot(a,'k');axis([0,350,-1,1]);title('中心削波前语音波形');xlabel('样点数');ylabel('幅度');fclose(fid);fid=fopen('voice.txt','rt');[b,count]=fscanf(fid,'%f',[1,inf]);fclose(fid);N=160;A=[];fork=1:160;sum=0;form=1:N;sum=sum+b(m)*b(m+k-1);endA(k)=sum;end中心削波前语音波形10.5fork=1:160B(k)=A(k)/A(1);endfigure(2);subplot(2,1,1);plot(B,'k');title('中心削波前修正自相关');xlabel('延时k');1.5ylabel('幅度');1axis([0,170,-1,1.5]);N=160;0.5A=[];0fork=1:160;-0.5sum=0;form=1:N;-10sum=sum+a(m)*a(m+k-1);end1.5A(k)=sum;end1fork=1:1600.5C(k)=A(k)/A(1);0endsubplot(2,1,2);-0.5plot(C,'k');-10title('中心削波后修正自相关');xlabel('延时k');ylabel('幅度');冯璟(1982—,男,工程师,研究