混合CTC/Attention模型在普通话识别中的应用

2022-08-18 09:08许鸿奎张子枫卢江坤周俊杰胡文烨姜彤彤
计算机与现代化 2022年8期
关键词:多任务识别率解码

许鸿奎,张子枫,卢江坤,周俊杰,胡文烨,姜彤彤

(1.山东建筑大学信息与电气工程学院,山东 济南 250101; 2.山东省智能建筑技术重点实验室,山东 济南 250101)

0 引 言

近年来,随着科技的迅猛发展,人工智能成为一大热门话题,自动语音识别(Automatic Speech Recognition, ASR)技术应运而生[1]。语音识别作为人工智能设备必备的功能,可以实现人与机器的实时交流,因此,如何提高语音识别的准确率成为当前的研究热门。我国在人工智能领域成果众多,处于世界领先地位,在语音识别方面也有一定的突破,但由于我国幅员辽阔导致各地区人口的普通话发音略有不同,因此识别率受到影响。

语音识别技术按照发展顺序可分为传统技术和端到端技术。在过去几十年中,语音识别主要依赖于以隐马尔可夫模型(Hidden Markov Model, HMM)和高斯混合模型(Gaussian Mixture Model, GMM)为基础的传统技术,利用GMM对语音状态序列的发射概率进行建模,采用HMM对语音内部时序状态转换进行建模[2-3],这种GMM-HMM技术实现了对连续语音的识别,但缺点也很明显,该模型在使用时需手工制作发音词典,并且要对音频和音素进行预定义对齐[4]。要想实现一个基于GMM-HMM的语音识别系统,就必须分别训练声学模型、发音词典和语言模型等多个模块,即使是对研究者来说也非常麻烦,HMM中的不合理假设也对这种传统的语音识别技术造成诸多影响。随着语音数据量的增加,数据也越来越复杂,导致GMM-HMM声学模型的训练时间越来越长,识别率方面也进入了瓶颈期,难以提高。

虽然近年来深度神经网络为语音识别领域做出了巨大贡献,但这些改变都是对声学模型的改进,一个自动语音识别系统由各种复杂模块组合而成,这些改进并不能简化传统语音识别系统的流程,于是有学者提出了端到端的语音识别模型,端到端模型主要有链接时序分类技术(Connectionist Temporal Classification, CTC)[5-6]和注意力(Attention)[7]这2种。端到端语音识别系统可以实现语音到文本的直接映射,由特征直接转录为文本[8],大大简化了语音识别的流程,还可以实现不同语种在同一种框架下训练、识别,经过几年的发展,端到端模型的识别率已经与最先进的传统模型不相上下[9-11]。然而基于CTC方法的语音识别模型当前时刻输出只与当前时刻输入有关,没有考虑上下文的关联性,实现了从语音特征到文本序列的对齐,这实际上是一种硬对齐,同时CTC的输出条件独立假设也制约了该方法的性能。Attention模型中的对齐关系也没有先后顺序的限制,这种对齐的盲目性给训练带来了困难。

针对以上问题,本文开展基于CTC和Attention的端到端普通话识别研究。考虑到2类端到端模型各有优势,本文提出一种混合CTC/Attention的端到端模型,并将其应用于中文普通话的识别中。在模型构成方面提出VGG-BiLSTM的组合编码器,利用VGG编码器提取局部特征,BiLSTM编码器进行序列建模。模型训练过程采用多任务学习(Multi Task Learning, MTL)的方式,引入联合训练参数λ,研究不同λ值对模型训练及准确率的影响。该混合模型充分利用Attention机制的上下文建模优势,通过CTC避免对齐关系过于随机,加快了训练过程。并尝试在解码阶段加入一个训练好的RNN语言模型(Language Model, LM),与混合CTC/Attention模型进行浅层融合,以进一步降低错误率。

1 相关工作

从20世纪开始,我国学者便开始了对中文普通话识别的研究。进入90年代后基于GMM-HMM方法的语音识别模型在我国得到了广泛应用,对连续中文语音的识别取得了重大突破,识别正确率与速率都有了质的飞跃[12]。

之后Yu等[13]提出用DNN代替原来的GMM,构建了一种基于DNN-HMM的混合模型,该DNN-HMM模型应用于大词汇量连续中文识别任务上取得了令人满意的结果,识别成功率大大提高。还有学者发现长短时记忆网络(Long Short-Term Memory, LSTM)具有很强的长时建模能力,能够充分利用语音的长短时信息,于是提出了用LSTM替代DNN的模型,中国学者将这种基于LSTM的模型应用于中文识别任务中,实验表明该模型在中文语音识别任务中具有非常好的识别性能[14-15]。

