- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)