INTERSPEECH 2017系列 | 语音唤醒技术

编者:今年的INTERSPEECH于8月20日至24日在瑞典的斯德哥尔摩顺利召开,众多的高校研究机构和著名的公司纷纷在本次会议上介绍了各自最新的技术、系统和相关产品,而阿里巴巴集团作为钻石赞助商也派出了强大的阵容前往现场。从10月25日开始,阿里iDST语音团队和云栖社区将共同打造一系列语音技术分享会,旨在为大家分享INTERSPEECH2017会议上语音技术各个方面的进展。第二期分享的主题是语音唤醒技术视频回顾请戳这里),以下是本次分享的主要内容。
1 语音唤醒技术简介
语音唤醒是指用户说出特定的语音指令时,设备从休眠状态切换到工作状态,给出指定响应。
image
以上四幅图表现的就是设备从休眠到唤醒这一过程。首先,设备需要被开启,加载好资源,进入到休眠状态。当用户说出特定的唤醒词时,设备会被唤醒,切换到工作状态,等待用户接下来的指令。从这一过程可以看出,唤醒技术的用途在于,用户对于设备的操作可以完全用语音进行,脱离双手的帮助;同时,利用唤醒这样的机制,设备不需要时时处于工作状态,大大节省能耗。

语音唤醒技术的应用领域很广,比如机器人、手机、可穿戴设备、智能家居、车载等。许多带有语音识别功能的设备都会利用语音唤醒技术作为人与机器互动的开始。下图中的这些产品都搭载了语音唤醒技术,当然这样的产品不仅限于此。前面提到,用户要唤醒设备是需要说出特定的唤醒词的,不同的产品有不同的唤醒词,图片下面的词条就是这些产品对应的唤醒词。唤醒词的选择有一定的规则,多数情况下的选择是三到四个音节,音节覆盖多、差异大,则为较好的唤醒词。
image

唤醒的评价指标主要有四个。1)召回率,表示的是正确被唤醒的次数占总的应该被唤醒的比例。召回率越高性能越好;2)虚警率,表示不该被唤醒的却被唤醒的概率。虚警率越低越好。3)实时率,从用户的体验角度来说,就是设备反应的速度,唤醒对于这一反应速度的要求是很高的。4)功耗,由于很多设备是依靠电池或者是充电式的,只有低能耗才能保证设备的续航时间。

唤醒可以看成是一种小资源的关键词检索任务。其计算资源小,空间存储资源小,因此其系统框架与关键词检索有一定区别。目前常用的系统框架有以下两种:

1)基于HMM 的keyword/filler 系统
这一类系统最重要的是解码模块。该模块与语音识别中的解码器类似,通过Viterbi算法来获取最优路径,而区别在于解码网络的构建。唤醒任务的解码网络包含了keyword和filler words的路径,除了keyword以外的词汇,都包含在filler的路径中,而不像语音识别任务中每个词都有相应路径。这样的网络有针对性地对keyword解码,解码网络规模小,可选路径相对减少,解码速度大幅提升。当解码结果中得到了关键词路径后,再进一步进行选择判断是否被唤醒。

2)端到端系统
所谓端到端就是输入是语音,输出直接是关键词。这一类系统包含三个部分,第一个是特征提取,第二步是神经网络,它的输入是语音特征,输出就是各个关键词以及非关键词的后验概率。由于第二步是以帧为单位输出后验值的,就需要第三步来对后验值以一定窗长进行平滑。平滑后的后验值超过一定的阈值,则认为被唤醒

2 INTERSPEECH 2017 paper reading
2.1 Paper 1
image

第一篇来自Amazon的文章,系统架构上采用的是前面介绍的第一类系统。这篇文章的关键点在于对于第一个解码模块中用到的声学模型,尝试使用了TDNN模型。TDNN的全称就是标题中的Time Delay Neural Network。同时,为了减少TDNN的计算量,使其能够满足实时率的要求,做了一系列的优化。

image

上图表示的是这个系统的解码网络。下面这条路径是Alexa这一关键词的路径,上面的是filler的路径,其中NSP表示的是非语音的filler,而SP表示的是语音的filler。这里的每个圈都是HMM模型。建模单元上,关键词采用三状态的HMM对音素进行建模,filler部分采用单状态HMM进行建模。我们所说的采用TDNN,指的就是对于hmm的发射概率由TDNN来建模。

image

