雷锋网(公众号:雷锋网)按:本文作者牛建伟,地平线语音算法工程师。硕士毕业于西北工业大学,曾任百度语音技术部资深工程师。主要工作方向是语音识别中声学模型的算法开发和优化,负责深度学习技术在声学模型上的应用和产品优化。参与了百度最早的深度学习系统研发,负责优化语音搜索、语音输入法等产品;后负责百度嵌入式语音开发,其负责的离线语音识别性能超越竞品。现任地平线机器人语音识别算法工程师,深度参与地平线“安徒生”智能家居平台的研发。
声学模型
语音技术在近年来开始改变我们的生活和工作方式。对于某些嵌入式设备来说,语音成为了人机交互的主要方式。出现这种趋势的原因,首先是计算能力的不断提升,通用gpu等高计算能力设备的发展,使得训练更复杂、更强大的声学模型(acoustic model, am)变得可能,高性能的嵌入式处理器的出现,使语音识别的终端应用变得可能。
声学模型是人工智能领域的几大基本模型之一,基于深度学习的声学模型发展对于人工智能的拓展和交互方式的延伸都有着十分重要的意义。本期的大牛讲堂,我们邀请到地平线的语音算法工程师牛建伟为大家重磅科普何为声学模型。
自动语音识别
自动语音识别(automatic speech recognition, asr)作为一个研究领域已经发展了五十多年。这项技术的目标是将语音识别作为可以使得人与人、人与机器更顺畅交流的桥梁。然而,语音识别技术在过去并没有真正成为一种重要的人机交流形式,一部分原因是源于当时技术的落后,语音技术在大多数实际用户使用场景下还不大可用;另一部分原因是很多情况下使用键盘、鼠标这样的形式交流比语音更有效、更准确,约束更小。
语音技术在近年来开始改变我们的生活和工作方式。对于某些嵌入式设备来说,语音成为了人机交互的主要方式。出现这种趋势的原因:
首先是计算能力的不断提升,通用gpu等高计算能力设备的发展,使得训练更复杂、更强大的声学模型(acoustic model, am)变得可能,高性能的嵌入式处理器的出现,使得语音识别的终端应用变得可能;
其次,借助近乎无处不在的互联网和不断发展的云计算,我们可以得到海量的语音数据资源,真实场景的数据使得语音识别系统变得更加鲁棒;
最后,移动设备、可穿戴设备、智能家居设备、车载信息娱乐系统正变得越来越流行,在这些设备上,语音交互变成了一个无法避免的交互方式。
语音识别基本组成
语音识别系统主要有四部分组成:信号处理和特征提取、声学模型、语言模型(language model, lm)和解码器(decoder)。
信号处理和特征提取部分以音频信号为输入,通过消除噪音、信道失真等对语音进行增强,将语音信号从时域转化到频域,并为后面的声学模型提取合适的特征。声学模型将声学和发音学的知识进行整合,以特征提取模块提取的特征为输入,生成声学模型得分。
语言模型估计通过重训练语料学习词之间的相互概率,来估计假设词序列的可能性,也即语言模型得分。如果了解领域或者任务相关的先验知识,语言模型得分通常可以估计得更准确。解码器对给定的特征向量序列和若干假设词序列计算声学模型得分和语言模型得分,将总体输出分数最高的词序列作为识别结果。
关于声学模型,主要有两个问题,分别是特征向量序列的可变长和音频信号的丰富变化性。可变长特征向量序列问题在学术上通常有动态时间规划(dynamic time warping, dtw)和隐马尔科夫模型(hidden markov model, hmm)方法来解决。
而音频信号的丰富变化性是由说话人的各种复杂特性或者说话风格与语速、环境噪声、信道干扰、方言差异等因素引起的。声学模型需要足够的鲁棒性来处理以上的情况。
在过去,主流的语音识别系统通常使用梅尔倒谱系数(mel-frequency cepstral coefficient, mfcc)或者线性感知预测(perceptual linear prediction, plp)作为特征,使用混合高斯模型-隐马尔科夫模型(gmm-hmm)作为声学模型。在近些年,区分性模型,比如深度神经网络(deep neural network, dnn)在对声学特征建模上表现出更好的效果。基于深度神经网络的声学模型,比如上下文相关的深度神经网络-隐马尔科夫模型(cd-dnn-hmm)在语音识别领域已经大幅度超越了过去的gmm-hmm模型。
我们首先介绍传统的gmm-hmm声学模型,然后介绍基于深度神经网络的声学模型。
传统声学模型(gmm-hmm)
hmm模型对时序信息进行建模,在给定hmm的一个状态后,gmm对属于该状态的语音特征向量的概率分布进行建模。
1.混合高斯模型
如果一个连续随机变量服从混合高斯分布,则它的概率密度函数为:
混合高斯模型分布最明显的性质是它的多模态,这使得混合高斯模型可以描述很多显示出多模态性质的屋里数据,比如语音数据,而单高斯分布则不合适。数据中的多模态性质可能来自多种潜在因素,每一个因素决定分布中特定的混合成分。如果因素被识别出来,那么混合分布就可以被分解成有多个因素独立分布的集合。
那么将上面公式推广到多变量的多元混合高斯分布,就是语音识别上使用的混合高斯模型,其联合概率密度函数的形式如下:
在得到混合高斯模型的形式后,需要估计混合高斯模型的一系列参数变量:
,我们主要采用最大期望值算法(expectation maximization, em)进行参数估计,公式如下:
其中,j是当前迭代轮数,
为t时刻的特征向量。gmm参数通过em算法进行估计,可以使其在训练数据上生成语音观察特征的概率最大化。此外,gmm模型只要混合的高斯分布数目足够多,gmm可以拟合任意精度的概率分布。
2.隐马尔可夫模型
为了描述语音数据,在马尔可夫链的基础上进行了扩展,用一个观测的概率分布与马尔可夫链上的每个状态进行对应,这样引入双重随机性,使得马尔可夫链不能被直接观察,故称为隐马尔可夫模型。隐马尔可夫模型能够描述语音信号中不平稳但有规律可学习的空间变量。具体的来说,隐马尔可夫模型具有顺序排列的马尔可夫状态,使得模型能够分段的处理短时平稳的语音特征,并以此来逼近全局非平稳的语音特征序列。
隐马尔可夫模型主要有三部分组成。对于状态序列
(1)转移概率矩阵
,描述马尔可夫链状态间的跳转概率:
(2)马尔可夫链的初始概率
,其中
;
(3)每个状态的观察概率分布
,按照上一节的介绍,我们会采用gmm模型来描述状态的观察概率分布。在这种情况下,公式可以表述为:
隐马尔可夫模型的参数通过baum-welch算法(在hmm上em算法的推广)进行估计。
cd-dnn-hmm
虽然gmm-hmm在以往取得了很多成功,但是随着深度学习的发展,dnn模型展现出了明显超越gmm模型的性能,替代了gmm进行hmm状态建模。不同于gmm模型,dnn模型为了获得更好的性能提升,引入了上下文信息(也即前后特征帧信息),所以被称为cd-dnn-hmm(context-dependent dnn-hmm)模型。在很多测试集上cd-dnn-hmm模型都大幅度超越了gmm-hmm模型。
首先简单介绍一下dnn模型,dnn模型是有一个有很多隐层的多层感知机,下图就是具有5层的dnn,模型结构上包括输入层、隐层和输出层。对于第
层,有公式:
其中
分别表示,l层的输出向量,权重矩阵,输入向量以及偏差向量(bias);
一般称为激活函数,常用的激活函数有sigmoid函数
或者整流线性单元(rectifier linear unit)
。在语音识别上应用的dnn模型一般采用softmax将模型输出向量进行归一化,假设模型有l层,在特征向量为
,输出分类数为
的情况下,则第
类的输出概率为:
相比于gmm模型,dnn模型具有一些明显的优势:
首先,dnn是一种判别模型,自身便带有区分性,可以更好区分标注类别; 其次,dnn在大数据上有非常优异的表现,伴随着数据量的不断增加,gmm模型在2000小时左右便会出现性能的饱和,而dnn模型在数据量增加到1万小时以上时还能有性能的提升; 另外,dnn模型有更强的对环境噪声的鲁棒性,通过加噪训练等方式,dnn模型在复杂环境下的识别性能甚至可以超过使用语音增强算法处理的gmm模型。
除此之外,dnn还有一些有趣的性质,比如,在一定程度上,随着dnn网络深度的增加,模型的性能会持续提升,说明dnn伴随模型深度的增加,可以提取更有表达性、更利于分类的特征;人们利用这一性质,提取dnn模型的bottle-neck特征,然后在训练gmm-hmm模型,可以取得和dnn模型相当的语音识别效果。
dnn应用到语音识别领域后取得了非常明显的效果,dnn技术的成功,鼓舞着业内人员不断将新的深度学习工具应用到语音识别上,从cnn到rnn再到rnn与ctc的结合等等,伴随着这个过程,语音识别的性能也在持续提升,未来我们可以期望将可以和机器进行无障碍的对话。
雷锋网注:本文由大牛讲堂授权雷锋网发布,如需转载请联系原作者,并注明作者和出处,不得删减内容。有兴趣可以关注公号地平线机器人技术,了解最新消息。
本文作者:大牛讲堂