文/钟鑫 公安部第一研究所 责任编辑/付留芳
本文对关键词识别技术的研究内容、主要模块、评价指标和应用范围等进行了简要介绍,提出了一种自然语音关键词识别系统。首先通过用户提供的一系列声学样本来对关键词进行预定义,然后通过关键词搜索和关键词确认来实现关键词识别。为了解决在关键词模型和填料模型中都使用相同的音素模型这一问题,我们把填料模型中那些与关键词模型中的音素模型相同的音素模型去除掉。为了减少在关键词搜索中的虚警数,我们提出了两种方法:基于动态时间规整的模板匹配方法和高斯混合模型。关键词识别实验结果表明:与基准模型相比,本方法能够达到更高的正确识别率,从而证明了该方法的有效性。
关键词识别技术介绍
概述
近年来,随着声学模型、语言模型和搜索算法的不断改进,语音识别系统的性能得到了极大的提高。但是要真正完成一个能够处理自然语音同时又不受领域限制的语音识别系统,就现有的技术水平而言还是非常困难的。关键词识别(Keyword Spotting, KWS)技术是从连续的、无限制的自然语音流中识别出一组给定词的语音,降低了对识别系统的要求,由于用户对关键部分的发音通常都是完整的和吐字清楚的,对非关键词部分和语法不需要过多的要求,因此从语音流中识别关键词比识别整个句子的发音要容易得多。所以,关键词识别技术被看作是处理口语,跨越人机交流障碍的最有效解决方案之一,在近年来取得了长足的进步。
国内外研究现状
国外关键词识别的研究始于上世纪70年代。1973年,Bridle揭开了关键词识别研究的序幕,但真正的关键词识别研究应该说是在80年代。美国国际电话电报公司国防通讯部用模板连接的方法实现了关键词识别,并提出了补白模板。此后,AT&T的BELL实验室实现了基于隐马尔科夫模型的5个电话用语的、可以实用的关键词识别,这些成果标志着关键词识别研究的崛起。到90年代以后,MIT的Lincoln实验室、CMU的计算机科学学院、Dragon系统公司、东芝公司和IBM公司等也相继报告了他们的研究成果。
我国关键词技术发展相对来说起步较晚,但发展较快。国内的一批科研单位,如中科院自动化所、中科院声学所、清华大学、哈工大以及北京大学等都进行了这方面的研究,取得了许多研究成果。正是由于国内对该领域研究的重视,目前我国关键词识别技术的研究水平己经接近国外领先水平。但是我们应该看到,尽管国内的关键词技术取得了很大进展,但是对于复杂环境的音频文档内容检测方面,许多技术尚处于探索阶段。
基本模块
如图1所示。
1、特征提取;
2、建立声学模型并进行训练;
3、搜索和识别;
4、对识别结果进行后期处理;
5、结合语言模型来提高系统性能。
主要评价指标
关键词识别系统从理论上来说存在两类错误:
•类型1错误:错误拒绝(False Rejection),也称漏报(Miss),即系统没有识别出语音中应该出现的关键词;
•类型2错误:错误接受(False Alarm),也称虚警,即系统识别出的关键词在语音中没有出现,是假冒的关键词。
关键词识别系统中的词分为词表内词(In Vocabulary)和词表外词(Out Of Vocabulary)。词表内词是指关键词表内的关键词;而词表外词是关键词表以外的词,即非关键词。当系统识别到一个关键词,称此关键词为一个假想命中(Putative Hit)。
衡量关键词识别系统性能的指标在表现形式上有不同,但实质是一样的,都是围绕着正确识别与否这个评价准则来进行计算。
图2 关键词识别系统
•识别率(Detection Rate),又称正确识别率(Accuracy Rate)、召回率(Callback Rate),它定义为系统正确识别到的关键词数量与原始语音中实际出现的关键词总数的百分比;
•漏报率(Miss Rate),定义为1-识别率;
•虚警率(False Alarm Rate),又叫误警率,为每小时每个关键词的虚警数,简记为FA/KW/HR;
•错误接受率(False Acceptance Rate),系统错误识别到的关键词数量与原始语音中实际出现的关键词总数的百分比;
•查准率(Precision):对某一个查询关键词,识别出的正确关键词个数占识别出的关键词总数的比值。
显然,漏报减少就会导致虚警增加,反之亦然。在关键词识别系统中,一般都是尽可能多地搜索出关键词候选,然后通过置信度打分进行关键词确认,高于置信度门限的候选接受,低于门限的拒绝。因此关键词识别系统的性能除了取决于关键词搜索模块外,也严重依赖于置信度的评估方法。系统往往调整置信度门限,使关键词识别系统的两类错误之间有一个折衷,这个门限称为系统的工作点。
由于在不同的虚警率下,关键词的识别率会不同,所以单看在某一虚警率下的识别率无法客观衡量系统性能的好坏。目前常用的衡量方法是接收机工作特性曲线(Receiver Operating Characteristics Curve),记作ROC曲线,它描述了识别率和虚警率之间的关系。ROC曲线能够全面、直观地反应关键词识别系统的性能,因此成为最常用的性能评价指标。
在实际系统中,曲线在虚警率小于10的部分对于衡量系统性能才有意义。因为实际使用中,很少选择虚警率大于10的点为工作点,品质因数(Figure Of Merit)定义为虚警率在0-10FA/KW/HR范围内的关键词平均识别率。
应用范围
语音库搜索:如对公安局的监听记录、法院的庭审记录、通信运营商的通讯内容等进行有目的的搜索。
文本分类:从海量的语音邮件中挑选出自己感兴趣的内容。
语音监听:实时地从被监听的语音数据中定位并识别出那些含有敏感关键词的语句。
电话转接:无需查找被叫用户号码,只需告知被叫的单位或姓名等常用的身份信息,就可以直接转接到被叫人。
信息查询:只需从用户语音中识别用户关注的内容,然后查找出用户所需信息,再播报给用户。
命令控制:如控制机器人等,一般是让关键词识别系统在后台持续运行,通过语音指令实现一些类似于开灯、关灯等简单的命令控制功能。
密码验证:可将密码语音的鉴别和说话人鉴别组合在一起,让语音关键词也成为声纹锁的一部分,来提高声纹锁的稳健性。
口语对话系统:由于具有很多可应用于实际系统的优点,因此关键词识别技术更适用于实现口语对话系统。
瑞士联邦理工学院的自然语音关键词识别系统
介绍
在过去的20年里,语音信息搜索受到了极大的关注。关键词识别是连续语音识别中的一个特殊分支,它已经广泛应用于电话语音数据、航空旅行信息和新闻广播等多个方面。然而,目前这些先进的关键词识别系统都面临一个共同问题,那就是在许多应用场合中,相关的关键词并不在词库中,在搜寻人名、地名和缩写词的时候,这个问题就尤为突出。而另一方面,在某些情况下,关键词完全是由用户提供的一系列声学样本来预定义的,那么,关键词识别任务就转化为对这些预定义的关键词进行识别,并且寻找到该关键词在测试语音中的位置。
本文提出了我们在关键词识别这个领域所进行的研究。我们相信:一个有效的关键词识别系统必须能够在第一时间识别出嵌入在一段语音中的关键词,随后能够对不包含有效关键词的语音区域进行拒识。所提出的关键词识别系统如图2所示:首先,在预处理阶段提取特征参数;其次,通过将一系列音素模型作为填料模型,使用维特比(Viterbi)流搜索来完成关键词搜索;最后,通过一系列由用户提供的声学样本来建立关键词模型,并用这个模型对关键词候选(或称关键词假设)进行确认。
关键词搜索的方法之一是根据先验知识引入有限状态文法(FSG),从而在一个整句中检测是否有关键词的存在。通过向给定的FSG中加入某种语音结构,我们可以获得优异的检测性能。然而,FSG的局限性在于它不能覆盖所有可能的语音结构,因此,实际的关键词识别系统的鲁棒性很差。另一种方法是让填料模型(也称垃圾模型)来“吸收”非关键词,已经证明这种方法在关键词识别的应用中具有很高的效率,因此本文就采用这种方法。“吸收”非关键词有三种方法:1、将所有语音区域联合起来,用来训练一个隐马尔科夫模型(HMM),并将其作为一个填料模型;2、基于大词汇量连续语音识别(LVCSR)的方法,其中垃圾模型只允许有来自于词汇库的有效词;3、集合所有音素模型,用来建立填料模型。第一种方法的工作效果不好,因为所建立的填料模型不能涵盖测试语音中的所有变化。第二种方法由于使用了额外的语言学限制条件,虽然提高了识别性能,但是它需要采集大量的标注数据来训练LVCSR系统,因此计算成本很高。第三种方法能自动适应测试语音中的突发语音,并且具有相对较低的计算成本。本文采用第三种方法。
然而,基于音素的有填料模型的关键词识别系统还有一个缺点,那就是由于在关键词模型和填料模型中使用了相同的音素模型,因此可能会导致对一个关键词进行识别的性能出现下降的现象。这个问题一般是通过应用更加精炼的垃圾模型或者在线垃圾模型来解决。我们在本文中提出另一种方法,即在解码网络中,把填料模型中那些与关键词模型中的音素模型相同的音素模型去除掉。实验结果表明:这样简单的一个方法可以很明显的提高关键词识别率。
把填料模型中那些与关键词模型中的音素模型相同的音素模型去除掉之后,虚警率可能会提高。为了减少由于关键词搜索而导致的虚警,我们提出了两种关键词确认方法。一种是基于动态时间规整(DTW)的模板匹配方法,它能使孤立词识别系统展示出优异的性能。另一种方法基于高斯混合模型,这个模型已经成功的用来处理说话人确认和说话人识别等问题。我们的研究表明,这两种方法能在降低虚警率的同时可以保持识别率几乎完好无损。
实验设置
本实验中所采用的识别器是一个与说话人无关的HMM系统。我们将音素作为建模单元,其中每一个音素可以由一个3状态,严格自左向右的连续密度HMM来表示,那么一个单词就可以由一系列音素模型的组合来表示。每种状态下的概率密度函数的个数在训练的过程中确定。我们使用来自于会谈电话语音(CTS)的长达15小时的语音数据来训练音素级的HMM。对于所有语音数据,我们使用8kHz的采样率和16位采样量化位数,采样精度为16位,对采集到的信号以25ms为帧长进行分帧,帧移长度为10ms,预加重系数为0.97,加汉明窗。然后,采用24通道的分析,使用离散余弦变换(DCT)转换为12维 mel频率倒谱系数(MFCC)。最后,我们用倒谱均值减(CMS)来进行信道补偿。因此,12维CMS归一化MFCC加上相应的一阶、二阶系数的对数能量就共同形成了特征向量。在本文中,我们使用HMM工具箱(HTK)进行声音处理、特征提取、声音建模和解码等。
我们在办公室环境下记录了5个说话人的自然语音周期(有2位女性和3位男性),有5个关键词,分别是“蓝”、“红”、“黄”、“绿”和“球”。关键词总共出现189次,非关键词共出现1038次。在每一个周期,5个关键词分别出现10次,作为声学样本。每一个关键词的时间域都用手工标注。
关键词搜索
正如第一部分描述那样,本系统采用基于填料模型的关键词识别方法,其流程如图3所示。
图3 本系统采用基于填料模型的关键词识别方法
图3 使用填料模型的关键词解码网络,每个关键词模型是一个自左向右的HMM,它来自于与关键词音素序列相对应的一系列音素模型的组合。填料模型由非关键词的音素模型组成。
这种方法允许每一个关键词在测试语音中多次出现,因为每个关键词模型是一个自左向右的HMM,它来自于与关键词音素序列相对应的一系列音素模型的组合。填料模型(非关键词)也由音素模型(包含静音模型)组成。音素识别器通过维特比(Viterbi)流搜索方法得到识别结果,而搜索过程则是以这个结果为基础,也就是说,来源于连续语音流的最佳状态序列可以表示为:
其中,S是候选状态序列,O是观察向量序列,M和G分别表示声学模型(HMM)和解码网络。对于每一帧,可以获取相应的状态和对数概率。通过把属于同一个音素模型的相邻帧结合起来,可以对一个音素进行识别,而通过一系列相应的音素模型的组合,可以识别出关键词。因此,除了得到似然概率得分之外,每一个关键词的起点和终点也能被记录下来。
导致关键词识别性能退化的原因之一就是在关键词模型和填料模型中使用了相同的音素模型。虽然已经有其他研究人员着手解决这个问题,但是出于简约化和有效性的考虑,我们提出另外一种方法,即把填料模型中那些与关键词模型中的音素模型相同的音素模型去除掉。本系统的性能还依赖于对音素HMM进行准确的训练。通过使用来自于CTS的长达15小时的语音数据,我们训练出两种HMM(性别无关和性别相关)。
图4展现了在使用不同类别的HMM和填料模型时关键词识别的性能(由ROC曲线表征)。GI-HMM和GD-HMM分别代表“性别无关HMM”和“性别相关HMM”,filter1和filter2分别表示“没有”和“已经”把填料模型中那些与关键词模型中的音素模型相同的音素模型去除掉。根据所搜索的关键词假设的中间时间指数是否在真正的关键词时域之内,分别得到正确识别和错误识别的结论。不出所料,无论是否有填料模型,“性别相关HMM”比“性别无关HMM”的识别性能都略微好一些。在移除音素模型之后,识别性能表现得到了显著的提高。而每一个关键词的识别性能有很大的差异,如图5中的实线所示。
图4 使用不同的HMM和填料模型的条件下的ROC曲线
图4中GI-HMM和GD-HMM分别代表“性别无关HMM”和“性别相关HMM”。filter1和filter2分别表示“没有”和“已经”把填料模型中那些与关键词模型中的音素模型相同的音素模型去除掉。
图5 每一个关键词对应的ROC曲线
图5中实线和虚线分别表示经过基于DTW的确认之前(图4中的GD-HMM-filter2)和基于DTW的确认之后的效果
出现错误的原因是自然语音数据的几个特点造成的。第一,训练数据(电话语音)和测试数据(由远程麦克风记录的语音)之间存在不匹配的问题。第二,背景噪音使语音质量下降,因而导致识别错误。第三,说话人的差异(其中3个是非母语说话者)和说话风格的差异(重音、语速和发音习惯等)也可能导致识别错误。
关键词确认
前面描述的关键词搜索方法提供了一系列关键词假设(分段的语音),每一个关键词假设可以由一个特征向量(或帧)的序列来表示,即
其中 代表第l帧的CMS归一化MFCC特征向量。如图4所示,GD-HMM-filter2的识别率最高(86.6%),而它付出的代价就是虚警数比GD-HMM-filter1的虚警数更高。关键词确认是关键词识别系统中的一个必要的后期处理过程,它的目的是为了拒绝错误的关键词假设,同时又尽可能多的接受真正的关键词。
基于DTW的关键词确认
区域将被接受为一个关键词。这里我们假定向量序列X是独立的而且服从同一分布的随机变量。
图6 经过关键词确认后的ROC曲线,GD-HMM-filter2取自图4,以
实验结果
随后进行关键词确认实验。我们将GMM的混合数设定为4,在实验中优化每一个关键词对应的门限。图6展示了关键词识别的性能。可以看出,两种关键词确认方法的效果都不错,它们都能够降低错误接收率,同时保持正确识别率几乎不受损害。另外,在减少虚警数方面,DTW(能拒识大约50%的错误关键词)的性能优于GMM,这是因为每个关键词仅仅有10个样本可供建模,而基于DTW的模式匹配比GMM所需要的训练样本要少。与基准系统(GI-HMM-filter1)比起来,最终的关键词识别系统能将绝对正确识别率提高10%,同时大大降低虚警率。图5中的虚线显示的是针对每一个关键词而言,使用基于DTW的关键词确认方法时的关键词识别性能表现。可以看出,每一个关键词的识别性能大不相同,但是经过DTW的关键词确认之后,错误接受率都大大降低,但是需要注意的是,有一些 “红”和“绿”关键词经过DTW确认之后不能被识别。
结论
本文提出了自然语音关键词识别研究方法,利用一系列声学样本来对关键词进行预定义。我们把填料模型中那些与关键词模型中的音素模型相同的音素模型去除掉,以此来解决在填料模型与关键词模型中使用相同音素模型的问题。同时,我们还提出了DTW和GMM来降低由关键词搜索步骤引起的虚警率。本关键词识别实验表明:所提出的方法切实有效,与基准系统比起来,它可以提高识别性能。未来的工作主要在于将说话人自适应技术与先进的语音处理技术融合至本系统中,从而进一步提高正确识别率。