Key Spotting 小总结【关键词搜索】【大部分源于interspeech和ICASSP】

最近转了方向,就看了一些NLP方面的文章,这里做的小总结

目录

A survey on structured discriminative spoken keyword spotting

SMALL-FOOTPRINT KEYWORD SPOTTING USING DEEP NEURAL NETWORKS

Convolutional Neural Networks for Small-footprint Keyword Spotting

Query-by-example keyword spotting using long short-term memory networks

Hello Edge: Keyword Spotting on Microcontrollers

FEDERATED LEARNING FOR KEYWORD SPOTTING

Compressed time delay neural network for small-footprint keyword spotting

Multi-task learning and Weighted Cross-entropy for DNN-based Keyword Spotting

Unrestricted Vocabulary Keyword Spotting using LSTM-CTC

END-TO-END STREAMING KEYWORD SPOTTING

Model compression applied to small-footprint keyword spotting

Stochastic Adaptive Neural Architecture Search for Keyword Spotting


A survey on structured discriminative spoken keyword spotting

这是2019年的一篇综述,本身的文章类型等级不是很好,暂时还没引用。只是因为我对这个还不是很了解。所以提取出其中的几个知识点说明一下:

首先说一下他的大致步骤:

基于LVCSR的KWS包含两个阶段。首先,大型词汇语音识别器将大型音频档案转换为音素或单词格。在第二阶段,基于格的搜索将查找目标关键字集。(这种方法的文献都很老)

Direct KWS:KWS完全独立于语音识别任务。 搜索语音的最直观的方法是直接查找听起来像目标关键字的语音部分

 

常用数据集:Conversational Telephone Speech(CTS),Broadcast News(BN),Conference meeting(MTG),Read speech data。

评判标准: 一些非常少见的就没补

Real time factor(RTF):RT F = P/I。时间I的输入需要P时间。

True detection rate:判断正确/所有的

False alarm rate:Total False Acceptance/Total non-keywords Num,把不应该匹配的当成匹配的。

False alarm per hour per keyword:FAR/Total Keywords Num × Testset duration(H)

True rejection rate:Total True Rejection/Total non-keywords Num,把不应该匹配的当成不应该匹配的

False rejection rate:Total False Rejection/Total Keywords Num,把应该相互匹配成功的当成不能匹配的。

Precision:Total False Rejection/Total Keywords Num

SMALL-FOOTPRINT KEYWORD SPOTTING USING DEEP NEURAL NETWORKS

这是2014年百度和谷歌联合发表在IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP, CCF B)的一篇文章,引用量259。一作是百度的Guoguo Chen,其他的两个作者是谷歌的。文章中提出了一种基于深度学习的、低能耗、低计算力、判别式的KWS方法——Deep KWS。这个方法大致包含三个部分,特征提取,深度网络和最后的Posterior Handling(后处理),特征提取就是常用的转换成向量的方法,深度网络可能就是用了一个比较浅的网络(实验中包括3层和6层两种类型),最后的后处理将基于帧预测概率做了一个转换为某个关键词的置信度,当置信度超过某个阈值就认为包含了这个keyword。实验过程用到了两个数据集,一个是general speech corpus(包含3000h的手工转录语音,称为VS),另一个是keyword specific data(这个貌似更大,对每个keyword有大约2.3k个训练样本,称为KW)。不仅如此,作者实验时还验证了抗干扰性(通过添加噪声)。作者选择的评判标准是FA(第一篇提到过)和FR(结果展示用的ROC曲线),没噪声的时候比HMM提升了大概45%,有噪声的时候大概39%。

Convolutional Neural Networks for Small-footprint Keyword Spotting

这是谷歌在2015年Annual Conference of the International Speech Communication Association.(CCF C)上的文章,引用量230。一作是谷歌的Tara Sainath。这是第二篇文章的推进,将DNN换成了CNN,减少了中间参数,FR提升了27%-44%。(文章比较水,只是看他引用量比较高)

Query-by-example keyword spotting using long short-term memory networks

 

这篇文章和第二篇一样,都是谷歌和百度于2015年在ICASSP联合发布的,一作也是百度的科学家Guoguo Chen。主要贡献就是用了LSTM,当时2015年还没人用这个,还有范例查询,结构可以看上面的图。对范例和我的词都做一个LSTM提取特征,这个过程将变长的音频变成了等长的representation,另外在enrollment阶段,作者将一个发声(utterance)重复了三篇最后求了个平均,然后在runtime阶段,通过比较Cosine distance(余弦距离)判断是否存在keyword。

Hello Edge: Keyword Spotting on Microcontrollers

