书接上文,上一回说到这个front-end技术,这里就继续说back-end技术。

Back-end techniques

现在看看后端技术。这块对应语音处理的第二步,就是通过比较输入语音(语音特征)与预设的语音模型,来完成某项任务。在综述里,后端技术是指,输入的就是未经处理的带噪信号,直接通过神经网络来完成语音任务。和使用前端技术的方法相比,网络结构,甚至包括语音模型(acoustic model)都可能要改变。

我们知道传统语音任务这块是构建GMM-HMM模型,学习输入语音特征和预设语音模型的关系。这是个线性化的过程。当然,核方法也能做到非线性。可是用DNN的话,分类能力可以大大提高。最早的工作就是DNN-HMM。通过DNN学习到具有辨识能力的特征(discriminative feature),然后交给HMM预测。Multk-stream HMM是另一种结构创新,把DNN和传统GMM-HMM模型结合起来。做法是搞一个双流特征,一支走GMM的路,一支走RNN的路,然后再combine一下交给HMM。也可以用LSTM层替换全卷积层。DNN-HMM的局限性是它还是把命运交给了HMM。随着DNN高歌猛进,HMM已经沦为了basiline这样的角色([9])。

一种解决训练数据带噪声的方法就是扩大训练样本,使得样本带有各种噪声,这样提高学习模型的鲁棒性。这种方法太莽,学士们觉得还是修改预训练的语音模型(AM)比较优雅(model adaptation)。但是,修改AM的权重可能导致过拟合。所以,只能修改一部分网络参数。注意这里是指AM模型([10])。

除了修改语音模型之外,还可以在训练AM的时候就让它对噪声敏感(Noise-aware Training,NAT)。这是源于深度学习本身的技术,在输入的时候,除了输入信号(带噪或者不带噪),再附加上估计的噪声。这样,DNN就能学习带噪语音和噪声的关系,从而有益于后面的语音任务,比如音调识别。这个有点像图像处理里面的balance。那么怎么估计这个噪声?传统方法MMSE可行,i-vectors也行。注意i-vector的元素可以是MFCCs,也可以是DNN学习的特征等等。

注意这类噪声估计方法默认噪声在一个utterance(发声)内是稳态的,所以估计的噪声可以应用于整个utterance。实际上这不一定成立。学士们于是搞出了dynamic NAT,使得估计的噪声是时变的。

除了这些方法,多任务学习也可以用在AM学习上。网络可以是DNN,也可以是LSTM(手动摊手)。

Joint Front- and Back-end训练技术

*中庸之为德也,其至矣乎。*既然有前端,有后端,就必然要有联合。

Most research efforts on flighting with the environmental
noise in the past few year were separately made on the system
front end or back end.

总觉得原文这里的flighting用fighting更贴切。speech/feature enhancement和speech recognition单打独斗好多年。而且,前端用的metric(MSE,SNR等等)往往和后端任务要求的(预测精度等)大不一样。(当然有研究验证了前者指标和后者是正相关的,不然这前面的工作就白搞了。)

何不联合起来?最直接的方法就是用前端得到的增强后的信号来re-train那个pre-trained AM。这不需要改变pipeline,只不过是一个re-training。更优雅(意味着更复杂)的方式是joint DNN。比如,把两个预训练的DNN concate起来,第一个DNN做去噪,第二个做声调识别。这两个连起来做一个fine-tune([11])。

有串联就有并联。并联的人认为串联训练受限于单向通信(uni-directional communication)。于是就有平行网络,然后把每个子网络隐层激活给联结起来,再送到下一个隐层。([12])

最后就是end-to-end,一个网络做成所有事情。这里有一个经典工作,“very deep” CNN(不过和视觉的very deep比可差多了)。([13])

Multi-channel techniques

文章这一节其实是个插曲,描述了一个新型的ASR场景:麦克风阵列(Microphone arrays)。这个应用场景很容易理解,有点像多视点相机阵列。不同阵列的信号,可以通过acoustical beamforming的方式给变成单通道的。beamforming是波束成形的意思。beamforming之后,再通过一个post-filtering增强一哈。最后和单通道方法一样,使用back-end技术完成任务。Deep learning也可以用在这里,或用来改进传统的beamforming和post-filtering,或用来做联合训练。单独back-end技术和前面的一样。

最后是总结:(1)从手工设计特征到保留整个信息(例如相位)的自动特征;(2)从front-和back-end分别改进到end-to-end。随着手持设备发展,语音数据越来越多。总之呢,刷分是大公司的事儿,我们呢得夹缝里找创新咯。

这篇综述到此为止。


[9]Amodei, Dario, et al. “Deep speech 2: End-to-end speech recognition in english and mandarin.” International conference on machine learning. 2016.


[10]Mirsamadi, Seyedmahdad, and John HL Hansen. “A study on deep neural network acoustic model adaptation for robust far-field speech recognition.” Sixteenth Annual Conference of the International Speech Communication Association. 2015.


[11]Lee, Kang Hyun, et al. “Two-stage noise aware training using asymmetric deep denoising autoencoder.” 2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2016.


[12]Ravanelli, Mirco, et al. “A network of deep neural networks for distant speech recognition.” 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2017.


[13]Qian, Yanmin, et al. “Very deep convolutional neural networks for noise robust speech recognition.” IEEE/ACM Transactions on Audio, Speech, and Language Processing 24.12 (2016): 2263-2276.

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