姚煜等[16]提出了基于双向长短时记忆神经网络(Bidirectional Long Short-Term Memory, BiLSTM)的声学模型构建方法,并将链接时序分类(CTC)成功地应用于该声学模型训练中,搭建出了一个不依赖于HMM技术的端到端中文普通话识别系统,实验结果显示该端到端系统不但使错误率大幅降低,还减少了训练时间和解码速度。杨德举等[17]提出了基于一维门控卷积神经网络与CTC的中文端到端语音识别模型,该模型利用门控线性单元减少梯度弥散,结合CTC算法实现了以汉字作为输出标签的端到端中文普通话识别系统。张威等[18]以深度卷积神经网络(DCNN)和CTC为研究对象,分析了不同网络结构对语音识别系统的影响,并联合SENet提出了深度SE-MCNN-CTC声学模型,实现了声学模型性能的进一步提升。

张宇等[19]提出基于注意力LSTM和多任务学习的语音识别方法,模型中加入了注意力机制以加强上下文之间的关注度。刘晓峰等[20]提出了一种基于注意力机制的端到端语音识别模型,用于识别中文大同方言,与传统模型相比,识别率有了明显提高。徐冬冬等[21]提出将基于HOPE-CTC的瓶颈特征提取网络与注意力模型融合的方法,该方法充分考虑了不同语音数据分布的复杂性和差异性,有效地提高了语音识别系统的准确率。

2 基础模型

2.1 链接时序分类

CTC在输入序列X={x1,x2,…,xT}和输出序列Y={y1,y2,…,yU}二者之间建立多对一映射关系,寻找一个最佳匹配。CTC可以直接对序列进行学习,无需帧级别的标注,在输出序列和最终标签间增加了多对一的映射关系,并在此基础上定义CTC损失函数,CTC的训练过程实际上就是自动对齐使损失函数最小化的一个过程,训练目标是使X和Y尽最大可能地匹配,即使输出概率P(Y|X)最大化。

图1 CTC结构简图

假设输出长度为L,则链接时序分类公式表示为Y={yl=U|l=1,2,…,L},U表示一组不同的字母。此外,CTC还引入了空白符号“blank”作为分隔符,用于明确字母的边界,防止出现字母符号的重复,加入空白符号后,字母序列Y被扩展为Y′,Y′被定义为:

(1)

引入了空白符“blank”后的逐帧字母序列可表示为:

Z=Zt∈U∪〈b〉|t=1,2,…,T

(2)

后验概率P(Y|X)可分解为:

(3)

CTC通过对数据之间的条件独立假设得到上式,该式对声学模型P(Z|X)和字母模型P(Y|Z)之间的依赖性做了简化。

基于CTC的模型实质上还是属于声学模型,其损失函数定义为所有训练集样本的负对数概率之和:

(4)

CTC的优化目标是使L(S)最小化,但P(Y|X)的计算难度很大,为简化过程,可以仿照HMM前、后向算法来求解CTC的局部、全局概率。

2.2 注意力机制

基于Attention的Encoder-Decoder模型是一种改进的seq2seq方案,在Encoder和Decoder之间加入Attention机制,加强二者的关联性[22]。

综上,Attention机制通过接收Encoder传递的高级特征表示,学习特征与输出序列之间的对齐信息,并指导Decoder的输出。

Decoder经Softmax层之后的输出序列Y由X生成的概率为:

(5)

(6)

其中,cu-1是注意力权重和隐藏向量相乘后累加得到:

(7)

(8)

(9)

(10)

式中,W、V为权值矩阵,b为位置向量,tanh代表非线性激活函数。

3 混合CTC/Attention模型

Attention机制的对齐没有先后顺序,给模型的训练带来了困难,在数据量很大的时候这种盲目对齐会导致训练时间加长,而CTC中的前向-后向算法可以让输入序列和输出序列按照时间顺序来依次对齐。考虑到二者各有优势,可以将二者结合,构建一种混合CTC/Attention模型,主要思想是将CTC作为辅助任务,用于加速对齐和解码,由于CTC有助于在噪声条件下获得适当的对齐[23],因此系统鲁棒性也得到了增强。在混合模型中CTC和Attention共用一个编码器,如图3所示。

图3 混合CTC/Attention结构简图

本文选用基于位置的注意力机制,与传统的基于内容的注意力机制不同,需要额外设置一维卷积来得到相应的位置信息,这样可以更好地利用上下文位置关联,提高识别的准确率。基于位置的注意力es,t表达式为:

