关键词检索(keyword spotting,KWS)的目的是在连续的语音流中检测出预定义关键词,进而为用户提供一种通过语音命令控制智能设备的方式。这方面应用的一个常见例子就是“语音唤醒”,具有语音唤醒功能的设备会在检测到用户说出预先定义的关键词(例如“天猫精灵”)后激活设备并做好与用户进一步交互的准备,否则将继续保持待机状态以避免资源浪费。这种系统通常运行在个人手机、平板电脑、“智能家居”等低功耗和性能受限的设备上,因此要求相应的关键词检索模型必须具有较小的内存占用和较低的功耗。
目前已有关键词检索方法中,基于语音识别系统的方法[1]参数量大,计算消耗高,一般只能运行在服务器端;基于隐马尔可夫模型的方法虽然参数量较少,但延迟太高,并不适合于语音控制这一任务。近些年来,基于神经网络的低资源关键词检索取得了很大的进展,已经成为解决低资源条件下关键词检索问题的有效方法。DeepKWS[2]将关键词检索看作一个分类问题,训练一个深度神经网络直接预测关键词或关键词的子单位,然后通过后验处理方法生成最终的置信度评分,当置信度评分超过设定的阈值时视为检测到相应的关键词。与以往基于隐马尔可夫模型的方法相比,这种基于深度神经网络的方法具有参数量少、低延迟等优点,并且能够获得更高的检测精度。除此之外,最近还有一些研究将循环神经网络(recurrent neural network,RNN)、时延神经网络(time delay neural network,TDNN)和注意力机制应用到关键词检索任务中[3-6],但这些方法仍然需要很多的参数才能使模型达到较好的性能。
相比于其他网络结构,卷积神经网络(Convolutional Neural Network,CNN)更适合于处理人类语音信号[7],并且能够通过共享权重来减少参数量。早期CNN模型的缺点是使用的卷积核的空间尺寸太大,这虽然带来了较大的感受野,但同时也导致模型所需要的参数仍然较多[8]。Tang等人提出使用空间尺寸为3×3的小卷积核来降低模型参数量,并通过增加模型深度和加入扩张卷积来保证输出层能够获得足够大的感受野。在[9]中,他们还引入了残差连接使得模型的层数得以进一步增加,从而进一步提升检测精度。但增加层数同时也带来了模型参数量增多的问题,为了达到最高的精度,他们的模型仍然需要数十万的参数,这无疑限制了其在低资源设备上的应用。
在本文中,我们首先利用Squeeze-and-Excitation(SE)网络[10]为卷积生成的特征图的各个通道赋予不同的权重,使模型的特征提取能力进一步增强,进而提升模型的检测精度;其次,为了降低所提出模型的内存占用,我们将模型中的标准卷积替换为深度可分离卷积[11]。深度可分离卷积通过把卷积操作分解为各个通道上的特征提取和通道间的特征组合两步来降低所需要的参数和计算消耗。在谷歌语音命令数据集上的实验表明,我们提出的模型可以在参数更少的情况下获得高于其他模型的精度。
我们遵循以往工作[9]的流程,在训练数据生成时向每个样本以0.8的概率添加从噪声集中随机选择的背景噪声,然后在100 ms的范围内对样本进行随机时移。预处理工作完成后,使用30 ms窗长、10 ms帧移对每个样本提取40维梅尔倒谱系数(Mel-Frequency Cepstrum Coefficient,MFCC),并将所有帧叠加起来,形成大小为101×40的矩阵作为模型的输入。
Squeeze-and-Excitation网络是一种通过建模特征图各个通道之间的相互依赖关系来提高网络表示能力的新型结构。通过这种结构,网络可以学习使用全局信息来选择性地强调某些通道的特征并抑制不太有用的一些通道。如图1所示,SE网络由两部分组成,首先squeeze将卷积得到的特征图沿着通道维度压缩,并由此为每个通道产生一个统计量;接下来excitation利用上一步得到的结果对各个通道之间的关系进行建模,并为每个通道计算出一个权重;最后通过给原有特征图的各个通道赋予不同的权重来形成新的特征图。
图1 Squeeze-and-Excitation网络的结构示意图
Fig.1 The architecture of Squeeze-and-Excitation network
SE网络的具体实现方式如图2所示,首先将卷积生成的特征图作为输入,通过一个平均池化层计算出每个通道上特征信息的均值。接下来的两个全连接层接收上一步得到的均值,输出每个通道的对应的权重。最后将权重与原始特征图相乘得到新的特征图。除了最基本的结构外,SE网络还能与残差结构进行组合来产生出不同的残差块(Block)。我们会在实验部分对不同结构的残差块进行测试。
图2 SE层的实现方式
Fig.2 The implementation of the SE layer
深度可分离卷积的基本思想是将通道层次和空间层次的信息分开考虑,它把标准的卷积操作分解为两步:首先是独立的对各个通道的空间特征进行抽取,这一步用depConv来表示;接下来则是对各个通道的特征进行组合,这一步用pointConv来表示。
对于一个通道数为Cin,宽度和高度分别为Win,Hin的输入特征图来说,标准的卷积操作在跨越空间和通道的联合维度上计算得到输出特征图。假设每个卷积核的尺寸为Cin×DK×DK,总个数为Cout,输出特征图的尺寸为Cout×Hout×Wout,此操作需要的参数量S和计算量C分别为:
S(Conv)=Cin×DK×DK×Cout
(1)
和
C(Conv)=Cin×DK×DK×Hin×Win×Cout
(2)
与标准的卷积操作不同,深度可分离卷积分成两步来进行输出特征图的生成。首先depConv在每个通道上独立进行特征抽取,这一步需要的参数量S和计算量C分别为:
S(depConv)=1×DK×DK×Cin
(3)
和
C(depConv)=1×DK×DK×Hin×Win×Cin
(4)
接下来pointConv通过Cout个尺寸为Cin×1×1的卷积核对depConv输出的各个通道的特征进行组合,进而生成最后的特征图,这一步需要的参数量S和计算量C分别为:
S(pointConv)=Cin×1×1×Cout
(5)
和
C(pointConv)=Cin×1×1×Hin×Win×Cout
(6)
通过这一分解,深度可分离卷积相比于标准的卷积减少的参数量DS和计算量DC分别为:
(7)
和
(8)
在搭建模型时,我们采用了与Tang等人[9]相似的结构,通过残差连接来提高模型在足够“深”时的学习能力。具体来说,在模型层数足够多的情况下,通过残差学习H(x)=F(x)+x要比直接学习F(x)更加容易和稳定[12],并且残差连接能够抑制反向传播时的梯度衰减问题。
在基线模型Res15[9]的基础上,我们设计了三种不同的网络结构,其区别在于SE层的位置和数量。图3是表现最好的结构(我们将其命名为ReSE16),它由标准的卷积层、SE层、残差块(图3中虚线框内部),归一化层(并未在图中展示)、池化层、输出层组成。相比于Res15,ReSE16通过在第一个卷积层和每个残差块后加入SE层来增强模型的特征提取能力,进而提升模型的检测精度。SE模块确实可以提升模型的精度,但同时也带来了参数量的提升。如表1所示,ReSE16的参数量高达558K,是Res15参数量的2倍多。(表中的m和r分别表示卷积核的高度和宽度,n表示输出的特征图通道数,dw和dh表示扩张卷积的间隔。)
图3 ReSE16模型结构示意图
Fig.3 The structure of ReSE16
受到Mobilenet[13]的启发,我们用深度可分离卷积(DS-Conv)替换ReSE16中的标准卷积(Conv)结构,使模型的参数量减少到75.5K,低于Res15参数量的三分之一。我们将这一模型命名为DSC16,将使用深度可分离卷积的残差块命名为DS-Block。DSC16的模型结构和具体细节在表2中展示。
表1 ReSE16结构及每层的参数量
Tab.1 Structure of ReSE16, along with the number of parameters used in each layer
类型mrndwdh参数量Conv336411576SE--64--512Block×733642⌊i/3」2⌊i/3」520KConv3364161637KAve-pool--64---Softmax--12--768总计-----558K
表2 DSC16结构及每层的参数量
Tab.2 Structure of DSC16, along with the number of parameters used in each layer
类型mrndwdh参数量Conv336411576SE--64--512DS-Block×733642⌊i/3」2⌊i/3」69KDS-Conv336416164672Ave-pool--64---Softmax--12--768总计-----75.5K
尽管DSC16的参数更少,但它仍然能够获得与基线模型差不多或者更高的精度。为了进一步降低参数量,我们将卷积核的个数减少为32个(ReSE16和DSC16中使用的卷积核个数为64),并且逐渐减少残差块的数量。当残差块的个数减少到6个时,模型取得了相对最高的正确率,我们将这一模型命名为DSC14_narrow,其结构和具体实现细节在表3中展示。随着模型层数的减少,残差连接的作用越来越小,甚至会带来反作用。如表4所示,在DSC8_narrow中,我们只保留了8个卷积层,并且去掉了残差连接。我们另外在DSC8_narrow的首个SE层后加入了池化层来减少特征图的空间尺寸,缓解层数减少带来的感受野下降。
表3 DSC14_narrow结构及每层的参数量
Tab.3 Structure of DSC14_narrow, along with the number of parameters used in each layer
类型mrndwdh参数量Conv333211288SE--32--128DS-Block×633322⌊i/3」2⌊i/3」16.5KDS-Conv333216161312Ave-pool--32---Softmax--12--384总计-----18.6K
表4 DSC8_narrow结构及每层的参数量
Tab.4 Structure of DSC8_narrow, along with the number of parameters used in each layer
类型mrndwdh参数量Conv333211288SE--32--128Ave-pool2232---DS-Conv×733322⌊i/3」2⌊i/3」9.2KAve-pool--32---Softmax--12--384总计-----10K
我们在谷歌语音命令数据集[14](Googles Speech Commands Dataset,GSC)上对提出的模型进行了测试。GSC由64721条时长为1秒的录音组成,这些录音包含了由数千个不同的人录制的30个单词的发音,同时还包括如粉红噪音、白噪音等背景噪音样本。
遵循基线模型的设置,我们在数据集中选取了同样的10个单词(“yes”,“no”,“up”,“down”,“left”,“right”,“on”,“off”,“stop”,“go”)和额外的表示静音的“silence”作为关键字,其余的20个单词被用作非关键词,非关键词和静音的占比均为关键词的10%。我们根据录音文件的哈希名将数据集划分出80%用于训练,剩余的20%分别用于验证和测试,这样训练集大约有22000条录音文件,验证集和测试集各自大约有2700条。
本文使用分类任务中常用的交叉熵作为损失函数,并且对所有的模型使用完全相同的方式进行训练。具体而言,我们使用动量为0.9的随机梯度下降法作为优化器,并且加入了衰减系数为10-5的L2正则项。模型的训练轮数设置为26个,批处理大小为64,这样总共产生了大约9000个训练步。初始学习速率设置为0.1,然后每3000步缩小为原来的十分之一。每间隔2轮在验证集上对模型进行评估,并且将在验证集上表现最好的模型作为最终模型保存下来。
我们选择正确率(accuracy)作为主要的评价指标,其计算方式为:
(9)
其中I(a,b)为示性函数,在a,b相同时返回1,否则返回0;yi是第i个样本的真实类别,是第i个样本的模型预测类别;N为测试集的样本数量。
我们同样也绘制了受试者工作特征曲线(receiver operating characteristic, ROC)来展示不同模型的性能差异,ROC曲线图中的横轴表示误警率(false alarm rate,FAR),纵轴表示拒识率(false reject rate,FRR)。ROC曲线下的面积(area under the curve,AUC)越小的曲线越好。
本小节对ReSE16模型的三个变种进行了研究,分别在残差块中的第一个卷积层、第二个卷积层或者两个卷积层后加入SE层,实验结果如表5所示。
表5 Squeeze-and-Excitation网络对模型精度的影响
Tab.5 The impact of Squeeze-and-Excitation network
模型SE层的位置正确率/%参数量ReSE16196.36558KReSE16296.69558KReSE161, 296.52562KRes15*[9]-95.8238KRes17_64-95.94554K
为了验证模型精度的提升来源于SE层而不是单纯的参数量增加,我们在基线系统Res15的基础上增加卷积核的个数和网络的层数得到Res17_64,在参数量相差不多的条件下对模型进行评估,结果同样在表5中展示。可以看到,Res17_64的参数量与ReSE16基本相同,但其精度相比于最好的ReSE16模型仍然还有一段差距。为了更直观的展示各个模型的差异,我们在图4中绘制了表5中第2个、第4个、第5个模型的ROC曲线。
图 4 不同模型的ROC曲线
Fig. 4 ROC curves of different models
3.3.2 与其他模型的比较
本小节对第2节中提出的几种不同大小的模型的精度进行测试,并将他们与另外两种基于CNN结构的模型进行对比,结果在表6中展示。从表6中可以看出,使用大尺寸卷积核的模型(trad_fpool3,tpool2,one_stride1)参数量远大于其他模型;使用小卷积核和扩张卷积的残差模型(Res15,Res15_narrow,Res8_narrow)有效的降低了参数量并且可以进一步提高模型精度。而我们提出的DSC16能够在参数量更少的情况下达到更高的精度。在牺牲一部分精度的情况下,我们最小的模型DSC8_narrow的大小可以被压缩到10K。
表 6 与其他模型的比较
Tab. 6 Comparison with other models
模型正确率/%参数量trad_fpool3*[9]90.51.37Mtpool2*[9]91.71.09Mone_stride1*[9]77.95.76MRes15*[9]95.8238KRes15_narrow*[9]94.042.6KRes8_narrow*[9]90.119.9KReSE1696.69558KDSC1696.1675.5KDSC14_narrow95.0218.6KDSC8_narrow93.6510K
另外我们还在图5中绘制了我们提出的几种模型精度随参数量变化的散点图,并将其与ResNet模型进行对比。从图5中可以看出,我们的模型在任何方面都优于ResNet模型(两条曲线没有相交的地方)。
图5 模型大小与精度的对比
Fig.5 Model size vs. accuracy
本文介绍了Squeeze-and-Excitation网络和深度可分离卷积在低资源关键字检索问题中的应用。我们在一个公共可用的谷歌语音命令数据集上对所提出模型进行了评估,与基线模型Res15相比, 我们提出的DSC16可以达到更高的精度,并且参数量只有其三分之一。在未来,我们将研究如何在现有模型的基础上实现自定义关键词。
[1] 李鹏, 屈丹. 采用词图相交融合的语音关键词检测方法[J]. 信号处理, 2015, 31(6): 702-709.
Li Peng, Qu Dan. Keyword Spotting Using the Lattice Intersection Fusion[J]. Journal of Signal Processing, 2015, 31(6): 702-709.(in Chinese)
[2] Chen Guoguo, Parada C, Heigold G. Small-footprint keyword spotting using deep neural networks[C]∥IEEE International Conference on Acoustics, Speech and Signal Processing, 2014: 4087- 4091.
[3] Arik S O, Kliegl M, Child R, et al. Convolutional Recurrent Neural Networks for Small-Footprint Keyword Spotting. arXiv: 1703.05390, 2017.
[4] Sun Ming, Snyder D, Gao Yixin, et al. Compressed Time Delay Neural Network for Small-Footprint Keyword Spotting[C]∥INTERSPEECH, 2017: 3607-3611.
[5] Shan Changhao, Zhang Junbo, Wang Yujun, et al. Attention-based End-to-End Models for Small-Footprint Keyword Spotting[C]∥INTERSPEECH, 2018: 2037-2041.
[6] Das A, Li Jinyu, Ye Guoli, et al. Advancing Acoustic-to-Word CTC Model with Attention and Mixed-Units[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2019, 27(12): 1880-1892.
[7] Sainath T N, Mohamed A, Kingsbury B, et al. Deep convolutional neural networks for LVCSR[C]∥IEEE International Conference on Acoustics, Speech and Signal Processing, 2013: 8614- 8618.
[8] Sainath T N, Parada C. Convolutional neural networks for small-footprint keyword spotting[C]∥INTERSPEECH, 2015: 1478-1482.
[9] Tang R, Lin J. Deep residual learning for small-footprint keyword spotting[C]∥IEEE International Conference on Acoustics, Speech and Signal Processing, 2018: 5484-5488.
[10] Hu Jie, Shen Li, Sun Gang. Squeeze-and-excitation networks[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018: 7132-7141.
[11] Sifre L. Rigid-motion scattering for image classification[D]. Palaiseau: Ecole Polytechnique, 2014.
[12] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Deep residual learning for image recognition[C]∥CVPR, 2016: 770-778.
[13] Howard A G, Zhu Menglong, Chen Bo, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv:1704.04861, 2017.
[14] Warden P. Launching the speech commands dataset. Google Research Blog, 2017.
Reference format: Xu Menglong, Zhang Xiaolei. A Small Footprint Keyword Spotting System for Voice Control[J]. Journal of Signal Processing, 2020, 36(6): 879-884. DOI: 10.16798/j.issn.1003- 0530.2020.06.009.
徐梦龙 男, 1995年生, 河南开封人。西北工业大学硕士研究生, 主要研究方向为语音识别、关键词识别。
E-mail: j.ker@foxmail.com
张晓雷 男, 1983年生, 河南信阳人。西北工业大学教授, 研究方向为语音信号处理、机器学习。
E-mail: xiaolei.zhang@nwpu.edu.cn