- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自相关函数的应用——语音周期检测
基音周期检测——自相关函数法一、基音周期相关知识简介人在发音时,根据声带是否震动可以将语音信号分为清音跟浊音两种。浊音又称有声语言,携带着语言中大部分的能量,浊音在时域上呈现出明显的周期性;而清音类似于白噪声,没有明显的周期性。发浊音时,气流通过声门使声带产生张弛震荡式振动,产生准周期的激励脉冲串。这种声带振动的频率称为基音频率,相应的周期就成为基音周期[4]。通常,基音频率与个人声带的长短、薄厚、韧性、劲度和发音习惯等有关系,在很大程度上反应了个人的特征。此外,基音频率还跟随着人的性别、年龄不同而有所不同。一般来说,男性说话者的基音频率较低,大部分在70~200Hz的范围内,而女性说话者和小孩的基音频率相对较高,在200~450Hz之间。基音周期的估计称谓基音检测,基音检测的最终目的是为了找出和声带振动频率完全一致或尽可能相吻合的轨迹曲线。基因周期作为语音信号处理中描述激励源的重要参数之一,在语音合成、语音压缩编码、语音识别和说话人确认等领域都有着广泛而重要的问题,尤其对汉语更是如此。汉语是一种有调语言,而基因周期的变化称为声调,声调对于汉语语音的理解极为重要。因为在汉语的相互交谈中,不但要凭借不同的元音、辅音来辨别这些字词的意义,还需要从不同的声调来区别它,也就是说声调具有辨义作用;另外,汉语中存在着多音字现象,同一个字的不同的语气或不同的词义下具有不同的声调。因此准确可靠地进行基音检测对汉语语音信号的处理显得尤为重要。二、自相关函数法原理能量有限的语音信号的短时自相关函数定义为:(2.1)其中,为移位距离,是偶对称的窗函数。短时自相关函数有以下重要性质:①如果是周期信号,周期是,则也是周期信号,且周期相同,即。②当τ=0时,自相关函数具有最大值;当…处周期信号的自相关函数达到极大值。③自相关函数是偶函数,即。短时自相关函数法基音检测的主要原理是利用短时自相关函数的第二条性质,通过比较原始信号和它移位后的信号之间的类似性来确定基音周期,如果移位距离等于基音周期,那么,两个信号具有最大类似性。在实际采用短时自相关函数法进行基音检测时,使用一个窗函数,窗不动,语音信号移动,这是经典的短时自相关函数法。窗口长度的选择要适宜,如果N太大,它等效于带宽很窄的低通滤波器,此时短时平均能量随时间的变化很小不能反映语音信号的幅度变化,波形的变化细节就看不出来;反之,N太小是,滤波器的通带变宽,短时能量随时间有急剧变化,不能得到平滑能量函数。图1(a)为原信号(b)为自相关函数三、实例演示以voice.wav语音为例,在Matlab上进行语音的采样与分帧。(1)打开Matlab并新建一.m文件,运行:function pitchx=wavread(voice.wav);%读取声音文件figure(1); stem(x,.); %显示声音信号的波形得到的波形如下:图2 声音信号波形对语音信号采样,通过matlab对语音文件“voice.wav”计算得知其语音长度为2秒,若采样频率为22KHz,共计44000采样点。(2)运行n=220; %取10ms的声音片段,即220个样点for m=1:length(x)/n; %对每一帧求短时自相关函数for k=1:n;Rm(k)=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([0 length(T) 0 15]);xlabel(帧数(n));ylabel(周期(ms));title(各帧基音周期);图3 各帧基音周期由第一步可知44000个样点,一共有200帧(每帧220个样点),对应着图中的横坐。由图中可以看出基音周期大约为7ms.但是图中存在太多的野点,为此,需要对此进行进一步的处理,即去除野点。(3)去除野点运行T1= medfilt1(T,5); %去除野点figure(3);stem(T1,.);axis([0 length(T1) 0 15]);xlabel(帧数(n));ylabel(周期(ms));title(各帧基音周期);运行结果如下:图4 去除野点后的各帧周期四、总结:(1)
文档评论(0)