实验一语音信号端点检测 一、实验目的 1.学会 MATLAB的使用,掌握 MATLAB的程序设计方法; 2.掌握语音处理的基本概念、基本理论和基本方法; 3.掌握基于 MATLAB编程实现带噪语音信号端点检测; 4.学会用 MATLAB对信号进行分析和处理。 5. 学会利用短时过零率和短时能量,对语音信号的端点进行检测。 二、实验仪器设备及软件 HP D538、MATLAB 三、实验原理 端点检测是语音信号处理过程中非常重要的一步,它的准确性直接影响到语音信号处理的速度和结果。本次实验利用短时过零率和短时能量相结合的语音端点检测算法利用短时过零率来检测清音,用短时能量来检测浊音,两者相配合便实现了信号信噪比较大情况下的端点检测。 算法对于输入信号的检测过程可分为短时能量检测和短时过零率检测两个部分。算法以短时能量检测为主,短时过零率检测为辅。根据语音的统计特性,可以把语音段分为清音、浊音以及静音(包括背景噪声)三种。在本算法中,短时能量检测可以较好地区分出浊音和静音。对于清音,由于其能量较小,在短时能量检测中会因为低于能量门限而被误判为静音;短时过零率则可以从语音中区分出静音和清音。将两种检测结合起来,就可以检测出语音段(清音和浊音)及静音段 1、短时能量计算 定义 n 时刻某语言信号的短时平均能量En 为: nNnmmnwmxmnwmxEn)1(22)]()([)]()([ 式中 N 为窗长,可见短时平均能量为一帧样点值的平方和。特殊地,当窗函数为矩形窗时,有nNnmmxEn)1(2)( 2、短时过零率 过零就是指信号通过零值。过零率就是每秒内信号值通过零值的次数。 对于离散时间序列,过零则是指序列取样值改变符号,过零率则是每个样本的改变符号的次数。对于语音信号,则是指在一帧语音中语音信号波形穿过横轴(零电平)的次数。可以用相邻两个取样改变符号的次数来计算。 如果窗的起点是n=0,短时过零率Z 为 波形穿过横轴(零电平)的次数 |))1(())((|21100NnwwnSSgnnSSgnZ 00,1,1)sgn(xxx 短时过零可以看作信号频率的简单度量 浊音的短时平均幅度最大,无声的短时平均幅度最小,清音的短时过零率最大,无声居中,浊音的短时过零率最小。 3、短时自相关函数 10)()()(kNnwwwknsnskR ①是偶函数; ②s(n)是周期的,那么 R(k)也是周期的; ③可用于基音周期估计和线性预测分析 4、判断语音信号的起点和终点 利用短时平均幅度...