还剩2页未读,继续阅读
文本内容:
实验一语音信号端点检测
一、实验目的学会的使用,掌握的程序设计方法;
1.MATLAB MATLAB掌握语音处理的基本概念、基本理论和基本方法;
2.掌握基于编程实现带噪语音信号端点检测;
3.MATLAB学会用对信号进行分析和处理
4.MATLAB学会利用短时过零率和短时能量,对语音信号的端点进行检测
5.
二、实验仪器设备及软件MATLAB
三、实验原理端点检测是语音信号处理过程中非常重要的一步,它的准确性直接影响到语音信号处理的速度和结果本次实验利用短时过零率和短时能量相结合的语音端点检测算法利用短时过零率来检测清音,用短时能量来检测浊音,两者相配合便实现了信号信噪比较大情况下的端点检测算法对于输入信号的检测过程可分为短时能量检测和短时过零率检测两个部分算法以短时能量检测为主,短时过零率检测为辅根据语音的统计特性,可以把语音段分为清音、浊音以及静音包括背景噪声三种在本算法中,短时能量检测可以较好地区分出浊音和静音对于清音,由于其能量较小,在短时能量检测中会因为低于能量门限而被误判为静音;短时过零率则可以从语音中区分出静音和清音将两种检测结合起来,就可以检测出语音段清音和浊音及静音段、短时能量计算1定义时刻某语言信号的短时平均能量£〃为n■Ko n£〃=[xm vv/-m]2-oo m=n-N-\式中为窗长,可见短时平均能量为一帧样点值的平方和特殊地,当窗函数为N矩形窗时,有坳=^x2min=n-N-
1、短时过零率2过零就是指信号通过零值过零率就是每秒内信号值通过零值的次数对于离散时间序列,过零则是指序列取样值改变符号,过零率则是每个样本的改变符号的次数对于语音信号,则是指在一帧语音中语音信号波形穿过横轴零电平的次数可以用相邻两个取样改变符号的次数来计算如果窗的起点是短时过零率为n=0,Z波形穿过横轴零电平的次数1N—1z=5A sg〃⑸⑺—Sg〃⑸〃—1|〃2=sgnx={,短时过零可以看作信号频率的简单度量浊音的短时平均幅度最大,无声的短时平均幅度最小,清音的短时过零率最大,无声居中,浊音的短时过零率最小、短时自相关函数3—R«k=Z+k〃=o
①是偶函数;是周期的,那么也是周期的;
②sn Rk
③可用于基音周期估计和线性预测分析、判断语音信号的起点和终点4利用短时平均幅度和短时过零率可以判断语音信号的起点和终点语音端点检测方法可采用测试信号的短时能量或短时对数能量、联合过零率等特征参数,并采用双门限判定法来检测语音端点,即利用过零率检测清音,用短时能量检测浊音,两者配合首先为短时能量和过零率分别确定两个门限,一个是较低的门限数值较小,对信号的变化比较敏感,很容易超过;另一个是比较高的门限,数值较大低门限被超过未必是语音的开始,有可能是很短的噪声引起的,高门限被超过并且接下来的自定义时间段内的语音
四、实验步骤及程序实验步骤
1、取一段录音作为音频样本
1、利用公式分别编程计算这段语音信号的短时能量和短时过零率,然后分别画出它们的曲线
2、调整能量门限
3、进行幅度归一化并设置帧长、短时能量阈值、过零率阈值等参数
4、编写程序实现语音端点检测
5、最后得到语音端点检测图像6语音信号的端点检测程序流程图:
(2)图语音信号的端点检测程序流程图
1.1语音信号的端点检测实验源程序:3clc;clear;〃读语音文件波形c=wavread
55.wavr;〃分析语音文件短时能量e_x=framec:,1,Energy*;〃分析语音文件过零率z_x=framec:,l/zc;subplot5,l,l;plotc:,l;subplot5,l,2;plote_x;subplot5,l,3;plotz_x;
五、实验结果与分析图语音信号的端点检测实验结果输出图像L2从图中可以明显看出,浊音的短时能量大、短时过零率低清音的短时能量小、短时过
(1)零率高门限的选取对语音检测结果有很大影响
(2)仅仅根据能量判断是比较粗糙的,还需要根据过零率进行判断因为清音和噪声的短时
(3)平均过零率比背景噪声的平均过零率要高出好几倍80
六、实验体会这次试验,让我掌握了调用函数的结构体,一开始没学过语言,所以,学这门课matlab matlab很吃力,好多语句都不知道,所以,无从下手去通过语言实现功能,只能一边学语句的涵义哦,一边摸索功能的实现,相当费劲以后,不知道还有没有机会系统的了解,学习语言,不过,matlab还是从这个试验学到一部分关于的知识,以及用实现语音信号处理的应用技巧matlab matlab。