文中所用到的TDNN结构如上图所示。TDNN的学习需要用到前后帧所保留下来的信息。这个图表示的是时间为t的那一帧在时间维度上的一个网络结构。图中的橙色框表示,越深的层能学习更宽的上下文信息。那么对于这一帧的建模,实际使用到了t-20到t+10这30帧的输入特征,通过调节,这一长度还可以更长。这种长时信息的学习是DNN不能做到的。所以说TDNN,主要的优势在于能够学习和处理更长的上下文信息。

为了使TDNN有更好的效果,文中采用了两个方法:
1)Transfer learning:Transfer learning是一种在机器学习中广泛使用的方法,核心的意思是将从一个相关任务学习到的知识迁移到当前的任务中来。在这个任务中,采用的方法是先训练一个LVCSR任务的网络,之后唤醒任务的网络隐层参数就采用LVCSR的网络参数作为初始值,再进行训练。这使得唤醒任务的网络获得一个更优的初始化,有助于其最终收敛到一个更优的局部最优点。
2)multi-task:采用共享隐层的结构进行多任务学习。本文中是在学习本身唤醒任务的同时,学习LVCSR的任务,二者共享了输入层以及大部分隐层。训练中的目标函数是两个任务的加权平均,任务所占权重可自行调节。最终使用这个网络时,会将只与LVCSR任务相关的节点从网络中剥离,因此使用上与普通的模型一样。

为了能够满足实际使用的需求,本文采用了两个方法来减少TDNN的计算量。
1)sub-sampling:原始的TDNN是一个全连接的网络。但事实上,相邻时间点所包含的上下文信息是有很大部分重叠的,因此可以采用采样的方法,只保留部分的连接,可以获得与原始模型近似的效果,同时能够大大减少模型的计算量。
2)svd:利用奇异值分解将一个参数矩阵转成两个矩阵相乘。进行分解完后,奇异值从大到小排列。在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。因此只保留一部分奇异值来获取计算量的优化,合理选择保留的量不会给模型带来性能损失,甚至这样的结构调整会使得模型的结构更加合理,从而获得一个更好的收敛点。

实验的关键词是Alexa, 训练以及测试的数据是在不同条件下采集到的房间内远场数据。没有给出具体数据量,但提到了充足的训练、开发和测试数据。
image
上图为实验结果,横坐标是虚警率,纵坐标是1减去召回的概率。上面的曲线称为ROC曲线,曲线位置越低表示性能越好。对比的baseline是一个也作了svd的DNN模型,图中黑线所示。对比绿色(没作svd)和红色(作svd)的线都是TDNN的结果,可以看到TDNN比DNN好,而svd又为TDNN带来进一步的性能提升。从AUC(area under curve的缩写)结果来看,TDNN相对DNN性能提升了19.7%,加上svd后的性能相对DNN提升37.6%。

2.2 Paper 2
image

第二篇文章是来自百度的,这篇文章采用的框架属于之前介绍的第二种类型的系统,也就是端到端模式的。这类系统最重要的部分就是神经网络。这篇文章采用了叫作CRNN的网络结构,同时为了减小模型,文中探索了不同的模型结构和参数来获得最优的效果。CRNN 意思是将CNN和RNN融合在一个网络中,CNN的优势在于挖掘局部信息,而RNN的优势在于学习长时的上下文信息,这二者结合可以起到互补的效果。之前,百度在LVCSR任务上采用这一模型,采用的是CRNN加上CTC的模式,获得了很好的结果,因此希望将它引入唤醒的任务中。然而CTC目前使用效果较好的应用在模型规模较大,数据量大的任务上,因此在本文中实际采用的依然是交叉熵作为目标函数。采用的模型网络结构如下图所示。

image
图中最上面是输入,最下面是输出。输入直接是语音,采用的是PCEN特征,作为一层加入到网络中,这一特征有较好的抗噪能力。后面的隐层依次包含了CNN、双向RNN以及DNN,输出层包含2个节点,分别表示是关键词或不是关键词。这一结构中包含了很多可以手工调整的参数,以及对于RNN节点结构的选择,文中给出了多组参数的对比结果,以及RNN节点采用LSTM和GRU的对比。

实验关键词是“talktype”, 训练与测试数据来源于五千多个说话人,具体数据量没有给出。本文作了详尽的实验,得到了有借鉴意义的结论。在分析数据量对于性能影响的实验中,通过分别增加正样本和负样本数量来提升模型性能,实验显示增加正样本对模型是有好处的,加到一定程度性能增长会达到饱和,而增加负样本可以给模型带来相对正样本更大的提升。在测试远场鲁棒性的实验中,给出的结论是训练数据应该谨慎的选择,尽可能反应实际的应用场景。另一个实验是对比CRNN与CNN,当信噪比小时,CRNN优于CNN,而随着信噪比的增大,CRNN与CNN的性能差距越来越小,其结论是RNN对于信噪比小,也就是噪声大的情况有帮助。文章的最后给出了一个综合结果,在0.5 FA/hour的条件下,信噪比为5dB、10dB、20dB时正确率分别为97.71%、98.71%和99.3%。

