飞 龙,高光来,鲍玉来
(1. 内蒙古大学 计算机学院,内蒙古 呼和浩特 010021;2. 内蒙古大学图书馆,内蒙古 呼和浩特,010021)
基于音素混淆网络的蒙古语语音关键词检测方法的研究
飞 龙1,高光来1,鲍玉来2
(1. 内蒙古大学 计算机学院,内蒙古 呼和浩特 010021;2. 内蒙古大学图书馆,内蒙古 呼和浩特,010021)
蒙古语语音识别系统的词表很难覆盖所有的蒙古文单词,并且随着社会的发展,蒙古文的新词和外来词也越来越多。为了解决蒙古语语音关键词检测系统中的集外词检测问题,该文提出了基于音素混淆网络的蒙古语语音关键词检测方法,并采用音素混淆矩阵改进了关键词的置信度计算方法。实验结果表明,基于音素混淆网络的蒙古语语音关键词检测方法可以较好地解决集外词的检测问题。蒙古语语音关键词检测系统采用改进的置信度计算方法后精确率提高了6%,召回率提高了2.69%,性能得到明显的提升。
蒙古语;关键词检测;集外词;混淆网络;音素混淆矩阵
近年来,随着计算机技术和多媒体技术的飞速发展,蒙古语语音资料在教育、影视、文化等诸多方面的应用越来越广泛,数量急剧增加,已形成了丰富的民族文化资源。如何对这些语音文档进行有效地检索和分类成为了蒙古文信息处理领域中的一个热点问题。语音关键词检测技术是根据用户给定的查询,从指定的语音数据集中返回与其对应的语音片段。
在之前的研究中,我们提出了基于词混淆网络(Confusion Network, CN)的蒙古文语音关键词检测方法[1],该方法分为两个阶段进行处理。第一阶段为识别阶段,通过蒙古语大词汇量连续语音识别(Large Vocabulary Continuous Speech Recognition, LVCSR)系统[2-3]把语音识别成文本;第二阶段为检测阶段,从识别的文本中查询对应关键词,并返回结果。蒙古语是有粘着性特点的语言,蒙古文单词是由词根缀加多个后缀组成,而所有的词根和后缀可以组合成大规模的蒙古文单词。现有的蒙古语LVCSR系统的发音词典无法包含所有的蒙古文单词。并且,随着社会的发展,蒙古文的新词和外来词也越来越多。因此,蒙古文集外词(Out of Vocabulary,OOV)的检测问题成为了蒙古语语音关键词检测系统亟待解决的关键问题。
汉语LVCSR中的集外词可以以词(或单字)的合成词形式被识别出来,因此在汉语语音识别任务和语音检索任务中,集外词问题往往被忽略而很少提及。英语语音检索任务中集外词问题一直是研究热点之一,他们主要采用了子词或音素的识别形式解决集外词的检测问题[4-7]。
为了解决蒙古文集外词的检测问题,本文提出了基于音素混淆网络的蒙古语语音关键词检测方法。蒙古语语音文件被解码成音素形式时正确识别率会变得很低,并会出现很多不符合韵律学的发音序列。为了提高系统的精准率和召回率,本文采用了音素混淆矩阵(Phoneme Confusion Matrix, PCM)来计算关键词的置信度得分,并得到了较好的实验结果。
本文其余部分组织如下: 第2节介绍了蒙古语发音特点;第3节详细描述了基于音素混淆网络的蒙古语语音关键词检测方法;第4节为实验部分;最后为结论部分。
蒙古文是拼音文字,它的字母表由8个元音字母和27个辅音字母组成[8]。在蒙古语中,语音最小单位为音素,常用的口语发音音素共64个,其中元音音素37个,辅音音素27个,如表1所示。在蒙古语口语中,元音音素可分为两类: 一类是独立元音,这类元音音素发音比较清晰,比较完整,而且往往也是一个词的重音所在,独立元音包括处于单词第一音节的短元音以及处于单词任意位置的长元音和复合元音。另一类是依附元音,这类元音音素通常发音不够清晰,不够完整,它包括处于非第一音节的所有短元音。
表1 蒙古文音素表
基于音素混淆网络的蒙古语语音关键词检测系统的框架如图1所示。首先,利用蒙古语自动语音识别(Automatic Speech Recognition, ASR)系统将蒙古语语音文件进行解码,并生成音素网格文件;其次,将音素网格文件转化成混淆网络结构的文件,并建立索引;最后,采用蒙古文字母到音素转换系统[8]将关键词转换成对应的音素串,并利用音素串从索引库中进行检测。
图1 基于音素混淆网络的蒙古文关键词检测系统框架
3.1 ASR解码
本文采用蒙古语ASR系统对蒙古语语音文件进行了解码。蒙古语ASR系统的声学模型采用了词内上下文相关的三音素模型,并利用决策树进行了捆绑,最后采用CHMM混合高斯模型进行了训练。训练语言模型时,首先将训练文本中的全部蒙古文单词转换成了音素串形式,并用n-gram语言模型进行了训练。语言模型的平滑算法采用了Kneser-Ney平滑算法。最后,利用声学模型和语言模型将蒙古语语音文件解码成n-best音素网格文件。
3.2 音素混淆网络的生成和索引的建立
最大似然识别结果(最优路径)有比较高的错误率,但网格中往往包含了大量正确的补充信息。网格的结构图如图2所示。网格主要由节点和边组成,每一个节点(Node)表示一个时间点,每一条边(Arc)表示一个识别单元假设(Hypothesis: 音素),边将不同时刻的节点连接起来,形成一个有向非循环图。
图2 网格结构图
音素网格可以用来进行语音关键词检测,然而,网格具有结构复杂,占用存储空间大的缺点。Mangu等人[9]提出的混淆网络(Confusion Network)是一种新颖的语音识别多候选存储结构,是对网格进一步处理的结果,可以看作是一种简化的线性网格结构,比网格占用存储空间更小,研究表明混淆网络能获得比网格更小的词错误率。混淆网络的结构图如图3所示。
图3 混淆网络结构图
为了提高检测速度,本文对生成的音素混淆网络文件建立了索引。音素混淆网络中存在着大量的空弧,所以对索引库进行搜索时必须对空弧也要进行处理。本文建立索引时为了保证混淆网络的完整性,将空弧当成独立的一个音素进行了处理,所以对空弧也建立了对应的索引。对空弧建立索引时,因为空弧只有后验概率得分,没有其他附加信息(如开始时间、持续时间、声学得分和语言模型得分等),所以将其他信息都置为了空。
首先,我们对音素混淆网络建立了前向索引,并根据前向索引建立了逆向索引。逆向索引的结构图如图4所示。
图4 音素逆向索引结构
其中,PhoID为音素的编号,Num表示该音素对应的命中向量个数,FileID为语音文件编号,SliceID为混淆集编号,Ptr为音素的后验概率,StartTime为音素的开始时间,Duration为音素的持续时间。
3.3 关键词的搜索与确认
3.3.1 音素混淆矩阵
PCM的每个元素p(wi|wj)代表音素wj被替换成音素wi的概率。我们通过音素混淆网络生成混淆矩阵。假设语音片段中都包含音素wj,则分类函数α(n)定义为式(1)。
那么音素混淆概率p(wi|wj)可以被表示成式(2)。
其中,N表示训练数据中的语音片段的总数,K表示所有音素的数目,count(wk|wj)表示在同一个语音片段中跟wj对齐的wk的数目。
3.3.2 搜索与确认
对于输入关键词,经过字母到音素转换得到相应音素串,对每个音素,按照混淆概率由高到低排列,找出前n个竞争音素,生成该音素的竞争集VieSet。假设关键词为Q,转换成音素串形式为Q={q1,q2,...,qm},m为音素数目。对于混淆网络D,关键词Q的置信度得分为score(m,D),可以表示成式(3)和式(4)。
其中,λ为权重系数,p(qi|D)为qi的后验概率,Prela(i,D)为音素qi的竞争集VieSet(qi)的后验概率总和,p(qi|φj)为混淆矩阵的概率值。
音素混淆网络中存在着大量的空弧,所以索引搜索时必须对空弧也要进行处理。在音素逆向索引中搜索关键词的过程如图5所示。Heps表示删除命中向量(对应混淆网络中的空弧),Hi表示音素qi和相同位置的所有竞争集VieSet(qi)的命中向量的合并。Hi的置信度可以通过式(3)得到。搜索方法的主要思想是: 首先,从H1中搜索q1,如果命中则生成候选集X1,然后从H2,Heps和X1中搜索q1q2,如果命中则生成候选集X2,通过这种方式我们可以检测到音素串对应的候选集Xm;最后,通过候选集Xm的置信度排序得到关键词的检测结果。
图5 从音素逆向索引中搜索关键词的过程
实验使用的工具有HTK3.4[10]和SRILM[11]。实验用来检测关键词的蒙古语语音语料为15 000句,约21小时。本文选择了10个关键词(query)对测试语音进行了检测,每个关键词包含2个到5个蒙古文单词。
召回率(Recall rate)和精确率(Precision Rate)是信息检索的重要评估方法,也可以用来评估关键词检测系统的检出性能,对整个关键词检出结果集的质量进行量化评价。召回率是指关键词被正确找到的比例,精确率是指所有找到关键词中正确的比例。
实验利用基于联合序列模型的蒙古文字母到音素的转换系统[8]将10个关键词转换成了音素串形式。我们对没有采用PCM的基于音素混淆网络的关键词检测方法和采用了PCM的基于音素混淆网络的关键词检测方法进行了实验比较。在采用PCM的方法中,每个音素采用了混淆矩阵概率排名为前5的竞争音素作为了竞争集。
本文通过11点的召回率-精确率曲线分析了两种关键词检测方法的性能,并对所有关键词的检测结果进行了平均计算,结果如图6所示。表1给出了两种关键词检测方法的相应的11点平均精确率、对应的召回率。从图6和表2中可以看出采用PCM方法的精确度和召回率都明显优于没有采用PCM的方法,并且平均精确度提高了6%,召回率提高了2.69%。
图6 召回率-精确率曲线
表2 对传统蒙古文集外词检测的结果比较
为了解决蒙古文集外词的检测问题,本文提出了基于音素混淆网络的蒙古语语音关键词检测方法。首先,本文介绍了蒙古语发音特点;其次,介绍了基于音素混淆网络的蒙古文关键词检测系统的框架;第三,概述了蒙古语ASR解码和建立音素索引的方法;最后,详细描述了采用PCM的关键词搜索和确认方法。实验结果表明,基于音素混淆网络的蒙古语语音关键词检测方法可以较好的解决集外词的检测问题,并且采用PCM的置信度计算方法提高了系统的整体性能。
[1] Feilong Bao, Guanglai Gao. The Research on Mongolian Spoken Term Detection Based on Confusion Network[C]//Proceedings of the Chinese Conference on Pattern Recognition (CCPR2012).Beijing, 2012:606-612.
[2] Feilong Bao, Guanglai Gao. Improving of Acoustic Model for the Mongolian Speech Recognition System[C]//Proceedings of the Chinese Conference on Pattern Recognition (CCPR2009). Nanjing, 2009:616-620.
[3] Feilong Bao, Guanglai Gao, Xueliang Yan. Segmentation-based Mongolian LVCSR Approach[C]//Proceedings of the 38th International Conference on Acoustics, Speech, and Signal Processing (ICASSP2013), Vancouver, 2013: 8136-8139.
[4] J Mamou, B Ramabhadran and O Siohan. Vocabulary independent spoken term detection[C]//Proceedings of the ACM-SIGIR’07. Amsterdam, 2007:615-622.
[5] Ville T. Turunen and Mikko Kurimo, Indexing Confusion Networks for MorPh-based Spoken Document Retrieval [C]//Proceedings of the ACM-SIGIR’07. Amsterdam, 2007:631-638.
[6] D Wang. Out-of-vocabulary spoken term detection [D]. Ph.D. dissertation University of Edinburgh. 2010.
[7] G Gosztolya and L Toth. Spoken term detection based on the most probable phoneme sequence[C]//Proceedings of the 2011 International Symposium on Applied Machine Intelligence and Informatics (SAMI) (IEEE), Slovakia, 2011:101-106.
[8] 飞龙,高光来,闫学亮. 蒙古文字母到音素的转换方法的研究[J]. 计算机应用研究, 2013,30(6): 1696-1700.
[9] L Mangu, E Brill, and A Stolcke: Finding consensus in speech recognition: word error minimization and other applications of confusion networks [J]. Computer Speech and Language, 2000, 14(4): 373-400.
[10] Young S, et al. The HTK book (Revised for HTK version 3.4.1)[M]. Cambridge University.2009.
[11] A Stolcke. SRILM—An Extensible Language Modeling Toolkit[C]//Proceedings of Intl. Conf. Spoken Language Processing. Denver, Colorado,2002.
Research on Mongolian Spoken Term Detection Based on Phoneme Confusion Network
BAO Feilong1, GAO Guanglai1, BAO Yulai2
(1. College of Computer Science, Inner Mongolia University, Hohhot, Inner Mongolia 010021, China; 2. Library of Inner Mongolia University, Hohhot, Inner Mongolia 010021, China)
To deal with Out-of-Vocabulary detection on Mongolian spoken term detection system, this paper proposes a Mongolian spoken term detection method based on phoneme confusion network.The Confidence Measure is improved by incorporating phoneme confusion matrix. Experimental results show that our method obtains a satisfying performance in the task of Mongolian Out-of-Vocabulary detection, with 6% improvement in precision rate and 2.69% in recall rate.
Mongolian; spoken term detection; Out-of-Vocabulary word; confusion network; phoneme confusion matrix
飞龙(1985—),博士,讲师,主要研究领域为蒙古文信息处理,语音识别,语音合成。E⁃mail:csfeilong@imu.edu.cn高光来(1964—),硕士,教授,博士生导师,主要研究领域为模式识别,自然语言处理。E⁃mail:csggl@imu.edu.cn鲍玉来(1975—),硕士,副研究馆员,硕士生导师,主要研究领域为数字图书馆,信息资源管理。E⁃mail:65003846@qq.com
1003-0077(2015)01-0178-05
2013-04-08 定稿日期: 2013-07-11
国家自然科学基金(61263037, 71163029);内蒙古自然科学基金(2014BS0604);内蒙古大学高层次人才引进科研项目
TP391
A