es,t=WTtanh(Wdds-1+Whht+Wffs,t+b)

(11)

(12)

(13)

式中,W、Wd、Wh、Wf分别表示权重矩阵,ds-1、ht、fs,t为隐层状态向量,b表示位置向量。as,t为归一化处理的结果,gs为注意力分配系数。

3.1 多任务学习(MTL)

多任务学习(MTL)[23]的目标是利用各学习任务中所含的有用信息来互相帮助,使每个任务都能得到更有效的学习信息。在假设每个任务的学习内容相关的情况下,联合多个任务进行统一学习比单独学习有着更好的性能。与传统的迁移学习不同,多任务学习是一种并行迁移学习,每个任务间的信息彼此共享,信息在不同任务间相互传递,通过共享来提升学习效果。

本文提出的混合CTC/Attention机制中,CTC和Attention机制的学习任务相关,因此采用了多任务学习的方式。与单独的基于注意力机制的模型不同,该混合模型中的CTC依靠其前向-后向算法可以在训练过程中引导语音序列与文本序列实现单向对齐,而不是仅仅依靠由数据驱动的注意力机制来估计序列长度,这样一来使得对齐所需时间大大减少。

Loss计算是CTC-Loss和Attention-Loss做加权相加,由CTC与Attention机制的交叉熵L(CTC)和L(Att)结合:

L=λL(CTC)+(1-λ)L(Att)

(14)

由于在多任务学习中,CTC为辅助任务,所以λ通常小于0.5。

图4给出了具体的使用混合模型进行中文普通话识别的架构图,选择VGG-BiLSTM作为混合模型的编码器,该编码器被CTC和Attention机制共享,由二者同时训练,该共享编码器将输入序列X={x1,x2,…,xT}转换为高级特征序列H={h1,h2,…,hT}。之后特征序列H被同时输送至CTC和Attention解码器中,Attention解码器生成文字序列{c1,c2,…,cL},CTC的作用是依靠其独有的前向-后向算法在训练过程中引导高级特征序列与输出的文字序列按时间顺序单向对齐,加快了训练速度。图中[SOS]表示序列开端,[EOS]表示序列结束。

3.2 联合解码

在混合CTC/Attention架构中通常使用集束搜索(Beam Search)算法来进行解码任务,集束搜索算法中的一个关键参数为集束宽度(Beam Size),假设集束宽度为k,在第一个时间步长,选取条件概率最大的k个字,当作输出序列中第一个字,之后的每个时间步长,基于之前的输出序列在所有可能选项中选择条件概率最大的k个字当作该时间步长下的输出序列,以此循环,保持k个候选,最后在这k个候选中选择最优解。该算法需要计算出每种假设的得分,即CTC得分与注意力机制得分。在解码时,首先通过集束搜索算法将CTC和Attention机制的得分结合,进行联合解码,以提高识别结果的准确率。Pctc(C|X)和Patt(C|X)分别为由CTC和Attention机制得出的序列概率,则目标解码可定义为:

(15)

4 实验及分析

4.1 实验环境

本文实验在Intel CPU和Nvidia GPU构建的服务器上运行,采用PyTorch深度学习框架。具体实验配置如表1所示。

表1 实验环境

4.2 实验数据集及评价指标

本文实验数据来自于北京希尔贝壳科技有限公司(AISHELL)在Kaldi平台上开源的178 h中文普通话数据集AISHELL1。数据集录音文本涉及智能家居、无人驾驶、工业生产等11个领域。有400余名来自于中国不同地区带口音的发言人在安静的室内环境下通过高保真麦克风(44.1 kHz,16 bit)录制。经处理后音频数据重采样为16 kHz、16 bit的WAV格式。数据集被划分为训练集、测试集和验证集,其中训练集有340人发言,测试集20人,验证集40人,每个发言人大约发言360句话。

中文语音识别任务中将字符错误率(Character Error Rate, CER)作为评价标准,其计算公式如下:

(16)

其中,S(Substitution)表示替换的字符数目,D(Deletion)表示删除的字符数目,I(Insertion)表示插入的字符数目,N表示参考序列中字符总数。

4.3 实验参数

本文实验中,传统模型在Kaldi平台上完成,端到端模型在ESPnet[24]平台上完成。对所有数据预处理,得到音频数据每帧25 ms,帧移10 ms,提取80维的FBank特征向量,再加3维的pitch共计83维特征。

