(KWS-DNN)Small-footprint keyword spotting using deep neural networks

半世苍凉 提交于 2020-02-19 11:47:31

会议:ICASSP 2014
论文:Small-footprint keyword spotting using deep neural networks
作者:Guoguo Chen ; Carolina Parada ; Georg Heigold

Abstract

我们的应用程序需要具有内存占用量小,计算成本低和精度高的关键字查找系统。为了满足这些要求,我们提出了一种基于深度神经网络的简单方法。训练深度神经网络以直接预测关键词或关键词的子词单元,然后采用后处理方法产生最终的置信度得分。相对于基于竞争性的基于隐马尔可夫模型的系统,关键字识别结果实现了45%的相对改进,而在有杂音的情况下,性能则显示了39%的相对改进。

INTRODUCTION

由于智能手机和平板电脑的快速发展,使用语音与技术进行交互变得司空见惯。例如,Google提供了在Android设备上通过语音搜索[1]的功能,而Apple的iOS设备配备了名为Siri的会话助手。这些产品允许用户点击设备,然后说出查询或命令。

我们有兴趣通过开发一个系统来连续不断地收听特定的关键字来启动语音输入,从而使用户拥有完全的免提体验。这在开车等情况下尤其有用。所提出的系统必须高度准确,低延迟,占用空间小,并且必须在计算受限的环境(例如现代移动设备)中运行。在设备上运行系统避免了连接到服务器进行识别的延迟和功耗问题。

关键字搜寻(KWS)旨在检测音频流中的预定义关键字,这是一种提供所需免提界面的潜在技术。尽管大多数建议的方法都不适合计算受限环境中的低延迟应用,但在KWS中已有大量文献。例如,几个KWS系统[2],[3],[4]假定使用大词汇量连续语音识别系统(LVCSR)进行音频的脱机处理以生成丰富的晶格。在这种情况下,他们的任务集中在高效索引和搜索晶格中的关键字。这些系统通常用于搜索大型音频内容数据库。相反,我们专注于检测音频流中的关键字而没有任何延迟。

关键字发现的常用技术是“关键字/填充程序隐马尔可夫模型”(HMM)[5],[6],[7],[8],[9]。尽管最初是在二十多年前提出的,但它仍然具有很高的竞争力。在这种生成方法中,针对每个关键字训练HMM模型,并根据语音信号的非关键字段(填充词)训练填充模型HMM。在运行时,这些系统需要Viterbi解码,根据HMM拓扑的不同,这在计算上可能会很昂贵。最近的其他工作探索了基于大利润公式[10],[11]或递归神经网络[12]的关键字发现的判别模型。,[13]。这些系统显示出相对于HMM方法的改进。但是,基于大幅度公式化的方法需要处理整个话语以找到最佳关键字区域,这会增加检测延迟。我们也一直在研究用于关键词发现的递归神经网络,但是这项工作正在进行中,在本文中将不再讨论。

我们提出了一种适用于移动设备的基于深度神经网络的简单判别式KWS方法。我们将其称为Deep KWS。训练深度神经网络以直接预测关键词或关键词的子词单元,然后采用后处理方法产生最终的置信度得分。与HMM方法相比,该系统不需要序列搜索算法(解码),从而实现了更简单的实现,减少了运行时计算并减小了内存占用。它还每10毫秒做出一次决定,从而最大程度地减少了等待时间。我们显示,即使使用较少量的数据进行训练,Deep KWS系统在干净和嘈杂的测试集上也优于基于HMM的标准系统。

我们将在第2节中介绍基于DNN的KWS框架,并在第3节中介绍基于基线HMM的KWS系统。实验设置,结果和一些讨论将在第4节中介绍。第五部分以结论结尾。

DEEP KWS SYSTEM

