活动语音检测的目的是将一段包含语音的信号分为语音段和非语音段。在实际应用过程中,由于噪声的影响使得活动语音检测(voice activity detection,VAD)的检测非常困难。VAD方法可以分为2大类: 有监督的方法和无监督的方法[1]。在说话人识别中,传统的有监督方法包括Gauss混合模型(GMM)的方法[2]以及自动语音识别(automatic speech recognition,ASR)的方法[2-3]。这些方法都需要提前训练语音与非语音的Gauss混合模型或者隐Markov模型(HMM),过程比较复杂,并且需要采用与测试集匹配的训练数据才能取得好的性能。此外,有监督的VAD方法需要逐帧地计算相似度,对于实时性要求很高的任务来说有很大的困难。
非监督的VAD方法可以有效地克服上述问题,因此在大部分的任务上被广泛的应用。非监督的方法主要包括2个步骤: 提取特征参数和通过门限及规则区分语音帧与非语音帧。为了得到较好的性能,特征参数在语音帧与非语音帧间必须具有很强的区分性。短时能量[4]由于简单直观而成为被最广泛应用的声学参数,其他常用参数有短时过零率、 音高和谱熵等[5-6]。判决中需要确定参数的门限来将语音段与非语音段分开,这里的门限可以是固定的或者自 适应的[7-8]。一般来说,非监督的方法在噪声环境中比有监督的方法略有不足。在带噪的语音上,通常会采用Wiener滤波器或者其他的语音增强的方法来进行前端处理后再进行VAD[9-10]; 但是与此同时,也增加了VAD算法的复杂性。
美国国家标准与技术研究院(National Institute of Standard and Technology,NIST)从1996年起每年举办一次说话人识别评测(speaker recognition evaluations,SRE),2006年后改为每两年举行一次,用来评估当今说话人识别技术的最新进展。该文的实验是在NIST数据库上进行实验的[11-12],NIST SRE语料库涉及到的语音情景范围很广,从非常干净的电话场景语音,到非常嘈杂的面试场景语音; 从人工加噪的语音到真实环境下的语音; 该文希望设计出一种非监督的方法可以处理以上所有的场景。由于大部分的语音是干净的,短时能量成为第一选择; 该文中另外还采用了最大频率分量[7]和短时谱熵2种参数。与短时能量相比,短时谱熵在白噪声中具有很强的活动语音判断能力,最大频率分量对有色噪声具有很强的鲁棒性。由于实际录音背景环境存在很大差异性,这些特征在不同的语音上的分布具有很大的差异,所以对于每段录音中需要采用动态的门限判决阈值来提高VAD的准确性。首先采用K均值聚类(K-mean)算法将每一段语音聚为2类: 语音和非语音,再计算这2类各自中心的均值。在有色噪声存在的情况下,谱熵的均值如果出现不正常的现象,在接下来的过程中将不使用它。最后通过上述的均值可以得到语音相关的门限判决阈值。该文采用一种与文[4]中相似的算法来利用门限检测语音脉冲。为了简化语音脉冲跟踪过程,将多维的语音特征和门限通过线性变换公式转化到一维数值来简化处理。
1 NIST SRE 语料库根据信道类型,NIST SRE 语料库可以分为电话数据、 麦克风数据和面试数据。除SRE 2012年之前的电话录音数据干净容易进行VAD判决之外; 对于其他的语音数据,包括麦克风数据、 面试数据甚至SRE 2012年比赛数据库的电话数据,都是信噪比不定,难以简单判决的,研究人员也没有关于噪声类型的先验信息,根据对NIST数据库的分析,有以下4种噪声干扰的语音数据:
1) SRE 12数据库中的未知信噪比的带噪电话语音。噪声种类包括白噪声、 供暖、 通风、 空调的声音和背景语音。
2) 叠加在周期性背景信号上的面试和麦克风数据。这些信号可以看做是一种有色噪声,这些语音数据上谱熵参数变得不正常。
3) 能量极低的面试数据。这些数据的信噪比非常低,此外,有的数据被非常尖锐的脉冲信号所干扰。
4) 同一信道中出现2个人语音的面试数据。必须采用信道B中的VAD标签来掩盖信道A中干扰人的语音。
2 建议的无监督VAD方法图 1为该文提出的VAD方法的流程框图,包括4个模块:
1) 高通滤波器: 脉冲信号和大部分周期性背景噪声都是低频信号。一个截止频率在300 Hz的高通滤波器可以消除大部分的此类噪声。这个模块是传统的语音信号处理的步骤,不在本文中详细论述。
2) 特征提取器: 语音按10 ms一帧的帧率来提取特征,该文中特征为能量、 最大主频率分量和短时谱熵三维特征。
3) 阈值计算和特征选择: 用K-mean方法将语音与非语音聚为2类,计算其中心的均值。如果谱熵的均值非正常,则不用于接下来的脉冲检测。同时计算下一步语音脉冲检测所需的阈值。
4) 语音脉冲检测: 检测语音脉冲的思路参照文[4]中提出的方法,但是本文采用的是多维特征的方式,需要在文[4]的基础上改进脉冲检测的判决算法。
2.1 特征提取本文方法中采用了3种参数: 短时能量、 最大主频率分量和短时谱熵。这3种参数中,能量参数应用最广,但是鲁棒性不强; 谱熵参数能够有效地在白噪声中检测活动语音; 而最大主频率分量可以在不是很强的有色噪声的情况下取得良好的性能,具有较好的互补性。这些参数都可以通过离散Fourier变换(discrete Fourier transform,DFT)得到,实现起来也较为方便。所有的参数都是在帧的基础上计算得到,帧率为100 Hz。基于DFT的短时频谱可以看做是标准正交基上的系数构成的向量。基于N点DFT的频谱X可以表示为
${{X}_{0}},{{X}_{1}},{{X}_{2}},\cdots {{X}_{N-1}}.$ |
由于语音信号减去了均值,X0始终为0。短时能量可以在时域或频域计算,每一帧语音的能量E可以通过Parseval定理得到。实验中一般采用对数能量,如下:
$E=1\text{g}\left\{ \varepsilon +\frac{1}{N}{{\sum\limits_{i=1}^{N-1}{\left| {{X}_{i}} \right|}}^{2}} \right\}$ |
其中ε是一个小的正常数,目的是防止E为负数,实验中设置为1.0。能量参数在高信噪比的情况下可以表现出很好的性能,但是对噪声非常敏感,随着信噪比的降低,区分能力降低。
一般噪声信号的能量平均地分布在所有的频率上。响音(如元音)包含谐波结构,语音的能量主要集中在共振峰地区,这意味着共振峰处的信噪比明显高于其他部分。在VAD中利用这些共振峰的信息可以取得更好的语音检测性能。但是追踪语音的共振峰是非常困难的,所以采用短时谱的最大主频率分量[7]来代替,并且在NIST SRE的任务上发现这种方法可以取得良好的性能。短时谱的最大主频率分量
$M=\underset{i=1.2,\cdots ,N-1}{\mathop{\arg \max }}\,\left\{ 1\text{g}\left( {{\left| {{X}_{i}} \right|}^{2}}+\varepsilon\right) \right\}.$ |
同样采用对数运算之后的结果作为特征参数。
与最大主频率分量不同的是,基于熵的参数可以很好地描述短时谱的结构,并且在低信噪比的情况下具有非常强的区分能力。语音部分包含谐波结构,所以相比噪声部分看起来更加规律。根据信息学理论,语音部分的熵远远小于噪声部分。
熵可以由频谱得到,首先计算每个频率分量Xi的概率密度
${{P}_{i}}=\frac{{{\left| {{X}_{i}} \right|}^{2}}}{\sum\limits_{k=1}^{N-1}{{{\left| {{X}_{k}} \right|}^{2}}}}.$ |
谱熵
$H=-\sum\limits_{i=1}^{N-1}{{{P}_{i}}1\text{g}\left( {{P}_{i}} \right)}.$ |
当X是白噪声时,H取得最大值; 当X是单一正弦信号时,H取得最小值。根据熵的特性,谱熵参数可以有效地在白噪声或类白噪声中检测活动语音,但在有色噪声中表现不佳。
因此,通过3种不同的特征进行相互补充,保证在不同的噪声情况下都能够有效地检测声音信号是否为语音。
2.2 特征选择和阈值计算根据语音学的知识,一个音节包括3个部分: 音节首(onset)、 音节核(nucleus)和音节尾(coda)。能量主要集中在音节核的部分。图 2是一个语音脉冲的对数能量E和时间相关曲线。Ki{i=1,2,3,4}是能量的阈值,Ai是对应能量门限的起始帧。有4个关键位置点来确定语音的起始终止,Q1(A1,K1)代表语音脉冲初步开始候选,Q2(A2,K3)代表语音脉冲正式开始得到确认,Q3(A3,K3)代表语音脉冲结束初步候选,Q4(A4,K2)代表语音脉冲结束确认。
最大主频率分量M可以获得与图 2相似的图。谱熵的曲线图则刚好相反,谱熵参数在音节核的部分很小,而在其他部分较大。
与之前提到的一样,能量参数对噪声最为敏感,而谱熵参数在有色噪声中无法有效地发挥作用,需要在不同的语音中可以自适应地选择特征参数。此外,不同的语音之间特征的分布有很大的差异。信道的类型、 麦克风离说话人的距离和噪声的种类和信噪比的大小都会对特征产生影响,所以对每段语料用来进行语音脉冲追踪的阈值都应该是独立的。
本文采用K-mean的方法来确定阈值,具体的算法见算法1。
算法1 特征选择和阈值计算
1) K-mean算法进行聚类
将一段语料的3维特征通过K-mean算法聚为语音与非语音2类,并计算聚类后的中心均值。
${{m}_{\text{speech}}}=\left[ {{S}_{\text{E}}},{{S}_{\text{M}}},{{S}_{\text{H}}} \right],{{m}_{\text{noise}}}=\left[ {{N}_{\text{E}}},{{N}_{\text{M}}},{{N}_{\text{H}}} \right].$ |
其中mspeech和mnoise分别代表语音段与非语音段的均值,SE,SM和SH分别代表语音的能量、 最大主频率分量和谱熵3种参数的均值,NE,NM和NH代表非语音的3种参数均值。
2) 特征选择
比较两类的谱熵均值,如果NH-SH>δ,则在后续的步骤中用到谱熵参数;反之,不采用谱熵参数。正常情况下语音段与非语音段的谱熵均值差别较大,在实际的实验中,δ取0.2~0.5之间的数值都对性能影响不是很大,实验中将δ设置为0.3。
如果不采用谱熵参数,返回上一步重新对二维特征进行K-mean聚类并重新计算聚类中心的均值。
3) 计算门限
将多维特征映射到一维的空间上
$\left\{ \begin{matrix} {{T}_{\text{s}}}={{S}_{\text{E}}}+{{S}_{\text{M}}}-{{S}_{\text{H}}},\\ {{T}_{\text{n}}}={{S}_{\text{E}}}+{{S}_{\text{M}}}-{{S}_{\text{H}}}.\\ \end{matrix} \right.$ | (1) |
如果不用谱熵参数,则S
$\left\{ \begin{matrix} {{K}_{1}}={{T}_{\text{n}}}+0.1\left( {{T}_{\text{s}}}-{{T}_{\text{n}}} \right),\\ {{K}_{2}}={{T}_{\text{n}}}+0.2\left( {{T}_{\text{s}}}-{{T}_{\text{n}}} \right),\\ {{K}_{3}}={{T}_{\text{n}}}+0.3\left( {{T}_{\text{s}}}-{{T}_{\text{n}}} \right),\\ {{K}_{4}}={{T}_{\text{n}}}+0.7\left( {{T}_{\text{s}}}-{{T}_{\text{n}}} \right).\\ \end{matrix} \right.$ | (2) |
通过式(2),可以得到阈值用于下面的语音脉冲检测。
2.3 语音脉冲检测得到门限之后,就可以利用这些门限来检测语音脉冲。首先将三维特征通过式(1)映射为一维空间上的值,下文中用F表示。然后定义4个状态{S1,S2,S3,S4},并且根据F的值决定状态间的转换关系如下:
语音脉冲检测的伪代码见算法2。
算法2 语音脉冲检测
初始状态为S1,A1=A2=A3=A4=-1。对一段语料的所有帧进行以下5步:
步骤1 计算每一帧的F值。
步骤2 根据图 3通过F值的变化进行状态的转换。
步骤3 如果状态经过一次完整的循环(S1→S2→S3→S
步骤4 根据以下规则确定语音脉冲的起始与终止。
如果A2-A1<L0,A1是起始帧,否则A2是起始帧;
如果A4-A3<L0,A4是结尾帧,否则A3是结尾帧;
脉冲的时长L=结尾帧-起始帧;
如果Fmax>K4且L>10 帧,也就是100 ms,此脉冲被认为语音信号,否则为非语音信号;
步骤5 结束循环,将初始状态设为S1,A1=A2=A3=A4=-1,回到步骤1。
步骤4中的L
实验集合选择为NIST SRE 2008与2012的核心测试集[11-12]。SRE 2008的核心测试集包含98 776个测试对,8种常见的场景(common conditions,CC)。实验挑选CC1、 CC4、 CC5和CC6来比较新提出的VAD方法与之前的非监督VAD方法的性能,这几个场景包含了所有测试的任务。
NIST SRE 2012 任务与以往的任务有显著的区别。一个重大的变化是测试语音中包含了环境噪声或人工加入的噪声,大大增加了VAD的难度。核心测试集中包含5个常用场景。实验对比了该文提出的VAD方法与有监督的GMM的VAD方法。系统性能评价指标采用等错误率(equal error rate,EER)和最小检测代价(minimal detection cost,MinC)[11-12]。
3.2 特征参数实验中采用39维的感知线性预测(perceptual linear predictive,PLP)特征,后续进行了Gauss规整。
3.3 SRE 2008任务系统配置及实验结果SRE 2008任务的基线采用性别独立的联合因子分析(joint factor analysis,JFA)系统,UBM取 1 024 Gauss数。系统的具体配置与文[13]中相同。这里将该文提出的VAD方法与文[13]的VAD方法进行对比。在文[13]提交的系统中,采用的VAD方法主要如下: 通过谱减法进行语音增强; 将能量作为唯一的声学参数; 通过语料前6 s的信息来设置阈值。2种无监督VAD方法的实验对比见表 1。
与之前提交的系统[13]相比,采用新提出的VAD方法在所有的情景上都取得了一致的提升。在CC5(电话语音训练,非面试的麦克风语音测试)上的提升最为明显,在CC6(电话语音训练和测试)上的性能提升最小。这里的电话语音是干净的,而麦克风语音是带噪的,说明该文提出的VAD方法在噪声环境下检测出的语音段更为准确。
3.4 SRE 2012任务实验配置及实验结果在SRE 2012的任务上采用概率线性区分性分析(probabilistic linear discriminant analysis,PLDA)的方法,实验的具体配置与文[14]中的系统12一致。选取Gauss数为1 024,i-vector维度为600,在PLDA之前采用线性区分性分析(linear discriminant analysis,LDA)降维至400维。
这里将新提出的VAD方法与文[4]中的有监督的GMM方法进行对比。GMM方法具体如下: 采用往年的数据训练语音和非语音的共4个128 Gauss的GMM,特征选择为13维的PLP特征。计算测试语料每一帧与所有GMM的对数似然度,得到语音与非语音的对数似然比。对每一帧进行判断后接一个平滑处理,形成最终的VAD标签。对面试场景数据,获取VAD标签后还需要用B面去掩盖A面。实验结果见表 2。
不同场景 | GMM方法 | 本文提出的方法 | ||
男声 | 女声 | 男声 | 女声 | |
CC1 | 4.20/0.261 | 3.44/0.361 | 4.19/0.236 | 3.48/0.349 |
CC2 | 1.93/0.209 | 1.28/0.210 | 1.72/0.194 | 1.10/0.203 |
CC3 | 4.37/0.108 | 3.21/0.344 | 4.47/0.095 | 2.97/0.280 |
CC4 | 3.33/0.275 | 2.14/0.265 | 3.01/0.305 | 1.99/0.238 |
CC5 | 2.39/0.268 | 2.01/0.296 | 2.31/0.243 | 2.00/0.286 |
通过对比,采用本文提出的VAD方法在绝大多数的场景下都可取得性能的提升。由于GMM模型可以较好地描绘语音与非语音的分布,所以提升并不是十分明显。与GMM的方法相比,本文提出的VAD方法主要是避免了复杂的GMM概率计算,大大降低了运算复杂度。
综合表 1和2的结果,绝大部分的结果都优于文[13-14]的中描述的当年参赛的最佳系统,由于JFA和PLDA是目前采用的主流算法,因此可以认为性能的提升是由前端的鲁棒性处理带来的。
4 结 论本文提出了一种有效地非监督的VAD方法。在NIST SRE 2008与2012上的实验证明了这一方法的有效性。提出的方法需要很少的运算资源。由于提取常用声学特征参数(如: PLP时)需要进行DFT处理,所以能量、 最大主频率分量和短时谱熵这3种参数都可以看作是特征提取的副产品。需要的运算资源仅在K-mean和脉冲检测部分。由于仅仅需要4~5次迭代就可达到收敛,K-mean过程同样非常迅速。除此之外,在VAD之前并不需要语音增强的处理,大大减少了运算复杂度和时间。
[1] | Alam J, Kenny P, Ouellet P, et al. Supervised/unsupervised voice activity detectors for text dependent speaker recognition on the RSR2015 corpus[C]//Proc of Speaker Odyssey 2014, Joensuu, Finland, 2014:123-130. |
[2] | Ferrer L, McLaren M, Scheffer N, et al. A Noise-robust system for NIST 2012 speaker recognition evaluation[C]//Proc of Interspeech 2013, Lyon, France:International Speech and Communication Association, 2013:1981-1984. |
[3] | Colibro D, Vair C, Farrell K, et al. Nuance-Politecnico di Torino's 2012 NIST speaker recognition evaluation system[C]//Proc of Interspeech 2013, Lyon, France:International Speech and Communication Association, 2013:1996-2000. |
[4] | Lamel L, Rabiner LR, Rosenberg A, et al. An improved endpoint detector for isolated word recognition[J]. IEEE Trans on Acoustics, Speech, and Signal processing , 1981, 29 (4) : 777–785. DOI:10.1109/TASSP.1981.1163642 |
[5] | Morales-Cordovilla J A, Ma N, Sanchez V, et al. A pitch based noise estimation technique for robust speech recognition with missing data[C]//Proc of ICASSP 2011, Prague, Czech republic:Institute of Electrical and Electronics Engineers Inc, 2011:4808-4811. |
[6] | Renevey P, Drygajlo A. Entropy based voice activity detection in very noisy conditions[C]//Proc of Eurospeech 2001, Cape Town, South Africa:Institute of Electrical and Electronics Engineers Inc, 2001:1887-1890. |
[7] | Moattar MH, Homayounpour M M. A simple but efficient real-time voice activity detection algorithm[C]//Proc of EUSIPCO 2009, Glasgow, United Kingdom:European Signal Processing Conference, EUSIPCO, 2009:2549-2553. |
[8] | Li Q, Zheng J, Tsai A., et al. Robust endpoint detection and energy normalization for real-time speech and speaker recognition[J]. IEEE Trans on Speech&Audio Processing , 2002, 10 (3) : 146–157. |
[9] | Kinnunen T, Rajan, P. A practical, self-adaptive voice activity detector for speaker verification with noisy telephone and microphone data[C]//Proc of ICASSP 2013, Vancouver, BC, Canada:Institute of Electrical and Electronics Engineers Inc, 2013:7229-7233. |
[10] | Yu H B, Mak M W. Comparison of voice activity detectors for interview speech in NIST speaker recognition evaluation[C]//Proc of Interspeech 2011, Florence, Italy:International Speech and Communication Association, 2011:7229-7233. |
[11] | NIST. The NIST year 2008 speaker recognition evaluation plan[EB/OL].[2008-04-02]. http://www.itl.nist.gov/iad/mig/tests/sre/2008/sre08_evalplan_release4.pdf. |
[12] | NIST. The NIST Year 2012 Speaker Recognition Evaluation Plan[EB/OL].[2012-05-30]. http://www.nist.gov/itl/iad/mig/upload/NIST_SRE12_evalplan-v17-r1.pdf. |
[13] | Guo W, Long Y H, Li Y J, et al. iFLY system for the NIST 2008 speaker recognition evaluation[C]//Proc of ICASSP 2009, Taipei, China:Institute of Electrical and Electronics Engineers Inc, 2009:4209-4212. |
[14] | Rahim S, Lee K A, Tomi K, et al. I4U submission to NIST SRE 2012:A large-scale collaborative effort for noise-robust speaker verification[C]//Proc of Interspeech 2013, Lyon, France:International Speech and Communication Association, 2013:1986-1990. |