学习笔记 - 《关键词唤醒和嵌入式系统》

时间:2024-03-21 21:45:58

摘自清华语音和语言技术中心

KWS评价指标

1)、唤醒率: 在测试过程中被系统正确唤醒的次数除以总的测试次数。
2)、虚警率: 在测试过程中系统不被唤醒的次数除以总的测试次数。
3)、实时率: 系统的反应速度。
4)、功耗水平: 低功耗是系统性能的一个重要指标,与用户体验紧密相关。

方法流程

关键词唤醒分为两个阶段:检测阶段、决策阶段。
第一个阶段:检测阶段。即系统手机关键词在给定的句子中的信息。第二阶段:决策阶段。即系统根据检测阶段得到的置信向量判断关键词是否出现在语音中,并给出关键词出现的位置

关键词唤醒和LVCSR

LVCSR(大词汇量语音识别任务)是将一段连续语音识别成文字。该任务的HMM-GMM系统原理是为每个音素进行建模,将输入语音的没帧识别成音素的状态。LVCSR任务的DNN方法输入是每帧语音信号特征向量,输出是每帧对应的因素,本质上是一个多分类任务。
KWS任务可以被视为是LVCSR任务的子问题,不同的是KWS任务只需要在一段连续语音中提取关键字的信息。
实际上关键词唤醒问题的解决方法和LVCSR在一定程度上是相通的。

关键词唤醒的难点

最主要的问题是低功耗和高计算需求的不平衡。实际落地需要系统尽可能减小运算量和降低功耗,但同时不能降低系统的稳定性。

模型方法

1、Query-by-Example方法
最早尝试的方法之一,将关键词当做example,将听到的语音和关键词进行比对的放发,是一种基于模板匹配的方法。具体实现包括两个步骤:
(1)训练步骤
先选择合适的方法对将语音格式的关键词表示为易于比较的模板格式(例如特
征向量或网格形式等),完成对关键词的建模。
(2)测试步骤
将待检测的目标语音转化成和模板相同的格式,然后和关键词模板进行匹配计算相似度。在过去几十年对query-by -example方法的探索中,研究热点是如何选择合适的特征表示方法[3]对关键词进行建模,而模板比对主要采用动态时间规整(dynamic time warping) [4]的算法,它采用了动态规划的思想。在自动语音识别的孤立词识别任务中,也采用了类似query-by-example的方法。将给定的词汇创建模板,将待识别语音和模板比对,相似度最大的即为识别结果。DTW方法在孤立词识别任务中也能取得较好的效果。query-by- example方法不再是KWS问题的主流方法,因此此处不再做过多展开。
2、Keyword/Filler隐马尔科夫系统
基于隐马尔可夫模型的keyword/filler系统[5]是目前的主流方法之一,它和语音识别中早期使用的HMM-GMM系统原理相似。其思想都是用HMM模型对待识别的语音的子字单元进行建模。最大的不同是在解码器中,LVCSR方法的解码器中包含了词典中所有的单词,而关键词唤醒任务的keyword/iller系统则将语音分为关键词(keyword) 和非关键词(iller) 两类进行建模。如图1所示,
学习笔记 - 《关键词唤醒和嵌入式系统》keyword建模采用精细建模方法,在词级、音素级或状态级上对关键词进行建模; fllr建 模采用粗放建模的方法,对除关键词之外的任意词语和噪音进行建模。这样建模的好处是大大缩小了解码空间,使解码速度变快,提高系统的实时率。
学习笔记 - 《关键词唤醒和嵌入式系统》
如图2所示为基于HMM系统的keyword-iller的一一个实例, 来自于Amazon的文章[6]。该解码系统由keyword(alexa)路径和iller路径构成,fller路径 又分为非语音(Non-speech,NSP)路径和语音(speech,SP) 路径。对关键词采用三状态HMM对音素进行建模,而fller采用单状态HMM进行建模,有趣的是该隐马尔可夫模型的发射概率由TDNN进行建模。

3、LVCSR方法
一种简单粗暴的想法是直接用LVCSR语音识别系统解决关键词检索唤醒问题[7]。待识别语音通过LVCSR系统给识别为-一个个单词或字,再进一步进行关键词检索。基于LVCSR系统方法的一个缺点是OOV问题。如果关键词不在词典中,那KWS问题将无法进行。基于LVCSR的关键词唤醒虽然能取得较好的效果,但是计算需求量大,在训练资源充足的时候系统稳定性较强,但是在移动设备.上连续运行LVCSR系统通常是不切实际的。

4、Deep KWS端到端系统
目前最为流行的方法是基于神经网络的端到端关键词唤醒系统,在论文[8]中被首次提出。如图3所示为deep KWS系统的具体结构。该系统分为三个模块:
(1)特征提取模块。对原始语音信号进行特征提取,通常做法是提取每帧的特征向量。
(2)神经网络模块。输入是语音的特征向量。输出是关键词和非关键词的后验概率。
(3)后验值处理模块。由于神经网络输出的后验值是带有噪音的。在这一-步骤中,对后验值以一定窗长进行平滑。平滑后的后验值超过一-定的阅值,则认为被唤醒。
学习笔记 - 《关键词唤醒和嵌入式系统》

关键词唤醒和嵌入式系统

目前在嵌入式设备商的关键词唤醒系统优化主要分为两类:一是通过减少神经网络参数量的方法提高系统在设备上的性能(模型裁剪、模型压缩)。二是针对硬件平台的优化。

小结

本节介绍了关键词唤醒的概念、技术难点和解决方法。模型方法包括Query-by-Example通过DTW算法进行模板匹配的方法; Keyword/Filler系统基于隐马尔可夫模型对关键词和非关键词进行建模的方法:基于LVCSR的关键词唤醒方法以及DeepKWS端到端输出后验概率的方法。目前工程应用上多采用Keyword/Filler系统和Deep KWS系统,在保证系统准确率的同时降低系统能耗并提升系统的反应速度。
关于关键词唤醒系统在嵌入式设备端的部署,主要介绍了两种方法。一是通过减少模型本身的复杂度降低运算量,二是通过运算加速库针对硬件平台进行优化,提高运算速度。