黄石磊,刘 轶,程 刚
(1. 北京大学 信息科学技术学院,北京 100871;2. 深港产学研基地,广东 深圳 518057)
在语音识别(Automatic Speech Recognition, ASR)系统中,特别是实际的语音识别系统中,检测集外词(Out-Of-Vocabulary OOV)并进行相应的操作是提高识别系统鲁棒性和准确性的重要方法之一。集外词也称集合外词或者未登录词。例如,在基于语音识别的地名查询系统中,用户可能问到不在系统提供的列表之内的地名,或者可能说了一句不相关的话或者出现了一段噪声,虽然识别器总可以找到最相近的识别结果,但是一个友好的系统应该对这种提问做出特殊的响应,例如,提醒用户重新输入。现有的集外词拒绝技术主要有两类:一类是基于显式垃圾模型或者明确垃圾模型(Explicit Garbage Model, EGM)[1],它在形式上有一个特殊的声学模型,用来描述所谓无关语音,这个模型形式上和系统中其他的声学模型一致;还有一类不需要显式垃圾模型,而直接使用语音识别过程中的某种输出,经过一定的运算进行判断,如在线垃圾模型(Online Garbage Model, OGM)[2]。一般来说,显式垃圾模型是难以设计和建模的,因为理论上需要对已有模型描述的语音单元之外的“所有”声音进行建模,近似一个“开集”。因此很多系统上使用的是第二类方法,实际上也需要对语音识别过程中的某种输出建立模型,简单的采用可以阈值判断。
对于集外词拒绝的问题,也常常使用置信度(Confidence Measure)来描述,已经有很多相关的文献对此进行研究。支持向量机(Support Vector Machine, SVM)[3]由于其较为优秀的泛化能力,被很多研究人员用于置信度计算[4-6]。在本文的工作中,使用OPD信息用来计算置信度,并且使用SVM来训练针对每个音子的单独的置信度函数。本文提出的方法中,获得输出概率分布OPD不需要额外的显式垃圾模型。并从每个音子的置信度得分基础上计算词的置信度得分,然后进行拒绝或者接受操作。
本文的第2节介绍输出概率分布,第3节介绍基于OPD的OOV拒绝方法,第4节和第5节分别介绍实验设置和结果,最后第6节为结论。
本文中所用语音识别器是用手持设备上针对孤立词识别的识别器(可以扩展到其他的识别器)。在这个识别系统中,使用非特定人(Speaker independent)的连续分布HMM。特征采用12维MFCC系数加能量并提取差分特征,组成26维的特征矢量。基本声学模型单元为音素,每个音素具有3个从左往右非跳转的状态,每个状态8个高斯混合成分。一共使用50个上下文无关的音素模型以及静音模型共51个基本模型,这些模型从863汉语连续语音库中训练得来。
本文中识别系统整个识别过程分为两个阶段: 第一阶段的一个基于HMM识别器(解码器)提供基本的识别信息,包括1-best候选词(Hypothesis,也称为假想命中)和每个音子/音素的边界,以及对于1-best候选词给定的音子边界的所有的可能的音子/音素的概率得数。在第二阶段,从前一步骤的输出中计算音子/音素置信度,从而得到整个词的置信度得分,然后决定“接受”或者“拒绝”该假设。
图1 计算输出概率分布矢量
如前所述,在第一阶段解码过程中,可以得到1-best候选词和音素的概率得分以及边界。在1-best候选词W中音素PHi的输出概率分布矢量v0定义为:
其中p0是音素PHi在候选词W中音的对数概率得分,pj(j=1, 2, …N,N表示HMM库中模型的序号,包括静音模型)是从第j个音素HMM模型得到的对数概率。从上述OPD矢量的基本定义可以看出,v0只需要在通常音子/音素的HMM模型,而不需要显式的垃圾模型。图1表示了如何获得OPD分布矢量。
如果使用上下文无关的音子模型,p0和某个pj是一样的。由于pj是使用单音子得到的,数量一般比较少,例如本文的系统中,使用音素作为模型单元,共有50个音素(不包括静音模型)。如果使用上下文相关的模型例如三音子tri-phone,仍然可以使用单音子得到OPD,则p0对应的三音子的中心音素和某个pj是对应的。
进一步地,根据音子的时间长度对矢量v0进行归一化,得到矢量v1:
其中L(PHi)是PHi的帧的数目。
利用OPD的模型可以描述一个语音片段和已经训练好的各个音子之间的关系。理论上,OPD模型也可以扩展到三音子的情况。和常见的在线垃圾模型,特别是利用N-best的在线垃圾模型相比,OPD模型首先利用了所有可能的音子的信息。其次i由于N-best均是经过排序后的概率值所形成的矢量, 实际已经无法区分1-best到底和哪些音子
具有相似性。因此OPD矢量相对经过排序的N-best概率矢量含有更多的信息。如果我们将OPD矢量中各个元素降序排列,就和N-best得分矢量很类似。那么在线垃圾模型就可以使用如下的矢量进行致信度计算:
在识别结果验证阶段(Verification),使用致信度得分来决定第一阶段的识别结果是集内词还是集外词。在本文中,使用SVM的拟合置信度计算函数。一般地,可以将置信度函数定义为:
其中,L(w) 是词w的长度(帧数),f(·) 是置信度函数,同时也是一个 SVM 分类器,求和范围i是词w所包含的各个音子。
考虑具有m个训练数据的训练集,需要区分为两个不同的类:
其中xi∈Rn是某种特征矢量yi∈{-1,+1}类别标记,这些数据具有一个超平面的分类面,满足w·x+b=0。在所有可能的分类面中,具有最大分类间隔的那个分类面是最佳的。
对于一个给定的核函数,SVM的分类器由式(6)式(7)求得:
在语音识别系统中常常使用置信度技术来估计识别结果是否准确[7-9]。为了计算置信度得分,使用式(4)得到词的置信度得分,类似的也可以得到音子和句子的置信度得分。在得到置信度以后,可以设定一个阈值来决定接受或者拒绝某个候选结果:
如果将矢量v1(PHi)看成SVM分类器的输入矢量,来获取判断函数f(·),即:
那么可以利用式(7)中class(x)来判决。进一步地,可以使用D(x(PHi))来计算置信度的值,并且可以得到:
这样就可以利用式(8)来判决接受/拒绝。
以上可以看出,除了训练识别器用的HMM模型所需的语音数据库,还需要额外的数据库来训练这些SVM分类器(判决函数)。考虑到不同的音子(音素)的输出概率分布差异,因此对每个音子单独训练一个SVM模型。但是使用一个统一的阈值来决定结果是否被接受。式(10)修改为式(12)。
f(x(PHi))
+b0(PH0)
(12)
为了评估本文提出方法的性能,我们针对非特定说话人汉语孤立词任务进行了实验。语音数据有60个说话人的25 680条语音。语音长度包括从4到11个音素。这个数据库被分为两个部分: 其中一个部分用于训练SVM,记为DBTest;另一部分用于测试,记为DBEvl。每个部分包括30个说话人的12 840条语音。每个部分50个目标词,其余的为集外词。两个集合种的说话人,以及词表(目标词以及集外词)都完全不同。第一阶段识别器的HMM模型从863汉语普通话语音数据库训练得来。
为了便于比较不同组实验的结果,我们使用错误接受率(False Acceptance Rate,FAR) 和错误拒绝率(False Rejection Rate,FRR)的曲线来表示系统的操作特性。并在FRR-FAR所形成的检测错误折中(Detection Error Tradeoff,DET)曲线上得到等错误率(Equal Error Rate,EER)。
在基线系统实验中,使用了在线垃圾模型。其中候选词的N-best (包括1-best,4-best 和51 best) 音素的概率值用来计算置信度得分,并且使用Fisher区分分析(FDA) 来优化置信度函数f(·)。对于1-best的情况,帧平均似然概率值被直接当成置信度得分。在使用OPD和SVM来计算置信度的时候,式(1)中的矢量分两种情况,其中一部分实验的矢量包含p0,另一部分实验中p0被忽略。
在基线系统和本文提出的系统中,首先使用HMM来对DBTest中每个样本进行识别,通过语音识别解码器,得到最佳候选词的每个音素的OPD矢量或者是N-best音素概率矢量。由于DBtest中每条语音的结果都是已知的,因此识别结果可以标记
为应该拒绝或者接受的。这样每个音素的OPD模型就可以使用标准的FDA或者SVM训练过程得到。而在基线系统中,每个在线垃圾模型使用FDA方法得到变换矩阵(对应着一个置信度函数)。
在测试集上,使用同样的HMM解码器获得OPD矢量或者N-best音素概率矢量。然后这个OPD矢量参考式(10)中的定义,使用对应的SVM分类器来计算置信度(实验中也采用了不使用SVM,只使用FDA的求置信度的方式),N-best音素概率矢量使用对应的置信度函数进行置信度计算。最终获得整个候选词置信度得分,这里使用算术平均从每个音素的置信度分值计算词的置信度。
图2所示是不同方法的DET曲线,表1所示是不同方法对应的EER。
图2a 在线垃圾模型和OPD模型(SVM使用线性核函数)DET曲线图2b 在线垃圾模型和OPD模型(SVM使用RBF核函数)DET曲线
从图2和表1可以看出,在基线系统的实验中,在线垃圾模型比直接使用1-best得分可以获得更低的EER,即使是仅仅采用4-best的情况下EER相对降低了26.1%。随着N-best的数量的增加,EER从4-Best的31.4%下降到31.0%,相对下降大约1.2%,增加N-best效果不是很明显。
比较而言,当使用OPD矢量和FDA来计算置信度值时,EER可以获得进一步的降低。特别是当OPD矢量包含p0的情况下,和51-best的结果相比,EER有明显降低。进一步的可以使用SVM来计算OPD为输入的置信度,当在比较不同SVM分类器的核函数的情况,可以看到线性核函数条件下和直接使用FDA很接近,但是使用RBF核函数比线性核函数的实验获得了略低的EER。
总的来说,使用OPD和SVM情况下: 在OPD矢量不包含p0时, 所得EER比4-best的在线垃圾模型略低,略差于51-best的情况;当OPD矢量包含p0时,OPD矢量和51-best的在线垃圾模型相比,
表1 不同方法的EER比较
进行置信度计算的输入均是一个51维的矢量。可以看到在使用RBF核函数的情况下,OPD矢量可以获得27.6%的EER值,比51-best的情况相对下降了11.0%。
同时可以看出,本文提出的方法,训练好的OPD模型都是和词表无关的。
本文提出了一种计算置信度的方法,使用OPD矢量作为输入,并采用SVM计算置信度。这个方法在对候选结果验证的时候不需要额外的声学模型。在非特定说话人汉语孤立词识别实验中表明所述方法可以比传统的在线垃圾模型获得更好的性能,而运算量不会显著增加,同时训练好的OPD模型和词表无关,并可以用于其他的识别任务。
在将来的工作中,将此方法扩展到上下文相关的声学模型上,同时所述方法也可以和其他的置信度计算方法结合起来以获得更好的效果。
[1] C C Broun, W M Campbell, Robust Out-of-Vocabulary Rejection for Low-Complexity Speaker in Dependent Speech Recognition[C]//Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing 2000, 2000,3: 1811-1814.
[2] Tepperman J, Narayanan S, Using Articulatory Representations to Detect Segmental Errors in Non-native Pronunciation[J], IEEE Trans. On Audio, Speech, and Language Processing, 2011, 19(8): 8-22.
[3] V Vapnik, Statistical Learning Theory[M], New York, U.S., John Wiley and Sons Inc., 1998.
[4] Benayed et al, Confidence measures for keyword spotting using support vector machines[C]//Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing 2003, 2003, 1: 588-591.
[5] Takehito Utsuro et al, Confidence of agreement among multiple LVCSR models and model combination by SVM[C]//Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing 2003, 2003, 1, I-16-19.
[6] Haiyang Li, Jiqing Han, Tieran Zheng, et al. Mandarin keyword spotting using syllable based confidence features and SVM[C]//Proceedings of 2nd Intelligent Control and Information Processing (ICICIP), 2011,1: 256-259.
[7] 孙成立,刘刚,郭军. 中文语音确认中子词置信度性能的研究[J].中文信息学报,2008,22(2):106-109.
[8] 孟莎,刘加. 汉语语音检索的集外词问题与两阶段检索方法[J].中文信息学报,2009,23(6):91-97.
[9] Dong Yu, Jinyu Li, Li Deng. Calibration of Confidence Measures in Speech Recognition[J]. IEEE Transactions on Audio, Speech, and Language Processing, 2011, 19(8): 2463-2471.