网站大量收购独家精品文档,联系QQ:2885784924

语音信号基音频率的提取.ppt

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
语音信号基音频率的提取

五、pitch 语音信号基音频率的提取 一、综述 此matlab程序用于提取基音频率的提取。 人在发浊音时,气流通过声门使声带产生张驰振荡式振动,产生一股准周期脉冲气流,这一气流激励声道就产生浊音,又称有声语音,它携带着语音中的大部分能量。这种声带振动的频率称为基频。 在语音信号处理中,语音信号参数提取的准确性非常重要。只有获得准确的参数,才能利用这些参数进行高效的处理,而在许多参数提取中,基音周期的提取尤为重要,广泛地应用于语音压缩编码、语音分析合成以及语音识别等方面,所以,准确可靠地估计并提取基音周期对语音信号处理至关重要 。它直接影响到合成语音是否真实再现原始语音信号,影响到语音识别的识别率,影响到语音压缩编码的正确率。 二、大体思路 原理:周期信号的自相关函数将在时延等于函数周期的地方产生一个极大值,因此通过计算语音信号的自相关函数可以估计信号的基音。 1、输入序列,求其自相关序列 2、求第一周期极大值点 3、根据语音特点筛选最大值点 4、根据此最大值点位置得出语音频率 三、主程序pitch function [p,mx]=pitch(s)%输入一个语音序列 THR_pitch=0.75; THR_maxx=0.7; THR_corr=0.33; THR_largePitch=60;%限定最大值的范围 epsilon=1.0e-10;%防止被零整除,添加一个极小的数 L=length(s);%求序列长度 d=100;% rr=corr(s,d,0);%最后一个参数限定求自相关时的方向 四、corr 二、主程序pitch 五、mass函数 六、zero函数 * * * * * * * function r=corr(s,d,flag) epsilon=1.0e-10; % 防止被零整除 L=length(s); NM=120; if flag==1 % From left to right for i=20:min(L-d,NM)%自相关错位值 temp=0.0; temp1=0.0; temp2=0.0; for j=1:d temp=temp+s(j)*s(j+i); temp1=temp1+s(j+i)*s(j+i); temp2=temp2+s(j)*s(j); end pw1=sqrt(temp1)+epsilon; pw2=sqrt(temp2)+epsilon; r(i-19)=temp/(pw1*pw2); end 语音的基音周期一般在20到140,因此小于20没有周期 i+20-1,因此pitch.m在调用这个时需要有一句p=19+ind_pitch; [maxim,mxi]=max(rr);%maxim存放最大值,mxi存放最大值位置 ind_pitch=mxi; if mxiTHR_largePitch %与限定值比较 mi=maxx(rr,THR_maxx);%实际上就是以最大值点的t倍为界找出这个界以上的左右极值点的位置 %这个序列的第一个值是1,最后一个是序列rr的长度 %一开始看到这里的时候会觉得比较多余了,直接一次maxim*THR_pitch分界比较就可以了 %事实上,下面的比较没有只针对极值点处理。 %maxx的作用是筛选出大于maxim*THR_maxx的极值点出来,所以这个还是必须的 for i=1:length(mi) if rr(mi(i))max(THR_corr,maxim*THR_pitch); ind_pitch=mi(i); break;%break说明只取第一个满足条件的 end end end p=19+ind_pitch;%rr(i)对应的是i+19 mx=rr(ind_pitch); function mi=maxx(s,t) max_value=max(s); oldstate=0; L=length(s); j=1; mi=[1]; for i=1:L-1

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档