这篇文章是斯坦福大学在2017年发表在arXiv上的文章。一作是斯坦福的学生Yundong Zhang,引用量80。这篇文章的注重点就是在微处理器上运行keyword spotting程序,内容偏综述。比较了DNN、CNN、RNN、RCNN、DSCNN (Depthwise Separable Convolutional Neural Network)在计算量和精度上的表现,数据集为Google speech commands dataset。结果如下:small, medium, large分别是对训练资源的限制。

 

作者又使用了Quantization的方法,发现操作后的精度并不会有明显的降低。最后,作者将KWS 应用部署在基于 Cortex-M7 的 STM32F746G-DISCO 开发板上,使用量化的DNN模型,KWS在运行时每次推理花费大约 12 毫秒。整个 KWS 应用占用大约 70 KB 内存,包括大约 66 KB 用于权重、大约 1 KB 用于激活、大约 2 KB 用于音频 I/O 和 MFCC 特征。作者公开了源码。

FEDERATED LEARNING FOR KEYWORD SPOTTING

这篇文章是David Leroy(搜诺思公司)在2019年的ICASSP,上发的文章,感觉创新也不是很多,但是联邦学习最近很火,就把它放进来了。他的主要贡献还是用了联邦学习(FedAvg算法),数据集因为没有公开联邦学习的数据集,是自己采的并且公开了,这也是一个工作量吧。模型用melfrequency cepstrum coefficients(MFCC)算法提取特征,然后用CNN(网络不大,就5个卷积层)。

Compressed time delay neural network for small-footprint keyword spotting

这是亚马逊在2017年发表在InterSpeech上的文章。引用量为38。作者在这里将HMM和TDNN(Multi-task learning and weighted cross-entropy for DNN-based keyword spotting,)结合起来。TCNN的运算成本比CNN更小。而且用到了迁移学习,先训练一个用于LVCSR的模型,然后用这个模型初始化KWS模型。同时还用到了多任务学习,在训练的时候将KWS和LVCSR一起,这样提升了效果。为了降低运算量,用到了子采样(sub-sampling)和SVD压缩。

Multi-task learning and Weighted Cross-entropy for DNN-based Keyword Spotting

这篇文章同样是亚马逊在2016年发在InterSpeech上的文章,也是第七篇文章的前身,引用量58。就是少了TDNN和迁移学习,然后多了一个Weighted Cross-entropy(加权交叉熵损失函数),相当于损失函数多加了一项。

Unrestricted Vocabulary Keyword Spotting using LSTM-CTC

这篇是来自上海交通大学在2016年发表在InterSpeec上的文章,引用量13。他用LSTM-CTC模型(不是原创)来实现KWS。首先将提取特征,输入到LSTM-CTC。phone lattice generation(音素词格生成)的方法将网络的输出转换为可搜索的phone lattice交给Hypothesis Search,从而找出和目标关键词最匹配的phone序列。将这个序列的分数和阈值比较。作者另一个新颖之处在于阈值估计模块用于根据一组训练数据和词典来估计不同关键字的不同阈值,而不是对所有关键字使用单个固定阈值。

Baseline用了GMM-HMM和HMM-DNN(6,7都属于这一类,只不过本文用的基础的)。

END-TO-END STREAMING KEYWORD SPOTTING

这篇是谷歌在2019年在ICASSP上发表的文章。他的主要贡献是有两点。第一,用了一个有效的记忆神经网络拓扑SVDF(single value decomposition filter,非原创),目的是更好地利用参数和相关的计算,在DNN的深度上保存以前的激活分布的记忆。第二个贡献是对DNN进行端到端的训练,生成关键字定位分数。Baseline就是第三篇。在精度和计算量上都有所提升。

Model compression applied to small-footprint keyword spotting

这篇文章谷歌在2016年发表在InterSpeech上的文章,引用量48。大致读了一下,主要步骤还是特征提取,分类器DNN,后期平滑等处理。创新点有两点(其实都是应用),用到了低秩矩阵的乘积表示权重矩阵,第二个是用了模型蒸馏(2015年提出的)。作者其他小细节就是用到了一个变化的学习率,会不断变小,还是就是用了分布式训练。

Stochastic Adaptive Neural Architecture Search for Keyword Spotting

这是Sorbonne University索邦大学,QS70左右)在2018年发表在ICASSP上的文章。选他是因为是去年的文章,其他的文章好像都差不太多。作者的目的还是解决计算力的问题,提出用可变的网络架构,这样任务重的时候用较大的网络,反则反之。细节上好像每几层就会输出层,可以自动选在哪一层输出。最后实验在性能和能耗上都有所提升

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章