【笔记】Small-footprint Keyword Spotting Using Deep Neural Networks

SMALL-FOOTPRINT KEYWORD SPOTTING USING DEEP NEURAL NETWORKS

Date: 2021.8.17

Author: Xin Pan


在这里插入图片描述

摘要

我们的应用需要一个KWS系统,这个系统需要满足这些条件。内存占用小,计算消耗小,高精度。为了满足这些条件,我们提出了一个基于DNN的方法。训练一个直接预测关键词或者关键词字词单元的DNN,后边接一个后验概率处理方法产生最终的置信度得分。对比传统的HMM系统,该系统达到45%相对的性能提升,同时在babble噪声下达到39%的相对性能提升。

想解决的问题

一个能够运行在移动设备的高精度,低延迟,低内存消耗的KWS系统。KWS是为了检测音频中的预定义关键词

准备知识

在传统的HMM-Filler模型中,每个关键词有一个自己的HMM,用其他的非关键词训练一个Filler模型。在解码过程中使用Viterbi解码,但是在HMM topo上的解码很消耗计算资源。

方法

作者给这个方法起名叫做DeepKWS,14年那时候的论文都喜欢叫做Deep阿巴阿巴的哈哈。

在这里插入图片描述

DeepKWS尝试直接预测关键词或者关键词的子词单元,再用一个后续的后验概率处理单元处理得到置信度分数。这个方法的好处就是不需要序列搜索(解码),序列解码那么势必就会导致一个问题就是整句解码的延迟会比较高。因此呢本方案就是每10毫秒做一次决策。

首先利用VAD将非静音区分出去,之后论文详细介绍了VAD怎么做的。这里不再讨论。

特征提取

本方法在所有的语音区内提取40-dim FBbank,窗长25ms,每10ms计算一次。将相邻的帧堆叠一起构成了上下文相关的输入帧。这里的输入窗是不对称的,为什么呢? 因为每增加一个未来帧都会增加10ms的一个延迟。实验中该方案使用30过去帧+10未来帧。论文里说这么做是最好的平衡了精度延迟和计算量。

DNN设计

labeling

基线系统的HMM系统,NN的label是CD(context-dependent) HMM状态。更具体的就是基线系统使用2002个CD状态。

对于提出的DeepKWS系统,label可以表示完全的关键词或者关键词额子词单元。后边的实验结果是完全关键词的因为它超过了子词建模单元。

标签是怎么产生的呢? 本文使用一个50M参数的LVCSR系统做了强制对齐,使用完整的词作为标签而不是HMM状态。这么做是有优点的:

  1. 更小的输出标签就更节省空间,因为最后一层的单元少了;
  2. 一个简单的后验决策就可以完成决策过程;
  3. 全词模型可以有更好的性能。
训练

最大化CE loss作为目标,公式如下
F ( θ ) = ∑ j l o g P i j F(\theta)=\sum_j{log P_{ij}} F(θ)=jlogPij
表示的是 x j x_j xj j帧的DNN后验输出在第 i t h i^{th} ithlabel上的概率就是 P i j P_{ij} Pij。在优化的过程中使用了SGD和learning rate decay。

后验处理

这里是说怎么把DNN的后验处理为置信度。其实决策很简单就是如果置信超过一个预定义的值就激活决策。这里作者假设只针对一个词做置信度决策,因为他可以很简单的扩展到多个关键词上。、

后验平滑

接下来的解释就很有意思了。我还真是不理解作者说从DNN出来的值是噪声(noisy),这里是说有毛刺或者说跳变的意思吗?

TODO

  • 检查这个noisy到底是什么意思呢?

为了解决这个问题也是很简单的就在一个长度 w s m o o t h w_{smooth} wsmooth的窗内做平滑。假设 p i j ′ p'_{ij} pij就是平滑后的后验:
p i j ′ = 1 j − h s m o o t h + 1 ∑ k = h s m o o t h j p i l p'_{ij}=\frac{1}{j-h_{smooth}+1}\sum^{j}_{k=h_{smooth}}p_{il} pij=jhsmooth+11k=hsmoothjpil
其中的 h s m o o t h = m a x ( 1 , j − w s m o o t h + 1 ) h_{smooth}=max(1,j-w_{smooth}+1) hsmooth=max(1,jwsmooth+1)就是窗内第一帧的索引。这个窗是在frame这个维度上的,在frame那个维度上做滑动的平均。自己刚才推了一次大概上是那个样子的。

置信度计算

