周妙琪,方福海,李婷,李军成
(湖南人文科技学院 数学与金融学院,湖南 娄底 417000)
在声源定位研究中,为了提高声源定位的准确性,通常需要研究声源的端点以帮助确定声源的位置,因此语音端点检测是声源定位研究中一个很重要的课题,它在人工智能、语音处理、通信系统、公安侦查等方面都有重要应用。
语音端点检测又被称为语音活动检测(Voice Activity Detection,VAD),是一种通过判定语音的起止点区分语音和非语音信号的检测技术。语音端点检测的方法有很多,如能零比法、频带方差法、谱熵法、双门限法、人工神经网络法等。在真实环境的声源定位中,噪声不可避免,为了提高目标声音采集与运用的效率,可首先利用降噪算法对语音进行降噪处理。目前,声源定位中的语音降噪的方法有很多,较为典型的有谱减法、维纳滤波法、子空间法等。
在语音端点检测方法中,双门限法较为常见,该算法在语音不含噪声时效果比较理想,但当语音含有噪声时容易失效。而在语音降噪算法中,子空间法是一种有效的方法,它能将噪声部分减弱,凸显语音部分,从而改进语音质量,使之更符合人耳的听觉感受。为了使双门限法在噪声环境中也能取得较好的端点检测结果,本文首先利用子空间法对带噪语音进行降噪处理,然后再采用双门限法进行语音端点检测,为声源定位中的含噪语音端点检测提供一种手段。
子空间法[11-12]首先将语音信号的向量空间分解为信号子空间和噪声子空间,然后将带噪语音进行KLT(Karhunen-Loeve Transform)变换,消除其噪声子空间并保留信号子空间,从而估计出干净语音,最后通过逆KLT变换得到降噪后的语音。子空间法的步骤可描述为:
Step.1将语音信号的向量空间分解为信号子空间x和噪声子空间v,语音信号可以表示为y=x+v。
Step.2对干净语音x的线性估计为x=Hy,根据有约束的优化问题求得最优线性滤波器Hopt。
Step.3将含噪的观测语音变换到KLT域,得到KLT系数。
Step.4根据干净语音在KLT域的稀疏性对KLT系数进行加权处理,得到稀疏化的干净语音的KLT系数估计值。
Step.5最后通过逆KLT变换得到降噪后的语音Hopty。
双门限法[1-2]最初是基于短时平均能量和短时平均过零率这两个参数提出的,其原理是汉语的韵母中元音的能量较大,所以可以由短时能量找到音节中的韵母,而声母是辅音,频率较高,相对应的平均过零率较大,所以可以用平均过零率找到声母,于是利用这两个特征就能找出完整的汉字音节[3-7]。
双门限法利用二级判决判定声音的起止点,第一级判决:在输入语音信号的短时能量包络线上选取一个较高的阈值(门限值)T2进行一次粗判,能量高于T2的肯定是声音信号,语音的起止点位置应在该门限值与短时能量包络交点的时间点以外。再在短时平均能量上确定一个较低的阈值(门限值)T1,并从两端往外搜索,分别找到短时能量包络与T1相交的两个点,于是这两个点就是用双门限法根据短时能量所判定的语音段的起止点;第二级判决:再以短时平均过零率为准,从一级判决的两点的两端往外搜索,找到短时平均过零率低于某个阈值(门限值)T3的两个点,这便是输入语音段的起止点。
整个语音端点检测可以分为4段:静音、过渡段、语音段、结束。在静音段,如果短时能量或过零率超越了低门限,就开始标记起点,进入过渡段。在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要两个参数的数值回落到低门限以下,就将当前状态恢复到静音状态,而如果过渡段中两个参数都超过了高门限,则确定进入了语音段,即检测到语音起点。双门限法端点检测的步骤为:
Step.1 语音输入,采集输入语音信号序列x,得出语音信号时域波形,设n=0。
Step.2 设置合适的帧长和帧移对语音信号进行分帧处理,计算出帧数。根据时域波形图估算前导无话段时长,计算出前导无语段帧数。
Step.3 求取短时平均能量和短时平均过零率,再计算前导无话段的短时能量和短时过零率的平均值。
Step.4 依据前导无话段的短时能量和短时过零率的倍数来设置短时能量和短时过零率的阈值(即门限值)T1、T2、T3进行端点检测。
Step.5 测量短时平均能量CN大于T1且短时平均过零率大于T3时则则标记为有效语音,否则为无效语音。
Step.6 当检测为有效语音时n=n+1,判断当n≥3时,则标记为有效语音和无效语音的起点或者终点[8-10]。
当语音不含噪声时,双门限法能取得较好的端点检测效果,但当语音含有噪声时其端点检测效果较差。为了对含噪语音的端点进行有效检测,本文首先利用子空间法对含噪语音进行降噪处理,再利用双门限法进行端点检测,这样使得双门限法在语音含有噪声的情形下仍能较好地使用。本文的算法步骤如图1所示。
图1 本文算法步骤
本文的仿真实验利用MATLAB进行,首先分别在纯净语音中添加white噪声、volvo噪声、pink噪声,然后分别利用双门限法和本文算法对含噪语言进行端点检测,并对结果进行对比分析。
第1组实验将时长为2s的纯净男声语音“上海开放港口”分别添加信噪比为0dB的white噪声、volvo噪声、pink噪声,分别利用双门限法和本文算法对含噪语言进行端点检测的结果如图2所示,其中实线表示语音字节的起始点,虚线表示语音字节的终止点[11-12]。
图2 第1组实验的结果对比
由图2可知,本文算法的语言端点检测效果明显要好于双门限法。为了定量比较双门限法与本文算法,本文利用准确率或查准率(PRC)、查全率(RCL)和综合性能测度(F-measure)对两种算法的语言端点检测效果进行评价,三个参数的定义为[13]
其中,M表示检测出的正确语音分割点数,A表示检测出的总分割点数,N表示实际语音分割点数。一般地,PRC、RCL、F值越大,表明算法的效果越好。分别利用双门限法和本文算法对含噪语言进行端点检测的效果评价结果如表1所示。
表1 第1组实验的检测效果评估结果
由表1可知,在第1组实验中,对于添加三种不同噪声的语音,本文算法的PRC、RCL、F值都要明显大于双门限法,这表明本文算法的语音端点检测效果明显优于双门限法。
第2组实验将时长为4s的纯净男声语音“我国的地势,西北高,东南低”分别添加信噪比为0dB的white噪声、volvo噪声、pink噪声,分别利用双门限法和本文算法对含噪语言进行端点检测的结果如图3所示,其中实线表示语音字节的起始点,虚线表示语音字节的终止点。
图3 第2组实验的结果对比
由图3可知,本文算法的语言端点检测效果也要明显好于双门限法。为了定量比较双门限法与本文算法,分别利用PRC、RCL和F值对两种算法进行效果评价,结果如表2所示。
表2 第2组实验的检测效果评估结果
由表2也可知,在第2组实验中,对于添加三种不同噪声的语音,本文算法的语音端点检测效果优于双门限法[13]。
本文将子空间降噪算法与双门限法结合起来,使得双门限端点检测算法在含有噪声的环境下也能正常检测,该算法从语音降噪和特征提取两方面很好的解决了不同环境噪声的语音端点检测问题。实验结果表明,本文算法提高了声源定位中语音端点检测的准确率和查全率,相较于双门限端点检测算法,其准确性更高。