张 涛,刘 阳,任相赢
天津大学 电气自动化与信息工程学院,天津 300072
语音端点检测是指在噪声环境中区分语音段和非语音段,是语音编码、语音增强和语音识别等语音信号处理领域的关键技术。目前,语音端点检测方法主要可以分为两大类:基于特征的方法[1]和基于机器学习与模式识别的方法[2-4]。
20 世纪90 年代初,匹兹堡大学的Crippa 等人创造性地将人工神经网络算法应用于语音端点检测。2017 年,文献[5]提出了基于深度神经网络(deep neural network,DNN)综合分析信号幅值相位信息的端点检测算法,相比基于信号幅值的DNN算法,其错误率大大降低。文献[6]提出了一种基于深度神经网络的语音端点检测方法,该算法同时结合维特比算法,在复杂噪声环境下取得了较好的检测效果。但是基于神经网络的端点检测算法普遍存在训练速度慢,计算复杂度大的问题。
而基于特征的方法因其简单、快速等优点而得到广泛的研究和应用。早期用于语音端点检测的特征主要有:短时能量、平均过零率[7]、谱熵[8]和倒谱距离[9]等。这类方法在高信噪比环境中的检测效果较为理想,但在低信噪环境中的检测性能会急剧下降。为了提高算法的抗噪声性及鲁棒性,相关学者提出了一系列新的方法。如文献[10]提出一种噪声抑制的语音端点检测方法,首先对信号进行语音增强,除去信号中的噪声,然后进行特征提取与检测判决,提升了算法的抗噪性。文献[11]提出了一种融合Fisher线性判别和Mel频率倒谱系数的语音端点检测方法,提升了算法在不同的噪声环境与信噪比下的检测准确率。文献[12]通过融合临界频带谱熵与频域差值能量,提出一种新的能量熵系数,提升了算法的噪声适应性和低信噪比下的鲁棒性。上述方法多是基于语音的短时特征,并未充分考虑语音的长时变化信息。
为了更好地利用语音的长时特性,Ghosh等[13]提出了一种基于长时段信号变化率(long-term signal variability,LTSV)特征的检测方法。该方法具有较强的噪声适应性,并且在极低信噪比(-10 dB)下仍可以有效地区分语音段和非语音段。文献[14]提出了一种长时段信号谱平坦度(long-term spectral flatness measure,LSFM)特征,通过测度长时段语音在不同频带的谱平坦度来区分语音和噪声,提升了在嘈杂人声(babble)与机枪(machine gun)等非平稳噪声环境下的检测准确率及在不同噪声环境下的鲁棒性。虽然上述两种方法在不同噪声环境下均有较好的鲁棒性,但在低信噪比下的检测性能仍有提升的空间,尤其对于babble和machine gun这两种非平稳噪声。
为了进一步提升算法在不同噪声环境下的鲁棒性,特别是提高检测算法在babble 和machine gun 等噪声环境下的检测性能,本文提出了一种基于长时信号功率谱变化(long-term power spectrum variability,LPSV)的特征。使用阈值判决的检测方法检验此特征在babble和machine gun等非平稳噪声环境下的语音端点检测准确率,并对比了本文提出的LPSV特征和传统的LTSV以及LSFM特征的检测性能。
由于语音信号与噪声信号功率谱的变化存在较大差异,通常情况下,语音信号功率谱的非平稳度远大于噪声。因此,本文提出了一种LPSV 特征,该特征准确地反映了信号的功率谱变化特性,可以有效地区分语音和噪声。
定义1(LPSV)LPSV定义为表征长时信号功率谱变化的参数,由输入信号x(n)的当前帧及其之前R-1 帧信号的功率谱共同决定,反映了信号的功率谱在过去R帧的非平稳度,具体计算过程如下:
式中,Lx(m)表示第m帧信号的LPSV特征参数,NFFT代表傅里叶变换点数,表示过去R帧信号在第k个频点处的功率谱变化程度,可通过计算过去R帧信号中任意两帧信号在第k个频点处的功率谱变化量的平均值得到,相应计算公式如下:
式中,Sx(i,wk)表示第i帧信号在频率wk的功率谱,其可利用经典的周期图法计算信号的短时离散傅里叶变换求得,计算公式如下:
式中,NW表示每帧数据长度,NSH表示每帧数据移动长度,h(l)表示长度为NW的窗函数。
若噪声信号为平稳噪声N(n),理想情况下噪声的功率谱不会随着时间发生变化,因此对于任意的i和wk,SN(i,wk)均为定值。若假定SN(i,wk)=σk,则依据式(2)可得,,则有LN(m)=0。若输入信号x(n)为含有加性平稳噪声的带噪语音信号,即x(n)=S(n)+N(n),假设语音与噪声不相关,则输入信号的功率谱Sx(i,wk)=SS(i,wk)+σk,其中SS(i,wk)表示纯净语音信号的功率谱,则依据式(2)可得:
若噪声信号为非平稳噪声,其频谱会随着时间而变化。此时LN(m)由非平稳噪声的类型及其功率谱变化特征决定。若输入信号为含有加性非平稳噪声的带噪语音信号,则输入信号的功率谱为Sx(i,wk)=SS(i,wk)+SN(i,wk),其中SN(i,wk)表示非平稳噪声的功率谱,则依据式(2)可得:
语音信号的频带主要分布在500~4 000 Hz,因此这里仅统计500~4 000 Hz 对应频点的LPSV 特征参数。
此时:
首先实验分析在不同噪声环境下,不同R值对LPSV参数的影响。所用纯净语音为从TIMIT[15]语音库中随机挑选的80个句子(8个说话人,4男、4女,每个说话人对应10个句子,采样频率FS=16 kHz)。噪声选自NOISEX-92[16]噪声库,每种噪声均经过重新采样,重采样后的采样频率为16 kHz,保证与TIMIT语音库中语音采样频率相同。实验中的参数设置:帧长NW=512,帧移NSH=NW/2=256,窗函数h(l)选择汉明窗,傅里叶变换点数NFFT=512,相应kd=16,ku=128。这里利用最优可分类比例(optimal classification proportion,OCP)表征LPSV 特征参数对噪声和语音的区分性能:
其中,MCPmin表示最小的误分类比例(misclassification proportion,MCP),误判比例包括将噪声误判为语音的比例和将语音误判为噪声比例。最优可分类比例越大,说明对语音和噪声的区分性能越好。
Fig.1 LPSV with different R图1 不同R值的LPSV
在0 dB 的white 噪声环境下,不同R值对应的噪声和含噪语音的LPSV特征参数分布如图1所示。为了更好地比较两者的区别,将LPSV 取对数。从图1可以看出,对于white噪声,lgLPSV较小,且随着R值的增加,分布越来越集中。这是因为white 为平稳噪声,其功率谱不随时间变化。当R=5 时,lgLPSV主要的分布区间为[0.750,0.920],R=15时为[0.790,0.880],R=30 时为[0.820,0.870],说明随着R值的增加,lgLPSV的分布越趋于稳定,而LPSV 特征参数也越准确地反映white噪声的频谱变化特性。对于含噪语音,lgLPSV分布范围较大,且取值明显大于white噪声。这是因为语音为非平稳信号,功率谱会随着时间而发生较大改变。从图1 还可以看出,R值越大,OCP 越大,说明随着R的增加,LPSV 特征参数对于噪声和语音的区分性能越来越好。
在0 dB不同噪声环境下,R=25 时,噪声和含噪语音的LPSV特征参数分布如图2所示。从图中可以看出,LPSV 在white 和pink 两种平稳噪声环境下的OCP 明显大于babble 和machine gun 两种非平稳噪声,说明LPSV 在平稳噪声环境下的检测性能更好。这是因为平稳噪声的功率谱不随时间发生变化,与语音频谱变化的差异性更大。对于babble 噪声,lgLPSV主要分布区间为[0.4,1.3],分布范围明显大于white 噪声的[0.80,0.88],主要是因为babble 为典型的非平稳噪声,在不同时间和频点的频谱差异较大。在babble噪声环境下的区分效果相对较差,OCP仅为84.8%,明显低于white 噪声环境下的97.9%。machine gun噪声的lgLPSV分布范围最广,主要区间为[-4.5,0.5],这是因为machine gun噪声中每次枪声后有较长时间间隔,由于此间隔是静音段,没有频谱变化,因此静音段的lgLPSV较小。
本文采用阈值判决的方法进行语音端点检测,基于LPSV的语音端点检测算法结构框图如图3。具体步骤如下:
(1)对输入信号进行分帧加窗(汉明窗),并通过傅里叶变换求得信号功率谱。
(2)统计每帧信号的LPSV特征值Lx(m),利用开始阶段的背景噪声信息初始化阈值Tinit。
Fig.2 LPSV in different noise conditions图2 不同噪声环境下的LPSV
Fig.3 System block diagram of voice activity detection图3 语音端点检测系统框图
(3)利用Lx(m)进行阈值判决,判决当前R帧信号中是否含有语音帧,若Lx(m)大于判决阈值,表示含有语音帧,此时Dm记为1,否则表示不含语音帧,Dm记为0。
(4)利用过去80 帧信号的阈值判决结果对判决阈值进行自适应更新。
(5)利用Dm参数为当前目标帧进行投票判决。如图4,对于包含目标帧信息的R帧阈值判决,若超过80%的结果为包含语音帧,则判决目标帧为语音帧,否则为噪声帧。
为了克服传统固定阈值方法环境适应性较差的缺点,本文采用了阈值自适应方法。设计两个缓冲器BN(m)和BS+N(m),分别存储过去80帧(约1 s)中判决为噪声帧和语音帧的LPSV 特征值。阈值自适应公式如下:
其中,α为权重值。仿真实验中假设开始50 帧为背景噪声,据此统计噪声信息并初始化阈值,实验中的初始阈值Tinit通过式(12)计算。其中μN和σN分别表示背景噪声LPSV特征值的平均值和标准差,p为加权系数,通过仿真实验,p=3 时效果最佳。
由于统计了信号的长时段特征,因此进行端点检测判决时需要考虑前后帧的信息。检测判决如图4所示。当前目标帧为第m帧,此时的LPSV特征值Lx(m)由当前帧及其前R-1 帧信号共同决定。若Lx(m)大于此时阈值T(m),说明当前R帧信号中含有语音帧,此时Dm记为1,否则记为0。则对于当前目标帧,共参与了R次阈值判决,结果分别为Dm,Dm+1,…,Dm+R-1,若这R次阈值判决中超过80%的结果为包含语音帧,则判决当前目标帧为语音帧,否则为噪声帧。
Fig.4 Schematic diagram of voting decision图4 投票决策示意图
语音信号选自TIMIT语音库,包括20个说话人,10男、10女,每个说话人对应10个句子,并对每个句子人工标注端点(0 代表噪声段,1 代表语音段)。由于TIMIT中句子较短(约3.5 s),且大部分为语音,因此实验中在每个句子前添加1 s 的静音段,以便于统计噪声的特征参数并初始化判决阈值。噪声选自NOISEX-92 噪声库,这里选用white、pink、babble 和machine gun四种噪声。并分别在信噪比为-5、0、5和10 dB的噪声环境下测试算法性能,这里将检测准确率[14]作为性能指标。
其中,N1,1和N0,0分别表示语音帧和噪声帧被正确分类的帧数。
从TIMIT 语音库中随机挑选两段语音,在0 dB噪声环境下的检测结果如图5 所示。其中(a1)、(b1)、(c1)和(d1)分别表示添加0 dB 的white、pink、babble 和machine gun 噪声后的带噪语音波形图。(a2)、(b2)、(c2)和(d2)表示对应的语音端点检测结果。从图中可以看出,在white 和pink 两种平稳噪声环境下的检测性能优于babble和machine gun两种非平稳噪声,这是因为在非平稳噪声环境下,LPSV 特征参数有所起伏,导致检测性能有所降低。
在不同信噪比的噪声环境下,分别统计了基于长时特征LTSV、LSFM和LPSV的语音端点检测方法在不同噪声类型下的准确率,如表1和图6所示。从表1中可以看出,在white和pink噪声环境下,三种基于长时特征方法检测性能比较接近,基于LPSV的语音端点检测准确率相较于其他两种方法的准确率提高1%左右。随着信噪比的降低,基于LPSV 的语音端点检测的优势逐渐明显。在machine gun和babble噪声环境下,基于LPSV的语音端点检测准确率明显优于其他两种方法,在babble噪声环境下,基于LPSV的语音端点检测准确率相较于其他两种方法平均高出2.4%;在machine gun噪声环境下,基于LPSV的语音端点检测准确率相较于其他两种方法平均高出11.8%。
Table 1 Accuracy of different methods表1 不同方法的检测准确率
Fig.5 Voice activity detection results in different noise conditions图5 不同噪声环境下的语音端点检测结果
Fig.6 Statistical graph of accuracy of different methods图6 不同方法的准确率统计图
本文在对比分析语音和噪声的频谱变化特征的基础上,提出了一种基于长时信号功率谱变化(LPSV)的语音特征,并对此特征在语音端点检测领域的应用进行了验证。相比于LTSV 和LSFM 特征,基于本文提出的LPSV 特征的语音端点检测的准确率有明显提升,特别是在babble 与machine gun 这类非平稳噪声环境下的检测准确率。但在长时段下对语音信号分析,会造成一定的判决延迟,因此需要在检测性能与检测延迟之间选择一个较理想的折中方案,这也是下一步研究的重点。同时,将本文提出的特征用于更加有效的方法中,提高语音端点检测准确率也是未来的工作重点。