这置信度计算有点意思啊我草。第 j t h j^{th} jth的置信度是这么计算的
c o n f i d e n c e = ∏ i = 1 n − 1 max ⁡ h m a x ≤ k ≤ j p i k ′ n − 1 confidence=\sqrt[n-1]{\prod_{i=1}^{n-1}\max_{h_{max}\leq{k}\leq{j}}p'_{ik}} confidence=n1i=1n1hmaxkjmaxpik
其中 h m a x = m a x ( 1 , j − w m a x + 1 ) h_{max}=max(1,j-w_{max}+1) hmax=max(1,jwmax+1)​是窗内的第一个索引。实验中 w s m o o t h = 30 w_{smooth}=30 wsmooth=30 w m a x = 100 w_{max}=100 wmax=100​​。然而实际上新能对于窗的大小并不十分的敏感,上下帧输入的堆叠帮助编码了上下文信息。

后来和同事讨论了一下,觉得这里的confidence计算就是通过计算每个i维度在窗内中最大值,最后把所有的最大值相乘得到了最后的confidence。

基线系统

基线系统使用的是标准keyword-filler HMM系统。Filler模型的构建有几个方法。从全连接的音素单元到完全您的LVCSR系统,其中的词典是除去了关键词的。后边的这个系统明显得到了更好一点的性能。但是这个办法的缺点就是消耗计算资源和内存以及速度会慢。因此本文实现了一种三音素HMM作为filler。

数据集

训练集

  1. 3000小时通用数据,代号为VS;
  2. 特定的关键词数据,代号KWS。每个关键词2.3k正样本,133k负样本。

在这里插入图片描述

数据集大概包括这些关键词。对于“ok google”这个关键词有40k正样本用于训练。

测试集

每个关键词有1k正样本,70k负样本。正样本和负样本比例是1.4%。对于关键词“ok google”有2.2k正样本。

噪音数据使用的是babble噪声以10db进行仿真。

结果对比

首先这里放上一个论文的截图。
在这里插入图片描述

本文对比HMM-DNN和DeepKWS两种方法中的KWS系统,两个模型的DNN部分使用相同的网络结构,但是输出层单元和输入的上下文维度不一样。这就导致两个模型的参数量不一样,HMM-DNN是373K参数,而DeepKWS是244K。

在这里插入图片描述

从图3可以看出来,使用一个voice search corpus(我其实认为这就是一个一般的ASR数据)就是VS那个结果训练测试。相比于用VS+KWS的方式是差很多的。那么从实验的分析中可以看出来最好的就是用ASR pretrain 再去用一个KWS去fine-tuning的这种方法是最好的。

之后把模型的结构增加之后,KWS直接训练的模型效果不好了,究其原因是因为数据少不能支撑起现在的这个模型。

在这里插入图片描述

从图5,后边作者还在噪音环境下进行了测试结果就是也变好了。

评价指标

ROC曲线,包括false alarm 和false reject。

总结

作者提出的DeepKWS这个模型在干净环境和噪声环境下都是超过了传统的HMM的方案。但是现在的应用只是一个是/否的决策,不能够对关键词的截止时间进行建模。这是作者认为的一个缺点。

附言

很抱歉大家,因为单位购买数据库有版权问题我不能把论文全文放在这里,但是还是欢迎大家一起讨论。论文原文请前往IEEE官网或其他网站搜索阅读。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
自动增益控制(Automatic Gain Control,简称AGC)和多样式训练(Multi-Style Training)对于稳健小体积的有着重要意义。 首先,自动增益控制(AGC)是一种技术,可以自动调整信号的增益,以确保信号在传输过程中保持适当的强度。在语音识别和音频处理中,AGC可以有效地处理各种输入信号的音量差异,使其更适合于后续的处理过程。通过调整增益,AGC可以提高信号质量、减少噪音干扰,从而使得小体积系统更加稳健。 其次,多样式训练(Multi-Style Training)是一种训练方法,通过使用大量不同风格和语调的语音样本来增强语音识别系统的鲁棒性。传统的语音识别系统通常只在标准风格的语音上进行训练,导致在其他风格的语音输入时识别率下降。而采用多样式训练方法,系统可以学习到更广泛的语音样式,使得在各种语音输入情况下都能取得较好的识别效果。对于小体积的系统来说,多样式训练可以提高系统的鲁棒性,减少输入多样性带来的挑战。 综上所述,自动增益控制和多样式训练对于稳健小体积系统的重要性体现在它们能够提高信号质量、减少噪音干扰,并且增加系统对各种不同语音风格的适应能力。这些技术的应用可以使得小体积系统在不同环境和语音输入情况下都能取得较好的效果,提高用户体验和系统的实用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值