实验3 语音信号的端点检测

上传人:suns****4568 文档编号:88961387 上传时间:2019-05-14 格式:PPT 页数:20 大小:214.50KB
返回 下载 相关 举报
实验3 语音信号的端点检测_第1页
第1页 / 共20页
实验3 语音信号的端点检测_第2页
第2页 / 共20页
实验3 语音信号的端点检测_第3页
第3页 / 共20页
实验3 语音信号的端点检测_第4页
第4页 / 共20页
实验3 语音信号的端点检测_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《实验3 语音信号的端点检测》由会员分享,可在线阅读,更多相关《实验3 语音信号的端点检测(20页珍藏版)》请在金锄头文库上搜索。

1、实验三 语音信号的端点检测,一、实验目的,1、本次实验是设计性实验,鼓励学生充分发挥自己的创造性,灵活利用所学的理论知识,设计出自己的解决方案。 2、熟悉并掌握语音端点检测技术。,二、实验原理,语音端点检测就是检测语音信号的起点和终点,因此也叫起止点识别。它是语音处理技术中的一个重要方面,其目标是要在一段输入信号中将语音信号同其它信号如背景噪声分离开来。在语音识别中,一个关键问题就是如何将语音信号精确地检测出来,为获得准确的识别提供前提。,以过零率ZCR和能量E为特征的起止点算法的根据是背景噪声与语音的短时段ZCR及E特征从统计看都有相当的区别。这里的E特征指的是能量类特征,用到的是该类特征中

2、的短时段平均幅度M特征。 过零率的定义为:在统计的短时段中,信号波形穿越零电平的次数。,该方法的要点为:由于采集声音信号的最初的短时段为无语音段,仅有均匀分布的背景噪声信号。这样就可以用已知为静态的最初几帧(一般取帧)信号计算其过零率阈值IZCT及能量阈值ITL(低能量阈)和ITU(高能量阈)。 接下来就可以用过零率阈值IZCT及能量阈值ITL(低能量阈)和ITU(高能量阈)来进行起点及止点的判别。,先根据ITL、ITU算得一初始起点N1。方法为从第帧11开始,逐次比较每帧的平均幅度,N1为平均幅度超过的ITL第一帧的帧号。但若后续帧的平均幅度在尚未超过之前ITU又降到ITL之下,则原N1不作

3、为初始起点,改记下一个平均幅度超过了的帧的帧号为ITL N1,依此类推,在找到第一个平均幅度超过ITU的帧时停止比较。,N1只是根据能量信息找到的起点,还未必是语音的精确起点。这是由于语音的起始段往往存在着能量很弱的清辅音,仅依靠能量很难把它们和无声区分开。但研究发现它们的过零率明显高于无声段,因此可以利用过零率这个参数来精确判断清辅音与无声区二者的分界点。 当N1确定后,从N1帧向N1-25帧搜索,依次比较各帧的过零率,若有3帧以上的ZCRIZCT,则将起点N1定为满足ZCRIZCT的最前帧的帧号,否则即以N1为起点。,语音结束点N2的检测方法与检测起点相同,从后向前搜索,找第一个平均幅度低

4、于ITL、且其前向帧的平均幅度在超出ITU前没有下降到ILT以下的帧的帧号,记为N2,随后根据过零率向N2+25帧搜索,若有3帧以上的ZCRIZCT,则将结束点N2定为满足ZCRIZCT的最后帧的帧号,否则即以N2作为结束点。,三、实验要求,要求通过所学语音信号处理的知识,独立设计算法,实现对一段包含背景噪声且前后有一段空白的语音信号进行端点检测,找出语音的真实起点和终点。,四、实现方法,可先用麦克风录制一段语音,然后对语音加窗分帧,并利用语音增强技术最大限度地滤除背景噪声;对加窗后的语音信号求其短时平均幅度函数和短时平均过零率,然后设定这两种参数的阈值,最终在整段语音内通过两种参数与各自的阈

5、值比较找出语音的真实起点和终点。,五、报告要求,1、实验目的及原理说明; 2、详细的算法说明; 3、实验的具体实施方案; 4、实验程序清单及实验结果; 5、实验结果分析。 6、参考文献(3-4本参考资料),例:对whut.wav声音文件进行端点检测,%声音读取 x,fs=wavread(c:whut.wav); x=x(20000:length(x); x=x; %幅度归一化到-1,1 x = double(x); x = x / max(abs(x);,%常数设置 FrameLen = 240; FrameInc = 80; amp1 = 8; amp2 = 1; zcr1 = 10; zc

6、r2 = 5; maxsilence = 8; % 8*10ms = 80ms minlen = 15; % 15*10ms = 150ms status = 0; count = 0; silence = 0;,%计算过零率 tmp1 = enframe(x(1:end-1), FrameLen, FrameInc); tmp2 = enframe(x(2:end) , FrameLen, FrameInc); signs = (tmp1.*tmp2)0.02; zcr = sum(signs.*diffs, 2); %计算短时能量 amp = sum(abs(enframe(filter(

7、1 -0.9375, 1, x), FrameLen, FrameInc), 2);,%调整能量门限 amp1 = min(amp1, max(amp)/4); amp2 = min(amp2, max(amp)/20); %开始端点检测 x1 = 0; x2 = 0; for n=1:length(zcr) goto = 0; switch status case 0,1 % 0 = 静音, 1 = 可能开始,if amp(n) amp1 % 确信进入语音段 x1 = max(n-count-1,1); status = 2; silence = 0; count = count + 1;

8、elseif amp(n) amp2 | . % 可能处于语音段 zcr(n) zcr2 status = 1; count = count + 1; else % 静音状态 status = 0; count = 0; end,case 2, % 2 = 语音段 if amp(n) amp2 | . % 保持在语音段 zcr(n) zcr2 count = count + 1; else % 语音将结束 silence = silence+1; if silence maxsilence % 静音还不够长,尚未结束 count = count + 1; elseif count minlen % 语音长度太短,认为是噪声 status = 0; silence = 0; count = 0; else % 语音结束,status = 3; end end case 3, break; end end count = count-silence/2; x2 = x1 + count -1;,x1=fix(x1*length(x)/length(amp); x2=fix(x2*length(x)/length(amp); y=x(x1:x2); subplot(311) plot(x) title(原波形图) subplot(313) plot(y) title(新波形图),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号