短时自相关函数法基音检测

短时自相关函数法基音检测

ID:14862042

大小:114.00 KB

页数:6页

时间:2018-07-30

短时自相关函数法基音检测_第1页
短时自相关函数法基音检测_第2页
短时自相关函数法基音检测_第3页
短时自相关函数法基音检测_第4页
短时自相关函数法基音检测_第5页
资源描述:

《短时自相关函数法基音检测》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、专业班级08级信息工程组别成员1、引言人在发浊音时,气流通过声门使声带产生张弛振荡式振动,产生一股准周期脉冲气流,这一气流激励声道就产生浊音,又称有声语音,它携带着语音中的大部分能量。这种声带振动的频率称为基频,相应的周期就称为基音周期(Pitch),它由声带逐渐开启到面积最大(约占基音周期的50%)、逐渐关闭到完全闭合(约占基音周期的35%)、完全闭合(约占基音周期的15%)三部分组成。当今主流的基音周期检测技术主要有时域的自相关法、频域的倒谱法、时频结合的小波变换分析方法以及在其基础上的衍生算法。本文所采用的方法是自相关法2.设计思路(1

2、)自相关函数对于离散的语音信号x(n),它的自相关函数定义为:R(k)=Σx(n)x(n-k),如果信号x(n))具有周期性,那么它的自相关函数也具有周期性,而且周期与信号x(n)的周期性相同。自相关函数提供了一种获取周期信号周期的方法。在周期信号周期的整数倍上,它的自相关函数可以达到最大值,因此可以不考虑起始时间,而从自相关函数的第一个最大值的位置估计出信号的基音周期,这使自相关函数成为信号基音周期估计的一种工具。(2)短时自相关函数语音信号是非平稳的信号,所以对信号的处理都使用短时自相关函数。短时自相关函数是在信号的第N个样本点附近用短时

3、窗截取一段信号,做自相关计算所得的结果Rm(k)=Σx(n)x(n-k)式中,n表示窗函数是从第n点开始加入。3、程序代码functionpitchx=wavread('E:luyinwkxp.wav');%读取声音文件figure(1);stem(x,'.');%显示声音信号的波形n=160;%取20ms的声音片段,即160个样点form=1:length(x)/n;%对每一帧求短时自相关函数fork=1:n;Rm(k)=0;fori=(k+1):n;Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n);end

4、endp=Rm(10:n);%防止误判,去掉前边10个数值较大的点[Rmax,N(m)]=max(p);%读取第一个自相关函数的最大点end%补回前边去掉的10个点N=N+10;T=N/8;%算出对应的周期figure(2);stem(T,'.');axis([0length(T)010]);xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');T1=medfilt1(T,5);%去除野点figure(3);stem(T1,'.');axis([0length(T1)010]);xlabel('帧数

5、(n)');ylabel('周期(ms)');title('各帧基音周期');4、运行结果与分析(1)运行x=wavread('E:luyinwkxp.wav');%读取声音文件figure(1);stem(x,'.');%显示声音信号的波形得到的波形如下图1原来的声音文件时长为t=5s,采样率为8kHZ。故总共有5*8k=40000个采样点(如图所示)。图中的三个波形分别对应a,o,e(2)运行n=160;%取20ms的声音片段,即160个样点form=1:length(x)/n;%对每一帧求短时自相关函数fork=1:n;Rm(k)=

6、0;fori=(k+1):n;Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n);endendp=Rm(10:n);%防止误判,去掉前边10个数值较大的点[Rmax,N(m)]=max(p);%读取第一个自相关函数的最大点end%补回前边去掉的10个点N=N+10;T=N/8;%算出对应的周期figure(2);stem(T,'.');axis([0length(T)010]);xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');得到的结果为:图2由第一步可知40000

7、个样点,一共有250帧(每帧160个样点),对应着图中的横坐标由图中可以看出基音周期大约为7ms.但是图中存在太多的野点,为此,需要对此进行进一步的处理,即去除野点(3)去除野点运行T1=medfilt1(T,5);%去除野点figure(3);stem(T1,'.');axis([0length(T1)010]);xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');运行结果如下图35、设计中遇到的问题与心得(1)设计中遇到的问题:由于每一帧做短时自相关时,Rm(k)开始的几个点的值比第一个周期的

8、峰值还大,因此无法正常提取出第一个峰值对应的点。开始程序的运行结果如下:图4于是经过和同学讨论之后决定舍弃Rm开始几个值较大的点,于是运行结果就正常了图5(2)心得

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。