Deep KWS框架如图1所示。该框架包括三个主要部分:(i)特征提取模块,(ii)深度神经网络和(iii)后处理模块。特征提取模块(i)执行语音活动检测,并每帧(10 ms)生成特征向量。使用左上下文和右上下文堆叠这些特征以创建更大的向量,并将其作为输入馈送到DNN(第2.1节)。我们训练DNN(ii),以根据堆叠特征预测每个输出标签的后验概率。这些标签可以对应于关键字的整个词或子词(第2.2节)。最后,一个简单的后处理模块(iii)将每帧产生的标签后代组合成用于检测的置信度得分(第2.3节)。
在这里插入图片描述
在图1的示例中,音频包含关键短语“ okay google”。在这种情况下,DNN仅具有3个输出标签:“ okay”,“ google”和“ filler”,并且生成(iii)中所示的帧级后验分数。后处理模块组合这些分数以提供该窗口的最终置信度分数。

2.1. Feature Extraction
特征提取模块是我们建议的Deep KWS系统和基准HMM系统所共有的。

为了减少计算量,我们使用了语音活动检测系统,并且仅在语音区域中运行KWS算法。在[14]中描述的语音活动检测器使用13维PLP特征及其delta和double-delta作为已训练的30分量对角协方差GMM的输入,GMM在每一帧都生成语音和非语音后验。随后是手动调谐状态机(SM),该状态机通过识别许多帧语音后验超过阈值的区域来执行时间平滑。

对于语音区域,我们基于在25 ms的窗口中每10 ms计算的40维对数滤波器组能量来生成声学特征。堆叠连续的帧以添加足够的左右上下文。输入窗口是不对称的,因为将来上下文的每个其他帧都会给系统增加10毫秒的延迟。对于我们的Deep KWS系统,我们使用10个将来的框架和30个过去的框架。对于HMM基线系统,我们使用5个将来的帧和过去的10个帧,因为这提供了准确性,延迟和计算之间的最佳权衡[15]。

2.2. Deep Neural Network
深度神经网络模型是一个标准的前馈全连接神经网络,具有 ķ 隐藏层和 ñ每层隐藏节点,每个节点计算上一层输出的加权和的非线性函数。最后一层具有softmax,其输出每个输出标签的后验估计。对于隐藏层,我们已经对常规逻辑和整流线性单位(ReLU)函数进行了实验[16],并一致地发现ReLU在我们的开发集上优于逻辑,同时减少了计算量。我们仅提供ReLU激活的结果。

网络的大小也取决于输出标签的数量。在以下小节中,我们将详细描述神经网络的标签生成和训练。我们还描述了一种可以进一步提高KWS性能的学习技术。

Labeling
对于我们的基线HMM系统,如先前的工作[8],[9]和[17]一样,神经网络输出层中的标签是上下文相关的HMM状态。更具体地,基线系统使用如[15]中所述选择的2002上下文相关状态。

对于建议的Deep KWS,标签可以代表关键字/关键字短语中的整个单词或子单词单元。我们会报告带有完整字词标签的结果,因为这些词优于子字词单元。这些标签是在训练时使用我们的50M参数LVCSR系统[18]通过强制对齐生成的。使用整个单词标签作为网络的输出而不是HMM状态具有以下优点:(i)输出标签的库存较少,减少了最后一层中神经网络参数的数量,这在计算上很昂贵(ii)简单的后验可以使用处理方法来做出决定(如第2.3节中所述),(iii)假设训练数据对于所考虑的每个单词标签都足够,则整个单词模型可以实现更好的性能。

Training
假设pij是第i个标签和第j个框架xj的神经网络(请参阅第2.1节),其中i取介于0,1,…,n−1之间的值,其中n为总标签数,0为非标签数 -关键词。 通过最大化标记训练数据{xj,ij} j的交叉熵训练准则来估计深度神经网络的权重和偏差(上一段)。

优化与软件框架DistBelief进行[19] ,[20] ,支持分布在深层神经网络多CPU计算。我们将异步随机梯度下降用于学习率,并且具有指数衰减。

