语音实验3.docx
- 文档编号:18130048
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:13
- 大小:441.95KB
语音实验3.docx
《语音实验3.docx》由会员分享,可在线阅读,更多相关《语音实验3.docx(13页珍藏版)》请在冰点文库上搜索。
语音实验3
……………………………………装………………………………………订…………………………………………线………………………………………
实验名称用修正的短时自相关检测语音的基音周期同组人
专业班级学号姓名成绩
一、实验目的
1.熟悉前一个实验程序以及中心削波的意义。
.
2.用Matlab实现用修正的短时自相关检测语音的基音周期。
3.分析修正的短时自相关在基音周期检测中的应用。
4.能够对程序进行重新编制。
二、实验原理
如果x(n)是一个周期为P的信号,则其自相关函数也是周期为P的信号,且在信号周期的整数倍处,自相关函数取最大值。
语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。
计算两相邻最大峰值间的距离,就可以估计出基音周期。
观察浊音信号的自相关函数图,其中真正反映基音周期的只有少数几个峰,而其余大多数峰都是由于声道的共振特性引起的。
因此为了突出反映基音周期的信息,同时压缩其他无关信息,减小运算量,有必要对语音信号进行适当预处理后再进行自相关计算以获得基音周期。
第一种方法是先对语音信号进行低通滤波,再进行自相关计算,因为语音信号包括十分丰富的谐波分量,基音频率的范围分布宰0~500Hz左右,即使女高音升c调最高也不会超过1Kz,所以采用1Kz的低通滤波器先对语音信号进行滤波,保留基音频率,再用2Kz采样频率进行采样;最后用2~20ms的滞后时间计算短时自相关,帧长取10~20ms,即可估计出基音周期。
且中心削波函数如式(3-1)
一般削波电平X
取本帧语音幅度的60%~70%。
将削波后的序列f(x)用短时自相关函数估计基音周期,在基音周期位置的峰值更加尖锐,可以有效减少倍频或半频错误。
三、实验要求
1.实验前自己用CoolEdit音频编辑软件录制浊音部分,并把它保存为.txt文件。
2.分别取长度N=160和N’=N+K的矩形窗函数作用于语音信号上,首先对其进行中心削波,比较削波前和削波后语音信号波形,并使得削波后的信号进行乘积并求和,计算延迟0 …………………………………装………………………………………订…………………………………………线……………………………………… 时的相关值,并且用得到的相关值来检测语音信号的基音周期,用MATLAB画出图形。 3.写出实验报告,分析实验结果。 四.实验程序 fid=fopen('voice.txt','rt');[a,count]=fscanf(fid,'%f',[1,inf]); L=length(a);m=max(a); fori=1: L a(i)=a(i)/m; end m=max(a); n=min(a); ht=(m+n)/2; fori=1: L; a(i)=a(i)-ht; end figure (1); subplot(2,1,1); plot(a,'k'); axis([0,1711,-1,1]); title('中心削波前语音波形'); xlabel('样点数'); ylabel('幅度'); coeff=0.7; th0=max(a)*coeff; fork=1: L; ifa(k)>=th0 …………………………………装………………………………………订…………………………………………线……………………………………… a(k)=a(k)-th0; elseifa(k)<=(-th0); a(k)=a(k)+th0; else a(k)=0; end end m=max(a); fori=1: L; a(i)=a(i)/m; end subplot(2,1,2); plot(a,'k'); axis([0,1711,-1,1]); title('中心削波后语音波形'); xlabel('样点数'); ylabel('幅度'); fclose(fid); fid=fopen('voice.txt','rt'); [b,count]=fscanf(fid,'%f',[1,inf]); fclose(fid); N=320; A=[]; fork=1: 320; sum=0; form=1: N; sum=sum+b(m)*b(m+k-1); end …………………………………装………………………………………订…………………………………………线……………………………………… A(k)=sum; end fork=1: 320 B(k)=A(k)/A (1); End figure (2); subplot(2,1,1); plot(B,'k'); title('中心削波前修正自相关'); xlabel('延时k'); ylabel('幅度'); axis([0,320,-1,1]); N=320; A=[]; fork=1: 320; sum=0; form=1: N; sum=sum+a(m)*a(m+k-1); end A(k)=sum; end fork=1: 320 C(k)=A(k)/A (1); end subplot(2,1,2); plot(C,'k'); title('中心削波后修正自相关'); xlabel('延时k'); …………………………………装………………………………………订…………………………………………线……………………………………… ylabel('幅度'); axis([0,320,-1,1]); 实验截图 …………………………………装………………………………………订…………………………………………线……………………………………… 六.思考题 1.在相同的实验环境下,用Matlab程序实现短时自相关检测语音的基音周期的图形,并与修正的短时自相关进行比较。 答: 修正自相关使得在基音周期位置的峰值更加尖锐,使得由于声道共振特性引起的峰值有效减少,从而减少倍频或半频错误。 图示 …………………………………装………………………………………订…………………………………………线……………………………………… 2.分析清音的修正的短时自相关图形。 …………………………………装………………………………………订…………………………………………线……………………………………… 3.用Matlab程序实现语音信号的三电平削波,再对它进行修正的短时自相关。 并与中心削波进行对比。 分析它们在语音信号处理中的应用。 截图 …………………………………装………………………………………订…………………………………………线……………………………………… 中心削波在基音周期位置的峰值更加尖锐,可以有效减少倍平或半平错误。 但是计算量大,为克服短时自相关函数计算量大的问题,在中心削波法的基础上,还可以采用三电平削波法,这种信号的短时自相关函数的计算实际上是不需要乘法运算的,这就大大节省了时间。 七.实验心得 通过本次试验,我熟悉的掌握了matlab的运用,调试程序是需要谨慎小心,一步错则步步错。 还知道了计算短时自相关函数需要很大的运算量,有时为化简运算,常使用一种与自相关函数有相似作用的另一参量,极端是平均幅度差函数(AMDF)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 实验
![提示](https://static.bingdoc.com/images/bang_tan.gif)