- 文献综述(或调研报告):
关键词唤醒系统(KWS)最初是用高斯混合模型(GMM)加隐马尔可夫模型(HMM)实现的,由于马尔可夫模型的遍历性等,需要很大的计算量和存储量,但人们还是花了很多时间为此实现方法添加了很多补丁,希望能优化它的性能。
随着神经网络的兴起,各种基于神经网络的识别方法便因运而生,如深度神经网络(DNN)、卷积神经网络(CNN)、二值神经网络(BNN)等各种神经网络。2014年,谷歌提出用DNN来实现KWS的方法[1],与HMM方法相比,减少了计算量和内存占用。随着CNN在声学建模中变得很流行,在各种大小词汇任务中都比DNN有所改进[2,3,4],并且由于DNN在性能和模型尺寸方面的劣势,谷歌最后又提出基于CNN的解决方案[5],其性能比前者最大提升了41%。模型的更换促使训练方法的更迭,如果将之前的模型全部推倒,重新建立一套体系,那又将花费大量的精力,并且前人做的研究具有很高的参考价值,因此后来的研究者们提出的方法大多是在原来的模型中运用各种神经网络替换部分结构,以提高系统的整体性能,下面将介绍各具特色的实现方案。
KWS最重要的指标便是它的识别率,突尼斯迦太基大学提出了上下文相关 - 卷积神经网络 - 隐马尔可夫模型(CD-CNN-HMM)架构[6], 最高可达到96.71%的精确度,这种关键词唤醒系统,采用两阶段方法。 在第一阶段,使用CD-CNN-HMM将连续语音的给定输入话语解码为语音流。 在第二阶段中,将使用CART从该语音流中搜索关键词。这种架构显示出CNN优于其他体系结构的优势,如深度神经网络,标准神经网络和高斯混合模型。但这些结果并未过多考虑计算的复杂度以及存储量,而且由于第一阶段解码全部输入语音,因此实时性得不到保证,因此这在低功耗、低计算量以及低存储量的前提下难以实现。
除识别率之外,KWS系统的一项重要指标便是做一次推理所需要的计算量,计算量越小,系统的功耗和实时性都将得到改善。比萨大学提出了基于可分离卷积神经网络(SCNN)的架构[7],根据深度可分离卷积神经网络的谱图,可以清楚地看到每个维度都有不同的物理意义,因为它们代表不同的物理维度。因此,通过堆叠两个一维卷积来研究谱图更为合适。这种网络更适合音频处理,我们可以更有效地利用数据结构并减少所需的计算操作和参数数量。意大利的Snips公司提出了基于扩张卷积网络的架构[8],该网络架构专注于端到端的无状态时态建模,它在限制计算量并避免饱和问题的前提下可以充分利用上下文的信息。扩张卷积可以跳过一些输入值,以便卷积核应用于更大的区域。 因此,网络可以在更大规模上运行,而不会增加参数的数量,从而减小了计算量。
前面所列举的实现方案网络架构固定,不具备自适应性,在识别难度比较低的时候会浪费计算资源,因为此时不需要复杂的结构便能得到很高的精确度,由此人们提出了能自动调整的实现方案。索邦大学和Facebook联合提出了随机自适应神经网络结构搜索(SANAS)[9]的网络架构,该架构能在做推理时调整神经网络的体系结构,以便在语音信号易于处理时使用小型体系结构(沉默,低噪音等),当信号难以处理时,将使用更大规模的网络以达到高识别率,其中神经网络体系结构搜索(NAS)方法能在识别率和网络规模之间进行权衡取舍[10,11,12]。东南大学提出了基于二进制权重网络(BWN)的能量有效可重构加速器(EERA-KWS)[13]。其中的自适应可重构加速器具有数模混合近似计算单元,可以有效地处理BWN,基于背景噪声的SNR预测和网络输出置信度检测,BWN加速器数据路径便可以动态地和自适应地重新配置为4,8或16位,从而实现自适应性。
在现实应用中,很多高识别率的模型很难部署到硬件上,因为它们的计算量太大、功耗太高,而KWS系统需要更简单的结构、更高的识别率以及更低的功耗。目前功耗在微瓦级的KWS系统有如下几种:基于深度神经网络(DNN)的KWS [14]具有270KB的大片上权重存储器,它的四个PE位于270kB的存储器中,最大限度地减少用于数据传输的功耗,专门为DNN设计了一款具有顺序访问模式的0.6V、8T定制存储器,通过独立控制神经元和权重的范围为6–32b的可配置定点位精度,可以实现高度灵活和紧凑的存储结构,此款KWS系统消耗功率为288mu;W。 二值化卷积神经网络(BCNN)使用52KB SRAM[15],BCNN的权重和激活值位于片上存储器中,其中权重存储器占37KB和共享数据存储器占4KB。在网络进行计算时,99%的操作是加法,其中1增量加法占95.9%, 因此定制一种加法器以支持精确的1增量加法和16位近似加法,最终在2.5MHz,0.57V时的唤醒功率为141mu;W。 基于LSTM的SoC使用105KB的SRAM[16],KWS系统采用LSTM可以实现更低的延迟并且使用更少的MAC计算单元便能达到较高的精度,模型权重完全存储在32kB 片上SRAM中,并且能够以8b线性格式和4b非线性格式编码存储,从而带来50%的内存压缩。最终KWS在谷歌语音命令数据集(GSCD)上的准确度达到90.8%,同时将功耗降低到16.11mu;W。
从KWS的发展历史看,从最初的基于隐马尔可夫模型到如今基于神经网络的各种实现方法,KWS系统的性能都已大大提升,无论是识别精度、功耗、计算复杂度还是存储,都已显著优化,尽管如此,但基于神经网络的架构往往还是需要高计算和大内存,这使得保持始终开启状态的KWS芯片很难运行在亚微瓦级功耗的范围内。除此之外,虽然目前对于KWS的研发已取得很大的进展,但是对于恶劣的环境,系统的性能将会下降,比如高噪声环境,又比如口音问题,因此未来KWS地发展在提高其整体性能的同时还应该有针对性地应对恶劣的环境条件以及口音问题,以增强系统的广泛适用性。
参考文献:
[1] Chen G, Parada C, Heigold G. Small-footprint keyword spotting using deep neural networks[C]//2014 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2014: 4087-4091.
[2] O. Abdel-Hamid, A. Mohamed, H. Jiang, and G. Penn, “Applying Convolutional Neural Network Concepts to Hybrid NN-HMM Model for Speech Recognition,” in Proc. ICASSP, 2012.
