随着语音识别技术越来越热,声学模型的训练方法也越来越多,各种组合和变化也是层出不穷,而随着深度学习的兴起,使用了接近30年的语音识别声学模型HMM(隐马尔科夫模型)逐渐被DNN(深度神经网络)所替代,模型精度也有了突飞猛进的变化,其中声学模型模型结构经历了从经典的GMM-HMM,到DNN-HMM,再到DNN+CTC的转变,本文列出了其中的常见模型,权当是一篇导读性质的文章,供大家学习时参考。
1、GMM-HMM声学模型
经典的声学模型要数GMM-HMM,我们熟知的创业导师李开复先生的成名作SPHINX系统,其核心框架就是GMM-HMM框架,其中GMM(高斯混合模型)用来对语音的观察概率进行建模,HMM(隐马尔可夫模型)则对语音的时序进行建模,详细的框架如下图所示。
其中状态序列使用HMM进行建模,相关原理介绍详见《隐马尔科夫模型(HMM),一个不可被忽视的统计学习模型||语音识别中的HMM》,而输出概率使用高斯混合模型GMM建模,如下图所示:
GMM-HMM声学模型在一段时间内统治了语音识别领域,但任何方法都有自身的局限性,GMM-HMM也不例外,具体如下:
• 优点:GMM训练速度快,声学模型较小,容易移植到嵌入式平台
• 缺点:GMM没有利用帧的上下文信息,GMM不能学习深层非线性特征变换。
2、DNN-HMM声学模型
2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neural Network)引入到声学模型建模中,将FFDNN的输出层概率用于替换之前GMM-HMM中使用GMM计算的输出概率,引领了DNN-HMM混合系统的风潮。之后,很多研究者使用了FFDNN、CNN、RNN、LSTM等多种网络结构对输出概率进行建模,由此产生了FFDNN-HMM、CNN-HMM、RNN-HMM、LSTM-HMM等诸多DNN-HMM声学模型,并取得了很好的效果。DNN-HMM的通用架构如下图所示:
2.1 FFDNN-HMM声学模型
FFDNN-HMM建模框架中,输入特征使用了在当前帧左右拼帧的方式来实现模型对时序信号长时相关性的建模,模型输出则保持了GMM-HMM经常使用的trihone共享状态(senone)。具体框架如下图所示:
FFDNN-HMM声学模型的优缺点体现在:
• 优点:FFDNN能利用帧的上下文信息,比如前后个扩展5帧,FFDNN能学习深层非线性特征变换,表现优于GMM
• 缺点:不能利用历史信息来辅助当前任务
2.2 RNN-HMM声学模型
尽管FFDNN-HMM通过拼帧的方式对上下文信息进行了建模,但是毕竟拼接的帧数有限,建模能力不强,因此引入了RNN(循环神经网络)增强了长时建模的能力,RNN隐层的输入除了接收前一个隐层的输出之外,还接收前一时刻的隐层输出作为当前输入,通过RNN的隐层的循环反馈,保留了长时的历史信息,大大增强了模型的记忆能力,语音的时序特性通过RNN也得到了很好的描述。
RNN-HMM声学模型的优缺点体现在:
• 优点:RNN能有效利用历史信息,将历史消息持久化;在很多任务上,RNN性能变现优于FFDNN
• 缺点:RNN随着层数的增加,会导致梯度爆炸或者梯度消失
2.3 LSTM-HMM声学模型
RNN的简单结构在模型训练进行BPTT(Backpropagation Through Time)时很容易引起梯度消失/爆炸等问题,因此在RNN的基础上引入了LSTM(长短时记忆模型),LSTM是一种特殊的RNN,通过Cell以及三个门控神经元的特殊结构对长时信息进行建模,解决了RNN出现的梯度问题,实践也证明了LSTM的长时建模能力优于普通RNN。
2.4 CNN-HMM声学模型
语音识别都是基于时频分析后的语音谱完成的,而其中语音时频谱是具有结构特点的。要想提高语音识别率,就是需要克服语音信号所面临各种各样的多样性,包括说话人的多样性(说话人自身、以及说话人间),环境的多样性等。卷积神经网络提供在时间和空间上的平移不变性卷积,将卷积神经网络的思想应用到语音识别的声学建模中,则可以利用卷积的不变性来克服语音信号本身的多样性。简单来说,可以认为是将整个语音信号分析得到的时频谱当作一张图像一样来处理,采用图像中广泛应用的深层卷积网络对其进行识别。
CNN-HMM声学模型中,不得不提CLDNN(CONVOLUTIONAL, LONG SHORT-TERM MEMORY,FULLY CONNECTED DEEP NEURAL NETWORKS),在CLDNN中有两层CNN的应用,算是浅层CNN应用的代表。对于建模能力来说,CNN擅长减小频域变化,LSTM可以提供长时记忆,而DNN适合将特征映射到独立空间,在CLDNN中将CNN,LSTM和DNN串起来融合到一个网络中,获得比单独网络更好的性能。CLDNN网络的通用结构是输入层是时域相关的特征,连接几层CNN来减小频域变化,CNN的输出灌入几层LSTM来减小时域变化,LSTM最后一层的输出输入到全连接DNN层,目的是将特征空间映射到更容易分类的输出层。
CLDNN模型通用架构如上图所示,CNN的优点在于对于语音信号,采用时间延迟卷积神经网络可以很好地对信号进行描述学习,比其他神经网络更能捕捉到特征的不变形。
3、DNN +CTC声学模型
上面提到的DNN和RNN等建模技术在模型训练时需要满足一个条件,就是训练数据中每一帧都要预先确定对应的标注,即对应DNN输出状态的序号,训练特征序列和标注特征序列必须是等长的,而为了得到标注,需要使用已有模型对训练数据序列和标注序列进行强制对齐,但是基于大数据训练时标注的准备比较耗费时间,同时对齐使用的模型精度往往存在偏差,训练中使用的标注会存在错误。
CTC(Connectionist Temporal Classification)准则的引入,解决了标注序列与特征序列不等长的问题,通过前向后向算法自动学习语音特征中的模型边界,这种准则与用于时序建模的神经网络(如LSTM)的结合可以直接用于端到端的模型建模,同时,CTC准则引入了blank类别,用于吸收发音单元内部的混淆性,更加突出模型与其他模型之间的差异性,因此CTC具有非常明显的尖峰效果,如图中所示。
细心的人应该能够注意到,此时的模型不再出现HMM字眼,取而代之的是CTC(Connectionist Temporal Classification),CTC技术实际是颠覆了语音识别使用接近30年之久的HMM框架,但既然是颠覆性技术,其效果的好坏和技术的普及都还需要一个过程,CTC目前是顶尖研究机构的新宠,如果专注于算法研究的人,应该好好研究一下这个方法,赶上技术发展的前沿。
结语
声学模型和语言模型是语音识别中最核心的两个模型,对于想从事语音识别算法研究的人来说,都是必须掌握的基本功。
关于语言模型常用建模方法的介绍详见上周文章:
《语音识别中的语言模型:N-Gram语言模型vs. RNN语言模型》
【参考文献】
1、http://www.ednchina.com/news/article/201609070801
2、https://www.cnblogs.com/qcloud1001/p/7941158.html
3、https://blog.csdn.net/dujiajiyi_xue5211314/article/details/53943313