本文网络结构选择为3层VGG-BiLSTM,每层有1024个单元,使用VGG编码器提取局部特征,BiLSTM编码器进行序列建模,为让网络更容易收敛,使用了降采样方法,输入和输出层不经过降采样,VGG-BiLSTM层分别经过2倍、2倍和1倍的降采样,采用了基于位置信息的注意力机制。实验中使用Adadelta算法进行优化,初始参数设置为epsilon=1×e-8。实验在3个GPU上运行,batchsize设为30,epoch为50,将联合训练参数λ分别设为0.1、0.3和0.5进行多次对比实验。解码时使用集束搜索算法,集束搜索宽度设置为20。

本文提出的混合CTC/Attention端到端模型是纯数据驱动的,需要依靠足够的数据来训练模型才能达到比较好的效果。而传统的语音识别系统会联合声学模型和语言模型进行解码,充分利用了外部语言模型的语言学知识。因此尝试在解码阶段将混合模型与外部语言模型进行浅层融合,将混合模型的输出作为语言模型的输入,通过语言模型进行解码,得到最终的文字序列。

语言模型网络结构选择为2层的RNN,单元数为650,采用SGD算法进行优化,epoch为20。

4.4 实验结果

本文提出的混合CTC/Attention模型采用了多任务学习的方式,并引入一个联合训练参数λ,λ表示插值权重,当λ=0时表示Attention模型,λ=1时表示CTC模型。实验中将Attention模型、CTC模型与传统模型TDNN(时延神经网络)、GMM-HMM作为基线模型,混合模型设置了0.1、0.3和0.5共3个λ值进行对比分析,结果见表2。

表2 实验结果

实验结果显示,相较于基线模型,混合CTC/Attention模型在应用于中文普通话识别时,识别率有明显的提升。在不同的联合训练参数下,字错误率下降到8.2%~8.9%。由于混合模型加入了Attention机制,导致模型训练时长有所增加。在7200条的测试集解码速度表现上,混合模型的解码速度较CTC模型有一定程度的下降。综合来看,混合模型能在时间效率稍有下降的情况下,保持更高的识别准确率。

图5和图6分别为λ取不同值时的准确率变化曲线和训练损失曲线对比图,当λ=0.3时,混合模型的准确率达到了最高值,并且随着λ的增大,收敛速度呈加快的趋势,这是由于CTC的反向传播算法可直接对参数进行更新。当λ取0.5时,收敛速度虽快,但准确率有所下降,这是由于当CTC在多任务学习中的比例过高时,CTC的条件独立假设特性会导致收敛效果较差,严重时会出现过拟合现象。

结合图5、图6和图7可知,当联合训练参数λ=0.3时取得了最好的效果,识别率达到了最高值且网络收敛速度较快,收敛效果较好,此时字错误率为8.2%。考虑到混合CTC/Attention模型并不是完全意义上的端到端模型,因此在混合模型(λ=0.3)的基础上,外接一个经过训练的RNN语言模型,可使字错误率进一步下降0.3%。

图5 混合模型准确率变化曲线

图6 混合模型训练损失变化曲线

图7 混合模型(λ=0.3)收敛曲线

5 结束语

本文提出的混合CTC/Attention模型是一种端到端模型,结合了CTC的对齐方式和Attention机制的上下文建模能力2种优势,相较于各模块独立而且复杂的传统模型,只需要训练一个整体的模型。模型训练时采用了多任务学习的方式,在对网络的调整方面也更加便捷,通过合理调整多任务学习中的联合训练参数可以使网络收敛加快,识别率达到最优。在应用于中文普通话识别时,识别率较基线模型有明显的提高,当联合训练参数λ=0.3时,网络收敛速度快,字错误率为8.2%,若在此时外接一个RNN语言模型,字错误率下降到7.9%,与Attention模型和CTC模型相比,准确率分别提高了7.8%和6.4%,与传统基线模型相比也有较大幅度的提升。虽然实验中外接语言模型可以有效地提高识别率,但这只是在解码阶段进行的浅层融合,没有考虑到训练阶段语言模型对声学模型的影响。在后续的工作中,拟尝试对模型架构微调,将语言模型深层次地融合进去,并考虑使用数据增强的方式扩展数据集,解决数据不足的问题,以进一步提高识别率。

猜你喜欢
多任务识别率解码
数字时代的注意困境:媒体多任务的视角*
《解码万吨站》
结合自监督学习的多任务文本语义匹配方法
面向多任务的无人系统通信及控制系统设计与实现
解码eUCP2.0
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
档案数字化过程中OCR技术的应用分析