计算一段语音能量.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
%计算一段语音能量 [x,fs,bit]=wavread( d:\voice\daxue.wav ); framelength=100; framenumber=fix(length(x)/framelength); for i=1:framenumber; E(i)=0; for j=(framelength*(i-1)+1):1:framelength*(i); E(i)=E(i)+x(j)*x(j); end ; end ; totaltime=length(x)/fs; for i=1:length(x); pointtime(i)=totaltime*i/length(x); end for i=1:framenumber; frametime(i)=totaltime*i/framenumber; end subplot(2,1,1) plot(pointtime,x); subplot(2,1,2) plot(frametime,E); %计算一段语音的短时过零率 [x,fs,bit]=wavread( d:\voice\daxue.wav ); framelength=100; framenumber=fix(length(x)/framelength); for i=1:1:framenumber; Z(i)=0; for j=1:framelength; y(j)=x(framelength*(i-1)+j); end for j=1:framelength-1; Z(i)=Z(i)+sign(y(j+1)-y(j)); end end ; totaltime=length(x)/fs; for i=1:length(x); pointtime(i)=totaltime*i/length(x); end for i=1:framenumber; frametime(i)=totaltime*i/framenumber; end subplot(2,1,1) plot(pointtime,x); subplot(2,1,2) plot(frametime,Z); 修正 [x,fs,bit]=wavread( d:\voice\daxue.wav ); framelength=100; framenumber=fix(length(x)/framelength); T=x(1); for i=1:1:framenumber; Z(i)=0; for j=1:framelength; y(j)=x(framelength*(i-1)+j); end for j=1:framelength-1; Z(i)=Z(i)+abs(sign(y(j+1)-T)-sign(y(j)-T))+ ... abs(sign(y(j+1)+T)-sign(y(j)+T)); end end ; totaltime=length(x)/fs; for i=1:length(x); pointtime(i)=totaltime*i/length(x); end for i=1:framenumber; frametime(i)=totaltime*i/framenumber; end subplot(2,1,1) plot(pointtime,x); subplot(2,1,2) plot(frametime,Z); 采用联合参数进行端点检测的方案: 1. 混叠信号进行分帧处理,求取每一帧的短时能量( M),过零 率(Z)以及短时能量与过零率的乘积( MZ)。 2. 对信号分帧后求得的所有 MZ 系数进行如下处理:求取每一 帧 MZ 系数与其相邻的前一帧、后一帧的 MZ 系数的比值, 将两个比值中较大的一个值保留,这一值( K)将作为浊音 / 非浊音的判别依据。 3. 获得所有帧的 K 系数后,发觉在浊音 /非浊音的分割区间该参 数会有一个很高的峰值,检测出峰值点后,就检测出了分割 端点,参考各端点区域内的短时能量作出清 /浊音判定。 4. 为了提高分割的精度,再进行如下修正:当某帧被检测为有 声区间的起始点后, 从该帧的前一帧开始, 加入 10 个动态帧 (帧间间隔 90%),再重复上述过程。 (精度的提高可通过加 大帧间间隔来达到目的) 。 设输入语音分割成 M 帧,每帧 N 点,每一短时帧 Si,i=1,2,?M 。 N 则 短时能量: M ( ) i j ; (3.1) i S ( ) j 1 N 短时平均过零率: Z (i ) sgn[ Si ( j )] sgn[ S ( j 1)] ; (3.2) i j 1 短时能量与短时平均过零率的乘积: MZ (i ) M (i) Z (i) ; (3.3) MZ (i 1) MZ

文档评论(0)

137****0220 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档