编者:今年的INTERSPEECH于8月20日至24日在瑞典的斯德哥尔摩顺利召开,众多的高校研究机构和著名的公司纷纷在本次会议上介绍了各自最新的技术、系统和相关产品,而阿里巴巴集团作为钻石赞助商也派出了强大的阵容前往现场。从10月25日开始,阿里iDST语音团队和云栖社区将共同打造一系列语音技术分享会,旨在为大家分享INTERSPEECH2017会议上语音技术各个方面的进展。本期分享的主题是语音识别技术之关键词检索技术,以下是本次分享的主要内容:
1. 语音关键词检索介绍
1.1 关键词检索定义
语音关键词检索也叫spoken term detection, 或keyword spotting。有别于大家熟知的文本搜索的最大特点是语音关键词检索是对语音文件的搜索。
给定关键词表,其目标是在语音数据中找到所有相应关键词。当在某些场景下需要对一些特定的词语进行针对性识别时,用户可以通过自定义关键词及其置信度的方式来达到检测语音中是否包含该关键字的目的。
语音关键词检索当下应用越来越普及,应用范围也越来越广。学术上,也有很多权威评测。影响力比较大的有OpenKWS, 它是语音关键词搜索领域的国际权威评测,由美国国家标准与技术研究院(NIST)主办。当前举办了2013、2014、2015和2016年四届。
1.2 关键词检索常见应用场景
语音关键词检索的应用场景当前主流的有以下四个应用,分别是语音质检、音频监控、音频审核、音频检索。
语音质检
呼叫中心是一个促进企业营销、市场开拓并为客户提供良好的交互服务系统。为了提高客户满意度、完善客户服务,同时对客服人员工作的考评,很多企业会对此采用质检的方式来保证其服务质量。传统的质检方法需要质检人员通过人工测听的方式进行抽检;人工抽检方法工作量大且效率低,难以有效评价客服人员的服务质量。
随着人工智能技术的发展,语音和自然语音处理技术不断取得突破,采用智能化的方法对电话语音中的内容进行深层次的分析,可以有效的节约人力成本并提高工作效率。语音质检方案主要涉及语音关键词检索、音频对比、情感识别等核心技术。语音关键词检索在语音质检中起到关键作用,例如通过设置一个不礼貌用词,能实时有效的检测到客服人员的服务态度等。
音频监控
在公检法机构、机场、铁路、银行等一些领域,越来越多的安防工程急需清晰、逼真的影音同步监控系统,音频监控领域已经成为安防行业的新亮点,连习大大都在全国政法委会上明确提到“智慧城市不能只有图像,而没有声音”。音频监控已经成为安防行业的重要组成部分,尤其是近几年平安城市建设的推进和反恐进程的加快,音频监控在城市安防系统中应用的越来越多,以弥补视频监控的不足。关键词检索的应用,是的分析、决策、预警所监听环境下发生的异常行为能够快速实时响应。
音频审核
在一些是语音为主的直播节目中,比如谈话聊天、脱口秀、在线广播等。视频检测所使用到的图像技术就很难在这些应用场景发挥作用,这个时候音频检测技术就显得非常重要。又如微信微博上发布语音视频信息等,平台后台都需要对这些数据进行快速审核;还有如电信安全,主要是以关键词检索的手段来防止电信诈骗。
音频检索
从大量语音文件中检索有用的语音,如检索电台节目中谈到某内容的片段,检索讨论某个话题的一通电话等。基于识别关键词进行检索,识别或标记出长段录音或音轨中反映用户感兴趣的事件,这些标记可用于检索。
1.3 关键词检索技术
语音关键词检索,是指在连续语音流中检测出一组给定的关键词的过程。与大词汇量连续语音识别相比,语音关键词检索不需要对非关键词的精确识别,只需要检测出关键词即可,有效降低了对语音识别系统的要求,拓展了系统的适用条件。
在讲语音关键词检索之前,先普及下语音识别。
语音识别可以看成是如下问题:对于给定的声学观测(acoustic observation)序列,求出对应的字(word)序列。该过程称为“解码”过程,即根据预先训练好的声学模型和语言模型,在全体可能的字序列空间中搜索出概率最大的序列。在实际的语音识别系统中,最优路径不一定与实际字序列匹配,我们一般希望能够得到得分最靠前的多条候选路径,即N-best。候选路径的保存需要紧凑,防止占用过多内存空间。通常采用词格(Lattice)来保存识别的候选序列。
如图所示,左边是词格的一种通用表示,每条边上保存一个状态对应的词,从左至右一条路径代表ASR nbest结果中的一条。
右边是混淆网络矩阵,同一时间片段内多个解码候选词处在相同的节点之间。这种表示通常更有利于快速查找到相同时间片段内的所有路径。
基于以上简单的ASR解码介绍, 语音关键词检索要解决的问题就为:如何从解码出的词格中寻找到关键词所在位置。
语音关键词检索中一个难点就是集外词(Out-of-vocabulary,oov)的问题。解码生成的词格是根据预先准备好的词典生成的,所以词格中不会包含词典中没有的词。对于语音识别来说,集外词比例较低,对整体识别性能造成的影响不大,但在语音检索任务中,集外词检索比例较高。在一篇文献中有个英文LVCSR系统的统计,当整体文档集外词比例在1.5%时,用户查询集外词比例高达12%,影响检索性能较为严重。
接下来我们看一下关键词检索任务的常见流程图。语音进来之后首先进行ASR识别,从里面提取网格信息构建索引网络,然后对关键词表中的词,在索引网络中查找,通常使用网络中的后验概率来表示关键词匹配的score, 并经过置信度评价,输出score大于阈值的匹配结果。
通常词格中含有每个字的拼音信息,故在检索时很多系统直接在拼音上建立索引,在查询的时候也是通过关键词表中词的拼音去查找。最后在计算score或者置信度评价时再考虑词信息等。这样处理有利于扩大召回。
2. INTERSPEECH 2017关键词检索论文介绍
接下来以interspeech2017里的一篇具体文章,来给大家分享下语音关键词技术的细节。
Interspeech2017里共有4篇keyword相关的文章,感兴趣的同学都可以去读一下。这里介绍的是其中一篇基于NN的rescoring策略的关键词检索方法。 A Rescoring Approach for Keyword Search Using Lattice Context Information。
前面对KWS系统已经做了一个简单讲解,典型的KWS system在ASR结果(通常为lattice)里查找关键词,并用lattice里的后验概率来给关键词打分,当分值大于阈值时输出关键词及score。在计算置信度时通常对AM, LM的score有很强的依赖。如若ASR语料不充分时,比如粤语、四川话等方言ASR系统,是很难得到一个高质量的后验概率的。
过往研究者多数是采用rescoring / reranking 的方法,involving 更多的信息 或者 针对特定任务在tuning set上训练一个分类模型来提升关键词检索效果。
通常关键词检索方法分为TAR (test audio reuse) 和NTAR(no test audio reuse)。TAR 在得到候选关键词后, 将候选关键词重新送给ASR模型,ASR模型利用声学信息从新在结合了关键词候选的LM模型里解码,从而挑选出最可能的关键词。NTAR不同,不再走二遍ASR系统,通常采用机器学习算法,结合ASR结果及关键词信息,给关键词候选打分。但通常需要做很多的特征工程, 这些特征工程也很耗费时间和人力。
该文提出的方法为NTAR,但使用NN方法来代替特征工程,实现automatic feature extraction。模型的输入为关键词表中的关键词、其在原始utterrance中匹配的片段,以及对应的后验概率信息等, 输出为 0-1之间的nn-based score。如下图所示。
该文其rescoring model的整体框图如下图所示。
首先是将context和Keyword做embedding,完成数字化表示,然后将它们的embedding 级联起来,送入全连接层,最后送入一个sigmoid单元输出,做简单的二分类, 输出0到1之间的NN-based score。
Word pronunciation embedding
keyword以及words on lattice arcs是rescoring最关键的信息,显然,使用one-hot表示容易导致数据稀疏问题。通常NLP任务里常使用word embedding来表示,该文对词采用distributed representation,并期望具有相近的发音的词在embedding space上的距离也更近。
下图描述的是该文使用的基于RNN(LSTM)的seq2seq auto-encoder来做keyword embedding。
首先,根据发音词表将每个word转成phonemes序列; 然后,在IV words词典上训练seq2seq的auto-encoder; 训练之后,将encoder最后的状态层抽取出来作为词的表示。这里值得注意的是OOV words也能通过他们的 pronunciations来做embedding。
lattice context表示
对于每一个hit, 首先抽取时间片段(左右各增加0.5s)内的sub-lattice,并从中选择N 条信息含量最丰富的arcs,每条arc表示成 D 维的向量,包括词发音的embedding vector、起始时间、结束时间和另外6个与边相关的scores。该6个scores分别为边的后验得分、前一个状态和后一个状态的前向概率、LM得分、声学模型分以及每帧的平均值。一个hit的context表示成D × N 的矩阵。
图中CNN input层D=40, N=30。每一列表示sub-lattice中的一条路径, 图中feature maps大小分别为16, 16, 16, 16和32。最后一层max pooling的输出为32维的向量表示,即lattice context的表示。
其中前一个状态和后一个状态的前向概率的计算:对于full lattice,每个state利用weight pushing方式使其后向概率之和为1,然后计算出每个state的前向概率。
其中边的后验得分的计算:抽取sub-lattcie中的每条路径,并计算每条路径的后验score,同时合并具有相同的phonemes的arc,其score继承cluster中的最大值。
最后选择N条信息含量最大的路径。
Rescoring model
首先将sub-lattice矩阵transform成一个向量,然后将这个向量和keyword embedding向量串联成一个大向量,传给后边的全连接层,最终得到分类结果。Rescoring model使用的是Relu激活函数的CNN模型,接收 D × N 维矩阵输入。
值得注意的是N条arcs的先后顺序会影响到矩阵的表示,在训练规模不足够大的情况下,是非常困难覆盖到各种情况.值得庆幸的是CNN在图片、语音和NLP领域已经验证了其有足够的能力处理这类特征的shifts.
Loss function
KWS中最流行的evaluation metric是term weighted value (TWV):
其中Q是keywords集,θ是decision threshold。TWV与recall rate正相关,与false alarm rate负相关。
该文中使用如下定义的term-weighted sigmoid cross entropy:
其中H(q) 为keyword q命中的边, y是标签,yˆ是模型输出的结果。
实验数据及结果
实验数据集为IARPA(Intelligence Advanced Research Projects Activity美国情报高级研究计划局)Babel Program的Swahili语的电话语音数据。训练集为3 hours的转录数据,用来训练DNN声学模型,和KN平滑的3-grams语言模型。除此之外,还有3 hours tuning set和10 hours的开发集。tuning set除用来训练rescoring model外,还用来pronunciation auto-encoder超参的tune。
该文使用全部IV words (5130 in total)用来训练pronunciation auto-encoder。表1为在tuning set上OOV的PER(phoneme error rate)和WER(word error rate)。
下表4结果为参数不同时的结果以及arc特征(times和scores)的对结果的影响。
从表4中看出pronunciation embedding size为32时获得最优的OMTWV。time特征和score特征都能带来效果的提升。另外增加一个隐层全连接层带能来效果的进一步提升。