Transfer learning
转移学习是指这样的情况,其中(一些)网络参数已使用现有网络的相应参数进行初始化,并且没有从头进行训练[21],[22]。在这里,我们使用具有适当拓扑的深度神经网络进行语音识别,以初始化网络的隐藏层。培训中所有层均已更新。转移学习具有潜在的优势,即隐藏层可以通过利用大量数据并避免不良的局部最优来学习更好,更鲁棒的特征表示[21]。在我们的实验中,我们发现情况确实如此。

2.3. Posterior Handling
在第2.2节中解释的DNN 会生成基于帧的标签后验。在本节中,我们讨论将DNN后代组合到关键字/关键字短语置信度分数中的简单但有效的方法。如果可信度超过某个预定阈值,则将做出决定。我们描述假设单个关键字的置信度计算。但是,可以轻松修改它以同时检测多个关键字。

Posterior smoothing
Confidence

BASELINE HMM KWS SYSTEM

我们实现了标准的关键字填充器隐马尔可夫模型作为基准。基本思想是为关键字创建一个HMM,并创建一个HMM来表示语音信号(填充模型)的所有非关键字段。填充模型有多种选择,从完全连接的语音单元[6]到完整的LVCSR系统,其中词典排除了关键字[23]。显然,后一种方法可以产生更好的填充模型,但是在运行时需要较高的计算成本,并且内存占用量也要大得多。考虑到我们应用程序的限制,我们实现了一个基于三音机的HMM模型作为填充器。与先前的工作[6],[23]相反,我们的实现使用了深度神经网络来计算HMM状态密度。

图2显示了Keyword-Filler HMM拓扑。通过使用此拓扑运行Viterbi解码并检查最佳路径是否通过关键字HMM,可以实现关键字检测。错误警报(不存在关键字,但KWS系统给出肯定的决定)和错误拒绝(存在关键字,但KWS系统给出否定的决定)之间的权衡,是由关键字和填充模型之间的转换概率控制的。高的转移概率导致高的虚警率,反之亦然。

Keyword-Filler模型的一个重要优点是在训练时它不需要特定于关键字的数据。它只是通过一般语音数据的似然最大化简单地学习了所有三音机HMM状态的生成模型。关键字的知识只能在运行时通过在解码器图中指定关键字来引入。但是,如果可以使用关键字特定的数据进行训练,则可以使用转移学习(第2.2节)来提高系统性能,即,通过使用在通用语音数据上训练过的网络初始化声学模型网络,然后继续使用关键字来对其进行训练特定的数据。
在这里插入图片描述

EXPERIMENTAL RESULTS

实验是在一个数据集上进行的,该数据集结合了真实的语音搜索查询(作为否定示例)和短语(包括关键字),有时还包含查询(作为肯定示例)。表1中显示了所评估的关键字的完整列表。我们训练了一个单独的Deep KWS,并为每个关键短语构建了一个单独的Keyword-Filler HMM KWS系统。结果以修改后的接收器工作特性(ROC)曲线的形式呈现,其中我们用Y轴上的错误拒绝率代替了真实的阳性率。曲线越低越好。通过扫描图2中关键字HMM路径的转移概率来获得基线系统的ROC。。对于Deep KWS系统,可通过扫描置信度阈值来获得ROC。我们为每个关键字生成一条曲线,并将所有测试的关键字垂直(以固定的FA率)平均化。以0.5%的FA率进行详细比较,这是实际应用中的典型工作点。
在这里插入图片描述
我们将Deep KWS系统和HMM系统与具有不同大小的神经网络进行比较(第4.3节),评估两个系统的迁移学习效果(第4.2节),并在存在babble noise的情况下显示性能变化(第4.4节)。

4.1. Data
我们使用两组训练数据。第一组是通用语音语料库,由3,000个小时的手动转录语音(称为VS数据)组成。第二组是关键字特定数据(称为KW数据),其中包括每个关键字约2.3K的训练示例和133K否定示例,其中包括匿名语音搜索查询或其他短短语。对于关键字“ okay google ”,有40K个积极示例可供培训。

