基于双门限法的端点检测
代码+论文+PPT+仿真结果下载地址:下载地址
摘要
语音端点检测是指从一段语音信号中准确的找出语音信号的起始点和结束点,它的目的是为了使有效的语音信号和无用的噪声信号得以分离,因此在语音识别、语音增强、语音编码、回声抵消等系统中得到广泛应用。
目前端点检测方法大体上可以分成两类,一类是基于阈值的方法,该方法根据语音信号和噪声信号的不同特征,提取每一段语音信号的特征,然后把这些特征值与设定的阈值进行比较,从而达到语音端点检测的目的,该方法原理简单,运算方便。另一类方法是基于模式识别的方法,需要估计语音信号和噪声信号的模型参数来进行检测。但基于模式识别的方法自身复杂度高,运算量大,因此很难被人们应用到实时语音信号系统中去。本文采用基于阀值的方法,利用双门限法对语音端点进行检测,此方法是比较简单的检测方法,在信噪比较小的情况下效果不是很好。
端点检测在语音识别中占有十分重要的地位,直接影响着系统的性能。本文首先对语音信号进行简单的短时能量和短时过零率分析,其次利用双门限算法进行语音端点检测,并对这算法进行基于MATLAB的GUI仿真,并进行实验分析。分析比较在不同信噪比下的基于双门限法端点检测结果。
关键词:语音信号处理;语音端点检测;双门限;MATLAB;GUI仿真;
一、绪论
语音,即语言的声音,是语言符号系统的载体。它由人的发音器官发出,负载着一定的语言意义,语言依靠语音实现它的社会功能。语音是人们交流思想和进行社会活动的最基本手段,因此我们要对语音信号进行处理分析,优化人类通信交流。语音信号处理包括语音通信、语音增强、语音合成、语音识别和说话人识别等方面。语音信号的好坏、语音识别率的高低,都取决于语音信号处理的好坏。因此,语音信号处理是一项非常有意义的研究课程,而语音端点检测是语音语音信号处理中非常重要的一步。
语音端点检测是语音分析、合成和识别中的一个重要环节,目的是从包含语音的一段信号中找出语音的起始点及结束点。有效的端点检测不仅可以减少数据的存和处理时间,而且能排除无声段的噪声干扰。端点检测的困难在于无声段或者语音段前后人为呼吸等产生的杂音、语音开始处的弱摩擦音或弱爆破音以及终点处的鼻音,这些使得语音的端点比较模糊,需要综合利用语音的各种信号特征,从而确保定位的精确性,避免包含噪音信号和丢失语音信号。近年来出现了很多种端点检测的方法如短时能量、短时过零率、传统的双门限法、倒谱特征的检测方法、谱熵的检测方法法、分形法等。
尽管语音端点检测技术在安静的环境中已经拥有一定的准确率,但是在实际应用时由于声的引入和环境的改变通常会使系统性能显著下降。研究表明,即使在安静的环境中,语音识别系统一半以上的识别错误来自端点检测器。因此,作为语音识别系统的第一步,端点检测的关键性不容忽视,尤其是噪声环境下语音的端点检测,实验室的研究结果与复杂的实用环境下的语音端点检测仍存在一定的差距,它的准确性很大程度上直接影响着后续的工作能否有效进行,如何准确地检测出带噪语音的端点至今仍是一个难题。
(一)研究背景和意义
语音是语言的声学表现形式,语言是人类特有的功能,声音是人类常用的信息交流工具,通过声音传递信息是人类最重要、最有效、最准确、最方便、最自然的信息交换的方式。语音信号处理是一门涉及面很广的交叉科学,包含计算机科学、语音学、语言学、声学、生理学、心理学和数学等诸多领域的内容。随着现代科学的蓬勃发展,人类社会越来越显示出信息社会的特点,犹如衣、食、住、行对于人类是必要的一样,通信和信息交换也成为了人类社会存在的必要条件,不但在人与人之间,而且在人与机器之间每时每刻都需要进行大量的信息交换。让计算机听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。计算机越来越向便携化方向发展,计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚。在电子计算机和人工智能机器的广泛应用中,人们发现,人和机器之间最好的通讯方式是直接进行语言通讯,实现人机自由对话,赋予机器以听觉,辨别话音的内容或者辨别说话人的身份,使机器能够按照人的意志进行各种操作,把人类从繁重或危险的劳动中解脱出来。用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展十分重要。
语音技术的应用己经成为一个具有竞争性的高新技术产业,它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理,工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面。语音处理内容涉及到计算机科学、模式识别、信号处理、生理学、语音学、心理学等学科,还涉及到信号和信息处理系统、通信和电子系统等具体应用领域。语音信号处理与信息科学中最活跃的前沿科学密切联系,并且共同发展。例如,神经网络理论、模糊集理论、小波理论是当前热门的研究领域,这些领域的研究常常把语音处理任务作为一个应用实例,而语音处理研究者也从这些领域的研究进展中找到突破口,使语音处理技术研究取得进展。从技术角度讲,语音信号处理是信息高速公路、多媒体技术、办公自动化、现代通信及智能系统等新兴领域应用的核心技术之一。
经过几十年的努力,语音信号处理在语音识别、语音增强、语音编码、说话人识别、说话人情感识别、语音合成等方面取得了巨大的进步,然而,一旦这些技术应用在实际环境中,由于环境噪声、信道、说话人自身因素等方面的影响,性能急剧下降,因为在实际环境中没有完全纯净的语音信号,一般都会伴有噪声或其它干扰。语音端点检测的任务就是判断待处理信号是语音还是非语音,从输入信号中找到语音部分的起止点。端点检测是语音识别、语音增强以及语音编码等中的一个重要环节。有效的端点检测技术不仅能减少系统的处理时间、提高系统的处理实时性,而且能排除无声段的噪声干扰,从而使后续工作的性能得以较大提高。
语音端点检测的准确性对于语音识别系统的性能有着较大的影响。在一个完整的语音识别系统中,许多相关因素影响着整个系统的识别精度和效率,由于在自然环境中,纯净的语音信号总伴随着各种不同类型的噪声,而语音识别系统处理的对象是有效的语音信号,因此,由于噪声的干扰,往往使得整个系统的识别率下降。
另外在通信系统中,典型的会话信道大约有40%的时间真正用于传输语音,其余60%的时间传输的都是静默和背景噪声。由于可利用的频谱资源随着移动用户的飞速发展而急剧下降。如何开发其余60%被浪费的信道资源就成为了提高系统容量的有效手段之一。如果在发送端设立一个语音端点检测器来区分语音和静默以及背景噪声,在接收端用舒适噪声发生器来重构背景噪声,这样就可以极大的提高信道的利用率,而且也能保证重构语音的可懂度和自然度,因此准确的语音端点检测是非常重要的。
(二)当前研究状况及问题
语音端点检测的任务是判断待处理信号是语音还是非语音。它作为一种语音信号预处理技术,在实际应用中起着非常重要的作用,有效地进行端点检测不仅可以减少计算量和缩短处理时间,而且能排除无声段的噪声干扰、提高语音识别的正确率,因此它广泛应用于语音识别、语音增强、语音编码、回声抵消等系统中。一般来说,理想的语音端点检测算法应当能够满足以下几点:
(1)门限值应该可以对背景噪声的变化有一定的适应性。
(2)将短时冲击噪声和人的顺嘴等瞬间超过门限的信号纳入无声段而不是有声段。
(3)对于爆破音的寂静段,应将其纳入语音的范围而不是无声段。
(4)应该尽可能避免在检测中丢失鼻韵和弱摩擦音等与噪声特性相似、短时参数较少的语音。
(5)应该避免使用过零率作为判决标准而带来的负面影响。
这几点可以总结为:可靠性,鲁棒性,精确性,自适应性,实时性和对噪声特征无需先验知识。在所有这些特征中,鲁棒性是最难达到的。
传统算法中大都根据语音信号的时域特征,如基于能量和短时过零率等,在较强噪声环境下,人类语言中的清音和摩擦音往往和背景噪声混合在一起,无法准确的分辨出语音和噪声的端点,容易发生漏检和虚检的情况。另外由于汉语词语的特殊性,音节的末尾大都是浊音,只用短时能量就能较好地判断一个词语的末点。而音节的起点—声母大多都是清声母,还有送气与不送气的塞音和塞差音,当背景噪声较大时,清音电平与噪声电平相差无几,将它们与环境噪声分辨是比较困难的。
现有的算法存在的主要问题有两点:
一、在具有较强噪声的环境下,语音端点检测往往存在着大量的误判,不利于后续的处理过程;
二、在高噪声的环境下不能有效的检测出语音信号段,造成了有效信息的丢失。
(三)本文主要介绍内容
本文先是介绍端点检测的研究背景及意义,同时指出来端点检测现实问题。第三章对语音的特点进行了说明,并对语音信号的预加重,短时能量,短时过零率进行了说明。最后本文采用基于阀值的方法,利用双门限法对语音端点进行检测,并利用MATLAB的GUI界面进行仿真实现,是端点检测的结果更加显而易见。通过比较不同信噪比下端点检测的效果分析,得出结论基于双门限是比较简单的检测方法,在信噪比较小的情况下效果不是很好。
二、语音信号的处理
1. 语音信号的特点
语音信号是随时间变化的一维信号,由一连串的音组成,各个音的排列有一定的规则。语音具有声学特征的物理性质,声音质量与它的频率范围有关,语音信号的频率一般是在200Hz3500Hz范围内,随着带宽的增加,信号的自然度将逐步得到改善。语音信号本身的冗余度是较大的,少数辅音清晰度下降并不明显影响语句的可懂度,比如通常的模拟电话带宽只有3KHz4KHz。
语音信号的特性是随时间变化的,所以是一种典型的非稳态信号。但是,从另一方面来看,由于语音的形成过程与发音器官的运动密切相关,这种物理运动比起声音振动速度来讲要缓慢得多,因此,语音信号常常可假定为短时平稳的。研究表明,在5ms-40ms的范围内,语音信号的频谱特性和一些物理特征参数基本保持不变。这样,我们就可以将平稳过程的处理方法和理论引入到语音信号的短时处理中。因此,“短时分析技术”贯穿于语音分析的全过程。
2. 语音信号的预处理
为了消除因为人类发声器官本身和因一些采集语音信号的设备等所引起的混叠、高次谐波失真现象,在对语音信号进行分析和处理之前,必须对其进行预处理。语音信号的预处理应尽可能地保证处理后得到的信号更均匀、平滑,且能提高语音的质量。
(1)预加重
在进行语音信号数字处理时,为了获取一段语音信号的时域波形,首先要将语音信号转换成电信号,再用A/D转换器将其变换为离散的数字化采样信号。由于语音信号的平均功率受声门激励和口鼻辐射影响,高频端大约在800Hz以上按6dB/倍频程跌落,所以求语音信号频谱时,频率越高相应的成分越小,高频部分的频谱比低频部分的难求,为此要在预处理中进行预加重处理。目的是提升高频部分,使信号变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱,而且预加重零点与辐射零点将抵消声门波的影响,使语音信号中只包含声道部分。图2.1表明了语音预处理的过程:
图2.1 语音信号的预处理
预加重一般是在语音信号数字化之后,用具有6dB/倍频程的提升高频特性的预加重数字滤波器来实现,它一般是一阶的数字滤波器:
(2-1)
式中 的取值接近于1。
有时要恢复原信号,需要从做过预加重的信号频谱来求实际的频谱时,要对测量值进行去加重处理,即加上6dB/倍频程的下降的频率特性来还原成原来的特性。
(2)加窗处理
语音端点检测首先要进行分帧处理,然后依次判断每一帧是否为语音的端点。在端点检测时如果采用较大的窗长,则帧长长,帧数少,这样计算量会小些,而且进行端点检测时速度也会快些,但是这样端点检测的误差容易增加。如果采用较小的窗长,则计算量增加,语音识别的速度会降低。我们可以在语音静音段时,采用较长的窗 ;在语音和静音的过渡段时采用较小的窗 ,可以确切判断语音的起始点 ;一旦确定语音的起点,就改用常规窗长。在进行了预加重后,接下来就要对语音信号进行加窗分帧处理。将语音信号划分为许多短时的语音段,每个短时的语音段称为一个分析帧。帧和帧之间既可以连续,也可以重叠。
用得最多的三种窗函数是矩形窗、汉明窗(Hamming)和汉宁窗(Hanning),它们的定义如下:
矩形窗: (2-2)
汉明窗: (2-3)
汉宁窗: (2-4)
式中N为窗长,窗函数 的选取(形状和长度)对于短时分析参数的特性影响很大,为此应该选择合适的窗口,使其短时参数能更好地反映语音信号的特性变化。以上这些窗函数的幅度频率响应都具有低通特性,它们的主瓣宽度和旁瓣高度如表2-1所示。
表2-1 1s长的各种窗的主瓣宽度和旁瓣高度
矩形 汉明 汉宁
主瓣宽度 0.81Hz 1.19Hz 1.87Hz
旁瓣宽度 -13dB -43dB -32dB
从表中可知:矩形窗的主瓣宽度最小,但其旁瓣高度最高;汉明窗的主瓣最宽,而旁瓣高度最低。矩形窗的旁瓣太高,会产生严重的泄漏现象(Gibbs),所以只有在某些特殊场合中采用。汉明窗旁瓣最低,可以有效地克服泄漏现象,具有更平滑的低通特性,因此,一般在语音信号预处理中,都选用汉明窗来进行语音分帧处理。
3. 语音信号分析
语音信号处理包括语音识别、语音合成、语音编码、说话人识别等方面,但是其前提和基础是对语音信号进行分析。只有将语音信号分析成表示其本质特性的参数,才有可能利用这些参数进行高效的语音通信,以及建立用于识别的模板或知识库。而且,语音识别率的高低,语音合成的音质好坏,都取决于对语音信号分析的准确性和精度。
(1)短时能量
短时能量:设第n帧语音信号的短时能量用表示.则其计算公式为
能量是语音信号的一个重要特性。在语音信号中通常采用En来描述其幅度值改变情况,由于在计算过程中使用了信号的平方,因而它对高电平异常敏感。
语音和噪声的主要区别在它们的能量上,所以能量是经常使用的音频特征参数,是对语音信号最直观的表示。语音信号一般可分为无声段(静音段)、清音段和浊音段。由于语音是不稳定的,所以我们采用“短时能量”。所谓短时能量,就是先对语音信号进行分帧处理,然后对每一帧分别求其能量。短时能量是随机参数,在无声段,清音段和浊音段,它们分别具有不同的概率密度函数,图1给出了短时能量在清音、无声和浊音三种情况下的条件概率密度函数。
图3.1短时能量在清音无声和浊音三种情况下条件概率密度函数示意图
从图3.1中可以看出,在三种情况中,浊音的短时能量最大,清音的短时能量次之,无声的短时能量最小。
图 3.2 短时能量图像
从图中可以看出“端点检测”语音信号中语音部分的能量是最高的,而语音部分又分成静音段、清音段、浊音段。短时能量函数可用来区分清音段和浊音段。 En大的对应于浊音段,而 En值小的对应于清音段。对于高信噪比的语音信号,无语音信号的噪声能量很小,而有语音信号的能量 En显著增大到某一数值,由此可以区分语音信号的起始点和结束点。
(2)短时过零率
短时过零率就是在较短时间内,信号过零的次数,即在一帧语音中语音波形通过零电平的总次数。对离散语音信号来讲,若相邻的两个采样点之间相互异号就称之为过零。
式中,N是采样点数,sgn[]是符号函数为
第一,用于粗略地描述信号的频谱特性,就是用多带滤波器将信号分为若干个通道,对各通道进行短时平均过零率和短时能量的计算,即可粗略地估计频谱特性。
第二,用于判别清音和浊音、有话和无话。
第三,区分清音和浊音,对语音信号进行分析,发现发浊音时,尽管声道有若干个共振峰,但由于声门波引起谱的高频跌落,所以其语音能量约集中在3kHz以下。而发清音时,多数能量出现在较高频率上。高频就意味着高的平均过零率,低频就意味着低的平均过零率,所以可以认为浊音时具有较低的过零率,而清音时具有较高的过零率。当然,这种高低仅是相对而言的,并没有精确的数值关系。
三、语音端点检测算法原理
双门限检测法中,将平均过零率和短时能量结合起来,在开始进行端点检测之前,需要对短时能量以及过零率分别设置两个门限,即一个高门限(TH)和一个低门限(TL)。当语音信号的低门限TL被超过时,则表示语音信号有可能进入语音段,但必须等语音信号的高门限TH。也被超过时,才能肯定该语音信号进入语音段;同时,当语音信号低于高门限TL。时也不能表示语音信号结束,还必须等到语音信号低于低门限Tl时才能确定语音信号结束。
双门限法是利用短时能量和过零率的乘积进行检测的。在基于短时能量和过零率的双门限端点检测算法中首先为短时能量和过零率分别确定两个门限,一个为较低的门限,对信号的变化比较敏感,另一个是较高的门限。当低门限被超过时,很有可能是由于很小的噪声所引起的,未必是语音的开始,当高门限被超过并且在接下来的时间段内一直超过低门限时,则意味着语音信号的开始。
对上述两种特征作一个统计估计,得到两个门限值,利用短时能量检测浊音,短时过零率检测清音,两者配合从而确定语音的端点。由于采集的声音信号中最初的短时段多为无声或背景噪声,这样就可以利用已知为“静态”的最初几帧(一般取10帧)信号计算其过零率阀值zcr及高、低能量阀值amp2(低能量阀)和amp1 (高能量阀)。
计算amp2和amp1时,首先计算最初10帧信号中每帧的短时平均能量或平均幅度 ,E最大值记为max,最小值记为min。
本文在计算短时能量之前,先经过一个滤波器,高通滤波器,此为预加重滤波器,目的在于滤除低频干扰 ,尤其是50Hz或60Hz的工频干扰,将对于语言识别更为有用的高频部分的频率进行提升,在计算短时能量之前应用该滤波器,还可以起到消除直流漂移、抑制随机噪声和提升清音部分能量的效果。其关键代码为:amp=sum(abs(enframe(filter([10.98],1,x),FrameLen,FrameInc)),2)。
文中能量门限调整代码为:
amp1=min(amp1,max(amp)/4);
amp2=min(amp2,max(amp)/8);
根据语音信号的实际情况对门限值进行调整,以便更好的对语音端点进行检测。
四、基于MATLAB GUI的仿真分析
(一)端点检测的步骤
1、预处理:包括滤波,预加重,分帧,加窗等,这里要考虑滤波器参数的选择,分帧时帧长长度的选择,加窗窗函数的选择。
2、特征提取:在时域或者频域提取能反映语音本质特征的声学参数,如短时能量,短时过零率等。特征提取目的是将输入信号转化为特征参数,然后利用特征参数进行语音段与无声段的区分。特征提取是语音端点检测的关键问题,特征参数选择的好坏直接影响到语音端点检测的准确率的高低。
3、确定门限:语音段最开始的几帧一般为无声段,根据无声段的特征值大小确定门限值,一般选择较大和较小两个门限值Tmax和Tmin,且Tmin< Tmax,Tmin很容易被超过,数值较小,对信号变化很敏感,Tmax数值较大,语音信号要一定的强度才能超过。
4、端点检测:确定门限后就可以进行端点检测,根据门限值来区分有语音段和噪声段,得出检测结果。1、预处理:包括滤波,预加重,分帧,加窗等,这里要考虑滤波器参数的选择,分帧时帧长长度的选择,加窗窗函数的选择。
五、总结
语音信号端点检测是语音信号处理中非常重要的一项预处理技术,因此是语音信号处理中不可缺少的一步。本文主要围绕端点检测的工作主要有以下几个方面:
(1)介绍了语音信号处理中的一些基础处理知识,例如短时分析技术、预加重、加窗和分帧等。
(2)对短时能量检测法、过零率检测法等进行了介绍,陈述了它们的优缺点。
(3)传统的双门限算法进行语音的端点检测,并且利用MATLAB的GUI进行仿真实现,是的结果更加显而易见。
(4)再通过对不同信噪比情况下端的点检测结果进行实验分析,实验结果表明在基于双门限法的语音端点检测检测在信噪比较小的时候存在较大误差。
随着语音相关学科的发展和新兴技术的不断出现必将使得未来的语音系统逐渐智能化,而作为关键技术之一的语音端点检测也将随之不断提高。如何有效地结合多种抗噪性能好的特征参数,使其更简洁、完善、精确、高效、鲁棒性好等将是今后研究的一个重要方面。
参考文献
[1] 何强,何英. MATLAB扩展编程[M].北京:清华大学出版社,2002
[2] 赵丽霞.噪声环境下基于特征的语音端点检测研[D].湖南大学,2010
[3] 孙海英.基于倒谱特征和浊音特性的语音端点检测方法的研究[D]青岛科技大学,2008
[4] 赵力.语音信号处理[M].北京:机械工业出版社,2003.04:36~40
[5] 刘波,文忠,曾涯.MATLAB信号处理[M] .北京:电子工业出版社
[6] 万建伟,王玲.信号处理仿真技术[M].长沙:国防科技大学出版社,2008.
[7] 蔡莲红,黄德智,蔡锐.现代语音技术基础与应用.北京:清华大学出版社
[8] 冯硕. 自适应的语音端点检测技术研究[D]北京邮电大学, 2008
转载:https://blog.csdn.net/cuihao1995/article/details/116808272