Abstract
关键字发现(KWS)构成了人机界面的主要组成部分。 KWS的目标是在低虚警(FA)率下最大化检测精度,同时最小化占用空间,延迟和复杂性。 为了实现它们,我们研究了卷积递归神经网络(CRNN)。 受大规模先进语音识别系统的启发,我们结合了卷积层和递归层的优势,以利用局部结构和远程上下文。 我们分析了架构参数的影响,并提出了提高性能的培训策略。 仅需约230k参数,我们的CRNN模型就可以产生可接受的低延迟,并且在5 dB信噪比的情况下,以0.5 FA /小时的速度达到97.71%的精度。
关键词:关键词发现,语音识别,卷积神经网络,递归神经网络。
1. Introduction
在人类之间最常见的交互方式的激励下,对话式人类技术界面在众多应用中变得越来越流行。高性能的语音到文本转换和文本到语音转换构成了此类接口的两个重要方面,因为大多数计算算法都是针对文本输入和输出而开发的。对话界面的另一个至关重要的方面是关键字发现(KWS),也称为唤醒词检测,可基于用户提供的语音输入在不同的计算状态之间进行转换。 KWS系统旨在从连续的音频流中检测特定的关键字。由于它们的输出确定设备的不同状态,因此对于非常低的误报警(FA)率而言,非常高的检测精度对于实现令人满意的用户体验至关重要。典型应用存在于以下环境中:背景音频,混响失真以及嵌入KWS的设备的扬声器所产生的声音的干扰。在这种情况下,KWS系统应表现出强大的性能。此外,计算复杂度和模型大小是KWS系统的重要关注点,因为它们通常嵌入在内存和计算资源有限的消费类设备中,例如智能手机或智能家居传感器。
已经有数百万台带有嵌入式KWS系统的设备。传统的KWS方法基于具有序列搜索算法的隐马尔可夫模型[1]。随着深度学习的进步和可用数据量的增加,最先进的KWS已被深度学习所取代基于学习的方法由于其卓越的性能[2]。基于深度学习的KWS系统通常使用结合压缩技术[3,4]或多样式训练方法[5,6]的深度神经网络(DNN)。 DNN的潜在缺点是它们会忽略输入的结构和上下文,并且音频输入在时域或频域中可能具有很强的依赖性。为了通过共享权重利用此类本地连接模式,针对KWS探索了卷积神经网络(CNN)[7,8]。 CNN的潜在缺点是,如果没有宽的过滤器或较大的深度,它们就无法在整个帧中对上下文建模。还研究了具有连接主义时间分类(CTC)损失的KWS的递归神经网络(RNN)[9,10],与前述具有交叉熵(CE)损失的DNN和CNN模型[2-6]不同。然而,鉴于这样的系统的应用的雄心勃勃的目标,在低FA率下不能获得高精度。与DNN相似,RNN的潜在局限性在于对输入要素进行了建模,而没有学习连续时间步长和频率步长之间的结构。最近,[11]提出了具有CTC损失的卷积递归神经网络(CRNN)体系结构。但是,尽管模型尺寸较大,类似于RNN,但无法在低FA率下获得高精度。
在本文中,我们专注于开发一种具有CR损失的CRNN的生产质量的KWS系统,该方法具有CE损失,且占地面积小,适用于单个关键字。我们的目标是将CNN和RNN的优势结合起来,并在训练过程中采用其他策略来改善总体表现,同时保持较小的占地面积。本文的其余部分安排如下。在第2节中,我们描述了小尺寸KWS的端到端体系结构和培训方法。在第3节中,我们解释了实验和相应的结果。在第4节中,我们提出结论。
2. Small-footprint keyword spotting
2.1. End-to-end architecture
我们专注于典型的CRNN架构,其灵感来自成功的大型语音识别系统[12-14]。 为了使这些体系结构适合小尺寸的KWS,需要将模型尺寸缩小2到3个数量级。 我们将在缩小模型大小的同时分析不同参数对性能的影响。
图1显示了具有相应参数的CRNN体系结构。 原始时域输入被转换为每通道能量归一化(PCEN)mel频谱图[8],以实现简洁的表示和有效的训练。 (我们尝试过的其他输入表示产生的效果更差二维PCEN功能作为卷积层的输入给出,该卷积层在时间和频率维度上均采用了2-D滤波。 卷积层的输出被馈送到双向递归层,其中可能包括门控递归单元(GRU)[15]或长短期记忆(LSTM)单元[16],并处理整个帧。 循环层的输出提供给完全连接(FC)层。 最后,对两个神经元应用softmax解码,以获得相应的标量得分。 我们在所有层中都使用整流线性单位作为激活函数。
在语音识别中,具有循环层的大规模体系结构通常使用CTC损失的变体来解码最可能的输出标签。 除了由于目标的条件独立性假设导致的建模限制外,CTC损失具有很高的计算复杂度,并且只有在模型容量足够大以至于可以从大型数据集中有效学习时,才能产生良好的性能。 由于我们专注于小尺寸架构,因此选择了在训练过程中优化的损失函数作为估计和目标二进制标签的CE损失,从而表明帧是否与关键字相对应。
与CTC不同,要进行带有CE损失的训练,训练样本的精确对准很重要。 我们使用深度语音2 [14],一个大规模的语音识别模型,以获取每个时间实例的关键字字符𝑐“(1≤𝑘≤𝐾)的估计概率分布。由于CTC解码产生峰值分布,我们进一步使输出随时间平滑并获得平滑的字符 占用分数𝑐”,𝑡。 然后,我们使用算法1中所示的启发式算法来获得关键字的开始时间和结束时间。在切掉关键字以覆盖边缘情况时,添加了额外的短填充。 获得的比对的准确性明显超出了人类感知的时间范围。
3. Experiments and Results
3.1. Data and training
我们为关键字“ TalkType”(可以发音为一个单词或两个单词)开发了KWS系统。我们选择T = 1.5秒的帧长,该帧长足以捕获“ TalkType”的合理发音。使用16 kHz的采样率,每个帧包含24k原始时域样本。在10 ms的步幅和40个通道上获得了相应的PCEN mel频谱图,输入维数为40'151。整个数据集包括大约1.6万个不同样本,这些样本是从超过5000个扬声器中收集的。数据集按6-1-1的比例分为训练集,开发集和测试集。通过施加附加噪声来增强训练样本,其功率由从[-5,15] dB间隔采样的信噪比(SNR)确定。加性噪声是从代表背景噪声和语音的数据集中采样的,总长度超过300小时。为了提供针对对准误差的鲁棒性,还通过引入随机定时抖动来增加训练样本。我们使用ADAM优化算法进行训练[17],批处理大小为64。学习率最初选择为0.001,然后下降为0.0003。
我们的评估考虑了流场景,以便对持续时间T的重叠帧执行推理。将帧之间的偏移选择为100毫秒(理想情况下,它应比频谱图跨度长得多,而比推理延迟要短得多-请参见第5节)。 3.2)。我们关注的指标是每小时的错误拒绝率(FRR)和错误警报(FA),通常将其固定在所需的值,例如1 FA / hr [7]。噪声会添加到开发和测试集中,其幅度取决于SNR值。我们注意到,收集到的样本已经很嘈杂,因此,如果将其精确定义为信息承载信号与噪声的功率之比,则实际SNR会更低。与我们对训练集的扩充类似,从代表性的背景噪声和语音中采样负样本和噪声数据集。
3.2. Impact of the model architecture
表1显示了针对具有5 dB SNR的开发集的各种CRNN架构的性能。 我们注意到,所有模型都经过训练,直到收敛为止,尽管它需要不同的时期数。 我们观察到总体趋势,即较大的模型尺寸通常会产生更好的性能。 增加卷积滤波器的数量或增加循环隐藏单元的数量是提高性能的两种有效方法。 增加循环层的数量具有有限的影响,并且GRU比LSTM更可取,因为它可以以较低的复杂度获得更好的性能。
期望在给定推理延迟,存储器和功耗的资源约束的情况下限制模型大小。按照[7],我们选择大小限制为250k(比[11]中具有CTC损失的体系结构小6倍以上)。在本文的其余部分,默认架构是用粗体突出显示的参数集,在模型大小与性能之间进行权衡的情况下,这也对应于一个相当理想的点。
我们将性能与基于[7]的CNN架构进行比较。鉴于输入维数和训练数据的差异,我们重新优化了模型超参数以获得最佳性能,同时将参数数量上限限制为250k以进行公平比较。对于具有5 dB SNR的相同开发套件,最佳的CNN架构在1 FA /小时的条件下可实现4.31%的FRR,在0.5 FA /小时的条件下可达到5.73%的FRR。与所选的具有229k参数的CRNN模型的FRR值相比,这两个指标均高约51%。有趣的是,对于较高的SNR值,性能差距较低。我们将在3.4节中对此进行详细说明。
回想一下,该模型是双向的,并且以100毫秒的步幅在重叠的1.5秒窗口上运行。但是,由于模型的大小较小,并且初始卷积层中的时间跨度为8,因此我们能够比实时轻松地进行推理。所选的具有229k参数的基于CRNN的KWS模型的推理计算复杂度约为30M浮点运算
给定由体系结构大小强加的表示能力限制,增加训练数据中的正样本数量会对性能产生有限的影响。 图2显示了0.5 FA /小时的FRR(对于具有5 dB SNR的测试集)与训练时使用的唯一“ TalkType”样本数量的对比。 性能饱和的发生速度比具有类似数据类型但具有大型模型(例如,数据模型)的应用程序快 [14]。
除了增加阳性样品的数量外,我们还观察到通过增加通过硬开采获得的相关阴性样品的多样性,性能得到了改善。 通过在非常大的公共视频数据集(未用于训练,开发或测试集)上使用预收敛模型,我们可以挖掘负面样本。 然后,继续使用挖掘出的阴性样本进行训练,直到收敛为止。 如图2所示,测试集的FRR的严重负采收率降低了。
对于具有各种SNR值的测试集,图3显示了每小时的FRR与FA的关系。对于较高的SNR,可以获得较低的FRR,并且对于较低的FA速率,将开始稳定的性能。请注意,增强训练样本的SNR值(以dB为单位)是从平均值为5 dB的分布中采样的,超过此值会发现性能下降。可以通过增加较低的SNR来提高较低SNR值的性能,但这是以降低较高SNR的性能为代价的,这可以归因于模型的有限学习能力。
我们观察到循环层的好处,特别是对于较低的SNR值。随着SNR的提高,具有CNN架构的CRNN架构(改编自[7],如第3.1节所述)的性能差距减小。我们假设循环层更好地适应单个样本的噪声特征,因为每一层都处理来自整个帧的信息。相比之下,CNN需要较宽的过滤器和/或较大的深度才能实现此级别的信息传播。
3.5. Far-field robustness
我们的数据集已经包含以不同距离值记录的样本,这对于大多数应用(例如智能手机KWS系统)应具有代表性。但是,某些应用程序,例如智能家居KWS系统,需要在远场条件下具有高性能。
图4:具有变化的SNR值的远场测试仪,每小时1 FA的FRR与附加距离的关系。稳定:基线表现,虚线:具有远场增强训练。
图4显示了附加距离导致的性能下降。远场测试集是通过在给定距离上为原始测试集增加与各种配置相对应的脉冲响应来构成的(考虑到达度等的不同值)。正如在[19]中所解释的,尤其是与较高的噪声一起,观察到了性能的显着下降。为了提供针对这种恶化的鲁棒性,我们考虑使用远场增强的训练样本进行训练,并使用与测试集中的脉冲响应不同的各种脉冲响应。对于更远的距离,这种增强可显着减少性能下降。但是,由于训练/测试不匹配,原始数据集的性能较差。
4。结论
我们研究了小尺寸KWS系统的CRNN。我们介绍了模型大小和性能之间的权衡,并演示了在权衡的情况下参数的最佳选择。该模型的容量限制具有多种含义。仅通过增加正样本的数量就可以限制性能的提高,但是,严格的负挖掘可以提高性能。应仔细选择训练集以反映应用环境,例如噪声水平或远场条件。总体而言,在0.5 FA /小时(从用户角度来看这是一个可接受的值)时,我们的模型在SNR值分别为5 dB,10 dB和20 dB的情况下,可以达到97.71%,98.71%和99.3%的精度。我们的数值性能结果似乎比文献中的其他KWS模型更好。但是,由于数据集和实际关键字(即推理任务)的差异,直接比较没有意义。鉴于人类行为在KWS任务中表现出色,我们仍然认为在性能方面还有进一步改进的空间。