评估集包含每个关键字大约1K个肯定示例和70K个否定示例,占正负比率的1.4%,以匹配预期的应用程序使用情况。同样,对于关键字“ okay google ”,我们使用了2.2K个正面示例。噪声测试集是通过向该测试集添加10db信噪比(SNR)的噪声而生成的。最后,我们使用正样本和负样本的大小相似的不重叠集合作为开发集来调整解码器参数和DNN输入窗口大小参数。

4.2. Results
我们首先评估为基线HMM和Deep KWS系统训练的较小神经网络的性能。两种系统都使用2.1中描述的前端。他们都使用了一个网络,该网络具有3个隐藏层,每层具有128个隐藏节点,并且具有ReLU非线性。但是,两个网络的参数数量并不相同。用于基线HMM系统的DNN声学模型使用10个左框架和5个右框架的输入窗口大小,并输出2,002个HMM状态,从而产生大约373K参数。Deep KWS使用30个左框架和10个右框架,但仅生成单词标签,从而根据评估的关键短语将输出标签清单减少到3或4。Deep KWS的参数总数不超过244K。

图3显示了两个系统的性能。 基线3×128(VS)是指具有在语音搜索语料库上训练的DNN声学模型的HMM系统。 基准3×128(VS + KW)是使用关键字特定数据适应DNN声学模型后的同一系统。 Deep 3×128(KW)是指针对关键字特定数据训练的拟议Deep KWS系统。 最后,如我们在2.2节中介绍的,使用经过VS数据训练的网络初始化Deep 3×128KW网络时,Deep 3×128(VS + KW)表现出性能。

从结果可以清楚地看出,即使使用更少的数据和更少的参数来训练,建议的Deep KWS仍胜过基线HMM KWS系统。 例如,请参见图3中的Deep 3×128(KW)与Baseline 3×128(VS + KW)。在非常低的虚警率下,增益较大,这对于我们的应用而言是理想的工作点。 在0.5%的FA率下,深3×128(VS + KW)系统相对于基准3×128(VS + KW)可获得45%的相对改进。 使用第2.2节中所述的DistBelief框架,对KW数据上的网络进行培训仅需几个小时,而对VS + KW上的网络进行培训则需要大约一周的时间。
在这里插入图片描述
4.3. Model Size
图4给出了评估两个使用6×512网络的系统时的性能。 在这种情况下,基线的参数数量增加到2.6M,而Deep模型达到2.1M。 Deep 6×512(KW)系统实际上比较小的3×128模型性能差,我们推测这是由于KW数据不足以训练大量参数。 但是,当两个系统都以VS + KW数据进行训练时,相对于其相应的3×128系统,我们观察到了一致的改进。 同样,Deep KWS系统具有优于基准的性能。

4.4. 噪声鲁棒性
我们还在带噪声的测试集上测试了相同的模型,该测试集是通过向原始测试集添加10db SNR的噪声而生成的。 比较图3和图5中的基线3×128(VS + KW),FA率为0.5%时,HMM的FR率从5%FR翻倍到10%FR。 Deep KWS系统遭受类似的降级。 但是,相对于基准而言,它可实现39%的相对改进。

CONCLUSION

我们提出了一种新的基于深度神经网络的关键字发现框架。实验结果表明,在干净和嘈杂的条件下,该框架均优于基于HMM的标准系统。我们进一步证明,仅用KW数据训练的Deep KWS模型比使用KW和VS数据训练的基线HMM KWS系统产生更好的搜索性能。Deep KWS系统还导致实现更简单,从而消除了对解码器的需求,减少了运行时计算,并且模型更小,因此受到我们嵌入式应用程序的青睐。

由于我们正在处理的检测应用程序仅需要实时的是/否决策,因此本文中提出的框架不会明确建模关键字结束时间。在将来的工作中,我们将扩展该方法以对关键字边界进行建模。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!