叶 硕,褚 钰,王 祎,李田港
(武汉邮电科学研究院,湖北 武汉 430000)
随着社会快速发展,计算机与人类社会联系越来越密切,面临的任务越来越复杂,运用人机交互的场合也越来越多。人机交互可以分为语言交互与视觉交互,其中语言作为最直接的信息交互方式,承载了人们日常生活中绝大部分信息交换的任务。
智能语音技术作为构建智能化、信息化社会的重要一环,主要分为三个方面的内容:语音识别(automatic speech recognition,ASR)、自然语言处理(natural language processing,NLP)、语音合成(speech synthesis,SS)[1]。语音识别侧重于将人类语言编译成计算机可读的数据,自然语言处理侧重让计算机理解语言内容,而语音合成则是将计算机理解的结果以语音的方式反馈给人类,为下一步交互或操作做准备。
语音识别技术始于20世纪50年代,贝尔实验室率先研发出了10个孤立数字的识别系统[2]。20世纪70年代,苏联科学家首次提出用动态规划方法解决语音信号不等长问题,并在此基础上发展出了动态时间规整(dynamic time warping,DTW)算法[3]。与此同时,语音信号线性预测编码(linear predictive coding,LPC)[4]的提出有效解决了提取语音信号何种参数作为特征的问题。
20世纪80年代,以隐马尔可夫模型(hidden Markov model,HMM)方法[5]为代表的基于统计模型的方法逐渐在语音识别研究中占据主导地位。随后兴起的人工神经网络(artificial neural network,ANN)[6]也为语音识别提供了一个新的研究思路。
2006年,Hinton[7]使用受限波尔兹曼机(restricted Boltzmann machine,RBM)对神经网络的节点做初始化,深度置信网络(deep belief network,DBN)应运而生。该网络通过一种非监督贪婪逐层方法,在尽可能保留建模对象特征信息的基础上,不断拟合获得权重。该方法由于结构上具备多层非线性变换[8]而具有更强的建模能力,可以用来处理诸如语音的复杂信号。此后,深度学习与传统方法相结合的手段占据主流,语音识别进入一个快速发展的阶段。
语音识别系统由多个模块组成,通过建立声学模型(acoustic model,AM)和语言模型(language model,LM)完成识别,如图1所示,其中声学模型和语言模型由数据训练得到。
图1 语音识别模型框图
作为人机交互的前端,语音识别衍生出的方向很多,一段语音中通常包含说话人的三部分内容:语言内容信息、声音特征信息、语音情感信息。因此,语音识别的方向也可以分为:文本识别,将语音中的内容转换成文本,用于人类阅读或为计算机进一步提取内容理解内容做准备;声纹识别,该方向研究说话人身份或特定文本,常用于安防等领域;情绪识别的目标则是对语音中包含的情感进行识别。常用语言模型N-Gram刻画某一字序列发生的概率,该统计语言模型认为任意一个字出现的概率仅与前面有限的N-1个字出现的概率有关,是一种具有强马尔可夫独立性假设的模型[9]。理论上N取值越大效果越好,实际工程发现,N取值增加到一定程度后,反而会影响识别性能;而声学模型则根据不同任务发展出多种模型,文中接下来将对语音识别任务中的不同声学模型进行分析总结。
文本识别的目的是尽可能实现长时语音的实时识别,其识别任务可以根据语音文本的长短分为孤词语音、词汇语音、连续语音识别三个阶段。孤词语音发音时间最短,就汉语而言,一段语音中往往只有一个字或者一个词汇,识别起来最为容易;词汇语音则包含多个词汇,语音持续时间稍长;连续语音识别起来最为困难,通常由一整句或多句话组成,每句话彼此之间还可能存在逻辑联系,且汉语具有同音不同字的情况,因此为了提高识别的准确率,还需要声学模型能够联系上下文语境,这给识别带来极大难度。早期文本识别常以HMM作为声学模型,该模型对语音的最小单位——音素进行建模,实现了由孤词语音到词汇语音的突破。由于语音识别任务中的声学特征矢量取值是连续的,为降低量化误差对识别造成的影响,有学者[10]使用可对任意的概率密度函数进行拟合逼近的高斯混合模型(Gaussian mixture models,GMM)与HMM相结合的手段构建声学模型,该方式取得了良好效果并在很长一段时间里被作为语音识别任务的主流。但由于HMM的转移概率只与前一时刻有关,因此无法充分利用上下文信息,在对长时依赖性语音进行建模时存在缺陷,随着数据量的增加识别性能会受到限制,且在增强GMM拟合能力的同时,需要优化的参数也急剧上升,给声学模型的训练带来极大负担。
连续语音识别的进一步发展,得益于深度神经网络(deep neural network,DNN)的运用,深度学习是一种训练深层结构模型来表示数据之间复杂关系的方法[11],不需要对语音数据分布进行假设[1]。有学者[12]将深度学习引入声学建模,利用更多的网络层数来提取语音的深层次特征,并通过拼帧的方式获得更长时的结构信息,这在一定程度上提高了可识别语音的输入长度,且其输入特征多样,因此利用DNN对声学特征矢量和状态关系进行建模的方式,极大提升了文本识别的准确率。DNN-HMM的声学模型在TIMIT数据库上获得了优异表现[13],国内有学者提出了一种深度置信网络结合深度玻尔兹曼机的改进DNN-HMM语音识别算法,将原先模型的隐藏层改为DBM和DBN的混合形式,有效降低了该模型的错误识别率。还有学者[14-16]将卷积神经网络(convolutional neural network,CNN)引入DNN-HMM,利用其局部卷积、权值共享和池化的特点,通过迭代的方式从低级特征中提取出更复杂的特征用以增加模型稳定性。
为识别大词汇量连续语音,循环神经网络(recurrent neural network,RNN)[17]以其较强的时序数据样本处理能力而成为国内外学者的研究对象,该模型克服了传统DNN-HMM难以对长时语音进行识别的问题。RNN与其他神经网络的不同之处在于,它的每一层信息不仅输出给下一层,同时还输出一个隐状态参与下一次决策,但RNN的声学模型训练使用随机梯度下降法(stochastic gradient descent,SGD),该方法会带来梯度消失问题[18]。有学者[19]改进了RNN为长短时记忆(long short-term memory,LSTM)网络,使用输入门、输出门和遗忘门来控制信息流,使得梯度能在相对更长的时间跨度内稳定地传播。LSTM网络通常由3-5个LSTM层组成,有学者[20]在DNN的隐藏层引入LSTM结构单元,获得了能记忆更长时序的能力,LSTM-DNN模型在噪声环境中获得了优异表现,随后形成了CNN-LSTM-DNN(CLDNN)[21]的架构。
为提高声学模型的性能,避免网络退化[22],有学者进一步优化LSTM的结构,提出Highway LSTM[23](HLSTM),Residual LSTM[24](RLSTM)。HLSTM相比传统LSTM,额外增加了一个控制门(carry gate),通过在相邻LSTM层的神经元间建立一个线性连接,制造出空间上的快速通道,将底层神经元中的表达添加到高层神经元中。该方法为构筑更深层次的LSTM提供了思路。RLSTM借鉴HLSTM的思路,直接利用输出门代替carry gate,该种方法不但有效减少了网络参数,同时也避免了梯度流之间的冲突,具有构建更深层次LSTM网络的能力。
可以看出,文本识别任务的发展经历了GMM-HMM到DNN-HMM,再到LSTM-DNN的声学模型演化,逐步实现了长时连续语音的识别,但在实时语音识别任务中,依赖上下文的LSTM网络反而不具备太大优势,在利用较长时刻信息提升识别准确率的同时也带来了时延。为此,有学者[23]提出延迟受控BLSTM(latency control-BLSTM,LC-BLSTM)对LSTM进行优化,大大提升了识别速度。
声纹识别(voiceprint recognition,VPR)也被称为说话人识别,其方向可分为两大类:说话人辨认(speaker identification)和说话人验证(speaker verification)。前者的目标是从一众说话人群中找到那个特定的说话人,后者则是确认当前说话人是否是目标说话人;声纹识别也可以分为文本相关的(text-dependent)和文本无关的(text-independent)两种[25]。
人的声音不是恒定的,通常会随着说话人的情绪、年龄[26]、身体的健康状况[27]的变化而变化。此外,环境噪声也会对声纹识别造成一定的影响。
在声纹识别领域中,早期学者通过DTW算法[28]进行声纹识别,该种方式只是用于特定说话人的特定文本,具有较大局限性。Reynolds等[29]率先提出高斯混合模型-通用背景模型(Gaussian mixture model-universal background model,GMM-UBM),其结构如图2所示。该模型使用大量非目标用户语音作为背景数据,训练出一个不具备表征具体身份能力的模型,对语音特征的空间分布给出一个预估的概率模型,然后使用目标用户的声纹数据,在该模型上使用最大后验概率(maximum posterior probability,MAP)进行参数微调,在不需要大量目标说话人数据的情况下即可训练出良好的声学模型,实现说话人识别。该模型极大地推动声纹识别的发展,相比于虹膜、指纹等生物特征具有更易获得的优势,因而广泛应用于社保、金融部分公共场所。
图2 GMM-UBM声学模型
但实际中,除了说话人之间有差异,采集语音的设备也有差异,这导致了系统性能不稳定,而GMM-UBM声学模型又无法克服这种信道间的差异,为此,Dehak[30]提出i-vector模型,将说话人和信道的差异作为一个整体,对全局差异进行建模,该模型将说话人模型投影到低维空间,克服了高斯分量相互独立的局限性。但针对持续时间较短的语音,GMM-UBM模型很难在单一特征中寻找到用于区分特定人的信息,因而识别率不理想。有研究者[31]通过特征融合的方式,将语音的主成分分析和常用特征联系起来,获得了更优良的特征参数。与文本识别任务一样,CNN凭借其出色的特征提取能力,也被应用在声纹识别任务中。在对如何将输入卷积神经网络的一维语音信号转变成二维信号的问题上,胡青等[32]提出利用分帧的方法对原始语音信号进行规整,将语音分帧再拼接成二维表达,以满足卷积操作对输入信号的要求;张晴晴等[33]则提出语音信号的两个维度,分别为时域维度和频域维度,时域维度采用多帧串联构成长时特征,频域维度则采用梅尔域的滤波带系数作为参数。
随着神经网络的发展,国内外学者也将目光投向基于神经网络的说话人识别。有学者[34]使用DNN网络,从最后一个隐藏层提取说话人的特征并构筑模型,在识别精度上相比i-vector模型具有更好的表现。有学者[35]针对噪声环境,设计一个预处理步骤来解决噪音问题,通过语音分离手段训练一个DNN来估计噪声语音,然后对i-vector模型进行特征增强,进一步提高强噪声环境下说话人识别的精度。
语音情绪识别方向具有广阔的应用前景,可用于医疗监护、电子安防等诸多领域,作为语音识别的一个难点,如何提取语音情感的有效特征,使用何种特征刻画何种情绪一直是一个重要的研究方向[36],此外,使用深度神经网络进行特征提取也越来越受到重视[37]。
心理学将情感分为了离散和连续两种类型[38-39],最早的情绪识别是基于统计特征进行的离散情感分类[40-41],使用支持向量机(support vector machine,SVM)[42]、K最近邻(K-nearest neighbor,K-NN)、隐马尔可夫模型(hidden Markov model,HMM)[43]、GMM(Gaussian mixture model)[44]等浅层学习方式。
针对连续型情感,Grimm等人[45]最早提出三维情感描述模型,将维度情感识别问题建模为标准的回归预测问题。由于人类情感的时间边界模糊,一段语音中可能包含不止一种情感[46],因此有学者借鉴循环神经网络长时建模能力,对连续型情感语音进行识别,并很快改进为LSTM[47]。在语音情绪识别任务中,国内太原理工大学张雪英团队[48-49]建立了TYUT语音库,并使用了心理学标注的PAD(愉悦度、激活度、优势度)三维情绪模型对情感语音进行描述,实现了基于连续维度的情感语音识别。该方法基于犹豫模糊信息的决策级融合,根据不同特征的识别权重,预测了语音在PAD情绪空间模型中的三个维度值,得出情感语音在连续维度角度的数值。
随着数据量的增长,数据集与数据集之间的差别也愈发明显,不同语种在某些情绪表达方面受文化、地域等诸多因素的影响,导致适用于某一数据集的模型在其他数据集上不一定表现优良,跨越数据集的语音情绪识别也越发受到重视。针对这一问题,国内外学者提出基于迁移学习的语音情绪识别模型。迁移学习可以实现从一个或多个源域中迁移有用的信息到相关的目标域,从而帮助改善目标域的分类性能[50-51]。
不难发现,文本识别和情绪识别的发展有相似之处,识别内容都从短时语音发展到长时语音,声学模型也由RNN过渡到具有更长时序建模能力的LSTM。但无论何种形式的神经网络,模块之间的训练独立进行,比如声学模型的训练就是基于监督性学习,目的是最大化训练语音的概率,对于每一帧训练数据,需要事先知道其所对应的标签才能进行有效的学习,为此,在预处理阶段需要对语音帧进行强制对齐。对于待识别语音的处理,往往也是先对波形进行加窗分帧,然后再提取特征。这种做法使得以不同目的为导向的损失函数不能共享信息,训练出的网络也很难达到最优。
端到端的语音识别(end-to-end speech recognition)将整个语音识别过程视为序列分类的整体问题,能够直接把一个目标序列映射为另一个结果序列[52],这种做法使得模型可以更自由地根据数据自动调节参数,增加模型的契合度。
端到端的做法分为两种,一种是端到端训练(end-to-end training),将训练好的声学模型与语言模型连接在一起,再以某一目标函数训练其中的声学模型部分,计算系统整体的输出;另一种是端到端模型(end-to-end models),将声学模型、语言模型都集成在一个神经网络中,所有参数在训练过程中一起优化[9]。
目前主流的端到端模型有两个,分别为连接时序分类(connectionist temporal classification,CTC)准则[53]和注意力机制(attention mechanism,AM)。
CTC用来衡量输入数据经过神经网络运算后和真实的输出相差有多少,因此并不会关心预测输出序列中每个结果在时间点上是否和输入的序列正好对齐,其独特的blank空格符的引入,使网络对每一个音素的持续时长并不敏感,可以对停顿、迟疑、静音等因个人语言习惯而导致的空白语音进行建模,因而克服了每个人发音特点不同的问题。有学者将CTC与LSTM联系在一起,提出LSTM-CTC模型[22],获得了较HMM-LSTM模型更高的识别精度。
注意力机制实质上是一种权重矩阵,其过程为:计算每个特征的权值,然后对特征进行加权求和,权值越大,该特征对当前识别的重要程度就越大[54]。它模仿人类处理信息方式,将更多注意力集中于某一部分敏感信息而不是全局信息,这不仅提高了识别准确率,也避免了因上下文相关的输入信息被限制在有限的长度当中而导致的模型泛化能力不足的问题[55]。
目前基于Attention机制的端到端语音识别模型已成为研究热点。
主要介绍了语音识别领域中三个大类方向的发展现状与其使用模型,不难发现,端到端的训练方式将是未来的主流。无论是文本识别、说话人识别,还是情绪识别,都是在实验室环境或者相对安静的环境中进行的,与实际应用有一定差别。现实环境中充满了噪声,如何实现复杂噪声环境下的语音识别,是一个热门话题。而进一步,复杂噪声环境往往和声源距离有关,随着距离的增加,噪声种类上升,并且将引入混响等一系列问题,致使信噪比急剧下降,如何提高远场环境下的语音识别效果,是长期的热点。
虽然当前的语音技术已经可以在实验室环境较好地识别一个人的语音,但面对说话人不止一个的鸡尾酒会问题,依然没有办法将语音有重叠的说话人准确分离出来。此外,在情绪识别领域,尽管已经发掘了较多情绪语音的特征,但这些特征对该种情绪贡献多大并未有一个定量的研究,特征之间的相互联系也需要大量工作去发现证明。随着神经网络的快速兴起,如何使用神经网络找到更有效的情绪特征,也是一个需要深入研究的问题。相信随着计算机技术的发展,更快速更准确的识别手段将被发现并应用,人机交互的方式将更加便捷。