语音中提取基音频率matlab程序(Matlab program for extracting pitch frequency in speech).docVIP

语音中提取基音频率matlab程序(Matlab program for extracting pitch frequency in speech).doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语音中提取基音频率matlab程序(Matlab program for extracting pitch frequency in speech)

语音中提取基音频率matlab程序(Matlab program for extracting pitch frequency in speech) % corr.m 基音估计的相关性 %旗= 1从左到右,否则,从右到左 % R =更正(S,L,标志) % % %旗= = 1时 % % % % | --我-- | %s:..................................................... %。 %。 %。 %。 %。 %。 %s:..................................................... % | _______ D ________ | __________________ L-D _____________ | %返回值是一个序列 %注意到在做自相关时,错位值从20开始 %考虑到在用这个自相关序列时可能是用于求周期,这个20时有利的 %语音的基音周期一般在20到140,因此小于20没有周期 而错开以上可以避免出现不是所求的峰值避免出错% 20 %求到结果后放到RR序列中时,注意到下标为我时实际上已经是错开 %我+ 20-1,因此球场。我在调用这个时需要有一句P = 19 + ind_pitch; 函数r(S,D,科尔旗) ε= 1.0e-10;为避免除以零 l =长度(s); NM = 120; 如果国旗= = 1%从左到右 我= 20分钟(L·d,NM) 温度=0; temp1 = 0; temp2 = 0; 对于j = 1:d 温度= s(j)s(j + i); temp1 = temp1 + S(J +我)*(J +我); temp2 = temp2 + S(J)*(J); 结束 PW1 = SQRT(temp1)+ε; PW2 = SQRT(temp2)+ε; R(i-19)=温度/(1×PW2); 结束 其他为从右到左 我= 20分钟(L·d,NM) 温度=0; temp1 = 0; temp2 = 0; J = L + 1:L 温度=温度+ S(J-1)*(J); temp1 = temp1 + S(J-1)*(J-1); temp2 = temp2 + S(J)*(J); 结束 PW1 = SQRT(temp1)+ε; PW2 = SQRT(temp2)+ε; R(i-19)=温度/(1×PW2); 结束 结束 % Maxx。M 为找到所有功能大于局部极大值 t倍是全局最大值 % max_index = Maxx(S,T) %输入一个序列和一个标量T %的的最大值max_value首先求出序列 %然后如果序列中的一个点比相邻两个点都大 %而且还大于max_value的T倍 就把这个点的位置存放在序列MI中% 在序列MI最后再补上序列的最后一个点% %考虑到第一个点和最后一个点有可能满足要求 %但这两个点都不能跟旁边的比较 %所以还是把这两个点保留了,放在MI序列的第一个和最后一个 实际上就是以最大值点的T倍为界找出这个界以上的极值点的位置% 功能MI = Maxx(S,T) max_value = max(S); 老= 0; l =长度(s); j=1; MI = [ 1 ]; 对于i = 1:L-1 如果s(i)s(i + 1) 状态= 1; 结束 如果(我)T * max_value j = j + 1; MI(j)= i; 结束 结束 新老=; 结束 长度(MI); MI(LL + 1)=长度(s); %沥青。 %这是一个函数来找到足够长的讲话的基音周期。 %区间。为了找到正确的基音周期,有利于 选择短周期。即,如果P1P2 * Thr,我们选择P1 %而不是P2。 % %使用情况[ p,MX=间距(s) %输入一个序列,首先求出其自相关序列RR %要求出第一个周期的极大值点 %首先求出序列的最大值格言所在的位置,如果这个位置在thr_largepitch以内 就认为这就是要求的点如果这个位置大于thr_largepitch,就考虑小于%。 % thr_largepitch的范围内有没有点满足以下条件:大于准则* thr_maxx的极值点, %大于max(thr_corr,thr_pitch *准则)。 %如果有满足条件的,第一个点就是所求点 %至于为什么可以这样做,还没搞懂 %总的说来,这个函数返回一个序列的第一个周期 函数[ p,MX ] =音高(s) thr_pitch = 0.75; thr_maxx = 0.7; thr_corr = 0.33; thr_largepitch = 60; ε= 1.0e-10;%用于避免被零除 l =长度(s); D = 100; RR =更正(S,D,0);%最后一个参数是0

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档