2.3 Paper 3
image

第三篇文章来自佐治亚理工。这篇文章是针对关键词检索的,唤醒可以看成是一种小资源,简化版的关键词检索,这篇文章对唤醒任务也是有借鉴意义的。由于不受资源的限制,文中采用的解码网络是完整的LVCSR解码网络。其主要工作是对于用于解码的模型的改进,采用了BLSTM 的模型结构,同时用non-uniform MCE这一鉴别性的训练准则进行模型训练。BLSTM模型的优势在于能够学习长时的上下文信息。MCE 是最小分类错误的简称,是一种鉴别性训练准则。鉴别性训练有助于提升模型对于相似发音的鉴别能力。而用non-uniform的MCE是因为作者发现系统中的一个问题,事实上这一问题也存在于第一类的唤醒系统中。在第一类系统中,解码模块用到的声学模型训练是针对所有词的,这个目标与唤醒系统的目标存在不一致,唤醒系统更在意的是关键词的参数指标,因此作者提出non-uniform的准则,使模型更偏重于关键词的训练。

image

第一个式子是帧级别的鉴别性函数,第二个式子是对于误分类的度量公式,第三个公式就是我们训练神经网络所需要的目标函数,l函数是带参的sigmoid函数,l函数的参数就是对于误分类的度量。作者提出的non-uniform MCE 是在目标函数上加了一个错误代价函数ϵ_r (t)
得到了箭头后的公式。加入这一代价函数,使得目标函数可以对不同类型的错误给予不同的惩罚值,有效控制对于关键词分类错误和一般分类错误的区分对待。在实际使用中,随着迭代的进行,这一代价函数会以类似adaboost的方法,不断乘以一个小于1的系数来减小其作用。另外,训练过程中,作者对音素错误率高的词人为的提升其似然值,这也为系统带来进一步的提升,这个被称为BMCE。

实验在switchboard 300小时上进行的,任务中的关键词关于信用卡使用的主题。不同模型性能指标采用FOM: figure-of-merit,FOM越高表示性能越好。实验对于DNN模型和BLSTM模型分别作了对比实验。如下表所示:
image
上表对比了DNN模型采用不同的训练准则得到的性能。CE就是cross entropy,是产生式的训练准则,而后面的MMI、SMBR、MCE和BMCE都是鉴别性准则,几种鉴别性的方法都比CE好一些,而采用作者提出的non-uniform的BMCE可以得到进一步的性能提升。最优的结果相较CE准则有相对3.18%的提升。

image
上表对BLSTM模型采用不同的训练准则得到的性能。可以看到这组结果都比DNN的结果好,在BLSTM模型下,作者提出的训练准则相比baseline有相对5.55%的提升。

3 总结
本届INTERSPEECH的论文中,唤醒技术的文章大多来自于知名公司的实际产品。对这些文章的调研有助于了解目前实际产品中的性能水平,技术细节,很有借鉴意义。通过本文的介绍,希望大家能对唤醒技术有一定的了解。

4 参考文献
[1] Sun M, Snyder D, Gao Y, et al. Compressed Time Delay Neural Network for Small-Footprint Keyword Spotting[C]// INTERSPEECH. 2017:3607-3611.
[2] Arık S Ö, Kliegl M, Child R, et al. Convolutional Recurrent Neural Networks for Small-Footprint Keyword Spotting[C]// INTERSPEECH. 2017:1606-1610.
[3] Zhong M, Juang B H. Non-Uniform MCE Training of Deep Long Short-Term Memory Recurrent Neural Networks for Keyword Spotting[C]// INTERSPEECH. 2017:3547-3551.
[4] Weng C, Juang B H. Discriminative Training Using Non-Uniform Criteria for Keyword Spotting on Spontaneous Speech[J]. IEEE/ACM Transactions on Audio Speech & Language Processing, 2015, 23(2):300-312.
[5] Zhong M, Juang B H. Non-Uniform Boosted MCE Training of Deep Neural Networks for Keyword Spotting[C]// INTERSPEECH. 2016:770-774.

注:
下期主题:语音识别技术之语言模型
时间:11月8日晚7:30
嘉宾:阿里巴巴iDST高级算法工程师,郑昊
报名链接:https://yq.aliyun.com/webinar/play/337

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值