APP下载

基于端到端深度学习的藏语语音识别研究

2023-11-14高耀荣边巴旺堆

现代计算机 2023年17期
关键词:藏语解码器编码器

高耀荣,边巴旺堆

(西藏大学信息科学技术学院,拉萨 850000)

0 引言

全球现有语言数量约为7000 种,大多数自动语音识别工作处理的是拥有大型语料库的语言,如普通话、英语和日语等。而对于小语种,如藏语,使用人数相比大语种要少,若使用基于传统语音识别方法如DNN-HMM[1],则需准备发音词典且对藏语有深入了解,因此也导致了藏语语音识别的处理工作所需门槛更高[2]。在藏语语系中分卫藏方言、安多方言、康巴方言,三者有共性也有区别,其中卫藏方言主要在西藏中部人口最密集的地方使用,因此本文选用卫藏方言作为研究对象。

传统语音识别系统要求声学模型、语言模型和发音字典。而如今藏语信息处理在进行现代化变迁[3-4]。近年来,端到端网络[5]的出现降低了实现语音识别的前期准备门槛,其由编码器和解码器构成,编码器相当于特征提取器,解码器基于编码器搜索最优解,只需准备语音和文本,即可实现语音到文本的直接转换。此外,端到端网络提供了更广泛的建模单元选择,也据此提出了很多端到端模型,如链接时序分类技术[6]、基于注意力的LAS[7](Listen, Attend and Spell)模型。

不同的端到端网络各有优缺点,本文通过联合基于链接时序分类(connectionist temporal classification,CTC)和注意力机制(Attention)模型,以此融合了CTC 自动对齐和Attention[8]建立上下文联系的优点,引入联合参数λ对CTC 和Attention 分配不同的权重。并且以Transformer作为编码器提取全局特征。因此,本文建立Transformer-CTC/Attention 模型应用于藏语语音识别。

1 基于藏文特点的语音建模

藏文作为拼音文字,由30 个辅音字母和4个元音字母组合而成。类似中文,一个藏文字通常为一个音节,而每个音节之间由音节符“་”来分割。藏文一个音节的结构分七部分,分别包括前加字、上加字、辅音、下加字、元音、后加字和再后加字,最基础的结构只有辅音,而最复杂的结构如图1所示。

图1 藏文结构

语音识别的建模单位的选取需要与发音结构相联系,传统藏语语音识别以音素为建模单元,并需准备音素与文字转换关系的发音字典。如今随着算力和深度网络学习能力的提升,已无需选择较小建模单位如音素,Zhou 等[9]探究了五种不同建模单位(音素、音节、词、子词和汉字)对普通话语音识别的效果,实验结果表明基于汉字的模型效果最好,由于藏文字通常为一个音节的特点,即一个藏文字可看成是一个发音单元,所以本文选取以字为识别单位。如这一句བཀྲ་ཤིཤིས་བདེདེ་ལེདེགས་(扎西德勒)识别顺序则为“བཀྲ”“ཤིཤིས”“བདེདེ”“ལེདེགས”,此种方式对应着以字为识别单位的中文语音识别[9]或以单词为识别单位的英语语音识别,并都得到优秀的识别率。

2 Transformer模型

Transformer[10]由Decoder 和Encoder 组成,即编码器-解码器。其中在每个Decoder 和Encoder 中采用Attention 机制,加强了信息的关联性,给更重要的信息更多关注度。其中,多头注意力机制可以无需考虑距离关注输入序列不同位置之间的关系,可以更容易获取全局信息,在语义特征提取能力和长距离特征捕捉能力方面优于传统的LSTM模型[11]。

Transformer 也被广泛应用于语音识别领域,2018 年,Dong 等[12]就首次把Transformer 模型应用于ASR 中,而Huang 等[13]通过限制自注意力的学习范围研究流式的Transformer 语音识别网络,流式语音识别是语音数据实时传入而识别文本结果实时输出,对比非流式语音识别需要更快的解码速度。Transformer 结构如图2 所示,Transformer 包含多组的Encoder 和Decoder,每个Encoder 包含三层,分别是self-Attention、Layer Norm 和Feed Forward;而Decoder 的Attention 则为两级,第一级self-Attention 的输入信息来自前一层Decoder 的输出结果,第二级Encoder-Decoder Attention 的输入信息来自前一层Decoder 和Encoder 的输出结果,从而结合输入和输出的信息。其输入信息来自整个结构,可以建立输入语音特征和识别结果之间的序列对应关系,所以本质上还是端到端的结构。

图2 Transformer结构

图3 CTC结构

2.1 Positiioonnaall Encooddiinngg

图2 中Positional Encoding 即位置编码,由于Transformer 引入了self-Attention 机制,self-Attention 对输入的token 无法分辨信息的相对位置信息,则需给输入的位置作标记。在本文输入语音之前,学习语音特征的位置信息,并叠加到输入Embedding中,该位置信息的获取是独立的,不需要依赖前后递归或卷积操作。位置编码的公式为

其中:PE是语音的位置向量,pos为每个输入语音的实际位置,i表示是第几个元素,dmodel是语音向量的维度,sin 和cos 交替编码位置,既保存语音实际位置信息也可得到语音的相对位置信息。

2.2 self-Attennttiioonn

Transformer 的核心是self-Attention,注意力函数相当于通过一组键值对将查询的向量映射到输出,并通过加权和得到输出。我们将查询、键和值分别表示为Q,K和V,self-Attention 具体公式如下:

其中:dk是矩阵K的列数,在原始实现的基础上,通过Scale 操作对QKT除以dk开平方,以避免值过大导致softmax函数梯度很小、很难优化。经过注意力函数的输出结果Z的每一行Zi表示一个位置的结果,这个位置对应输入语音特征序列X的某一帧Xi,且这个位置输出结果还包含了其他帧Xj的信息,公式如下:

由上述公式可知,输出结果包含了句子上下信息,即不仅关注当前语音的帧,也能获取语音前后其他帧的信息,这些信息的重要性通过Attention 机制调节。在此基础上引入多头注意力(Multihead Attention)机制,即可取多组的Q、K和V进行计算。

3 CTC/Attention模型

3.1 链接时序分类

输入的语音序列存在静音、重复的情况,因此一般语音序列是比实际文本序列要长的。而链接时序分类(CTC)可以实现自动对齐输出标签和输入序列,不需要像DNN-HMM[1]那样需要对齐标注。CTC 假定输入符号是相互独立的,输出序列X和输出序列Y是按时间顺序单调对齐,在输入序列X={x1,x2,…,xT}和输出序列Y={y1,y2,…,yT}之间建立了多对一的链接,然后通过动态规划来解决序列对齐问题,从而实现语音和文本的匹配。

CTC 引入空白标签“blank”表示静音的情况,即输出序列Y′=Y∪{“blank”},把出现此情况的标签替换为“blank”,而在识别的最后则需要删去空白标签。假设建模单元序列为Q,CTC 的识别目标是让输入序列X和输出序列Y吻合,即式(4)的概率P(Y|X)尽可能大,CTC 损失公式(5)尽可能小,其中的P(Q|X)相当于声学模型,描述了语音与建模单元的关系。

3.2 注意力机制

基于Attention 的Encoder-Decoder,可以看成是端到端架构的改进版,在Encoder和Decoder之间通过Attention 机制衔接,使得Decoder 的输出与Encoder有了注意力权重,结构如图4所示。

图4 Attention结构

本文Attention 的Encoder 为Transformer,Transformer 的输出作为Attention 的输入,即Transformer 相当于是声学模型提取语音特征。而Attention 的Decoder 结构设定为LSTM,最后的输出为将LSTM 隐藏层的当前状态hu通过Softmax 函数得到。因此,最终输出是计算预测标签和输入序列的概率分布,相当于是语言模型。

网络中Attention 机制的输入是Encoder 的输出序列,通过公式计算注意力权重建立输出序列和输入序列的对齐关系。

其中,αu-1,t是注意力权重,公式如下:

其中,eu-1,t表示解码器输出与编码器输出的原始注意力分数。

3.3 联合CTC/Attennttiioonn

CTC 可以实现对齐输入序列和输出标签,但是若建模单元为互相独立,没有考虑到标签之间的组合关系,即没有语言模型,则会导致识别准确率不高。而Attention 机制通过注意力权重建立标签各种组合的可能性,但输出序列和输入序列不一定按顺序严格对齐。因此,将CTC 和Attention 结合起来构建联合CTC/Attention模型,Attention 融入CTC 自动对齐的优点,可以避免解码时对齐过于随机,提高识别率。

根据端到端结构,先提取语音Fbank 特征向量作为编码器Transformer 的输入,CTC 和Attention 共为解码器,编码器的输出被二者共享,最后通过联合解码输出,具体结构如图5所示。CTC/Attention 模型的训练是多任务学习,模型的损失其实就是CTC loss 和Attention loss 的加权求和,引入λ为联合参数取值范围为[0,1],损失计算公式如下:

图5 Transformer-CTC/Attention 模型

4 实验结果且分析

4.1 实验参数

对语音使用kaldi 工具提取80 维的Fbank 特征作为模型输入,窗长为25 ms,窗移为10 ms。其中每帧添加0.1的随机噪声系数。

本文Transformer 的多头注意力头数为4 个,encoder 块有12 个,decoder 块有6 个,每个块的参数独立,采用ReLU作为激活函数,dropout系数为0.1。使用自适应矩估计Adam 优化器,既能适应稀疏梯度,又能缓解梯度震荡。采用warmup steps 为5000 的warmup lr 学习策略训练,设定学习率为0.002,训练160轮。

4.2 数据集与评价指标

为验证模型的有效性,实验选取Zhao 等[14]公开的包含30 小时的卫藏藏语语音数据集TIBMD@MUC。语音为16 KHz 的WAV 格式,训练集和测试集分别为27 小时和3 小时。基于前文所诉的建模单元选取方法,对此数据集藏语文本进行处理,得到2857 个建模单元,其中表示静音,表示未识别相应内容,表示语音的开头和结尾。

本次藏语语音识别任务以词识错率(word error rate,WER)[15]作为评价标准,其中S代表替换的字数量,D代表删除的字数量,I代表插入的字数量,N代表总的字数量。WER值越小越好。具体公式如下:

4.3 实验结果及分析

为验证联合CTC/Attention 的有效性,先研究CTC 和Attention 分别在藏语语音识别的效果,设置λ= 1 和λ= 0 分别表示Transformer-CTC 和Transformer-Attention 模型。为探究不同联合参数λ的效果,预先设置CTC/Attention 模型的联合训练参数λ为0.3、0.5 和0.7,三个值作对比分析,经过实验结果分析决定再增添训练参数λ= 0.8作对比,最终实验结果见表1。

表1 语音识别结果

实验结果表明,相对于单独以CTC 或Attention作为解码器,联合CTC/Attention 模型应用在藏语语音识别中的识错率都有不同程度的降低,且都优于Zhao等[14]的WaveNet-CTC实验结果。这是因为Transformer 是基于Attention,而WaveNet 是基于CNN,因此以Transformer 作为声学模型可以更好地提取长序列输入的全局特征和上下文依赖。

图6 和图7 分别表示CTC、Attention 和联合模型CTC/Attention 的损失曲线图。由图6 可知,在藏语语音识别中,Attention 损失相对CTC 更小,且下降得更快。图7 结果表明,联合参数λ越大,即CTC 占比越大,则损失越大且收敛速度更慢。然而结合表1 实验结果,当λ= 0.7 的时候,相对其他联合参数识别结果更好,这是因为当给予CTC 更大的权重时,有助于CTC 阶段对齐更准确,而即使因此减少了Attention 的权重,由于Attention 收敛得很快,在足够的训练次数上对Attention本身性能影响不大。

图6 CTC、Attention训练损失

图7 CTC/Attention训练损失

5 结语

藏语语音识别是尊重民族文化,促进民族团结的重要任务。本文构建Transformer-CTC/Attention 端到端模型对藏语语音识别进行研究。使用藏字作为识别单位,在Zhao等[14]的藏语语音数据集上取得更低的识错率。证明以藏字为识别单位和端到端网络对藏语语音识别的可行性,验证了Transformer-CTC/Attention优于WaveNet-CTC网络,探究了不同的联合参数λ对藏语语音识别的效果。藏语语音识别目前遇到最大的困难还是未有更大型专业的藏语语音公开数据集,基于此问题,未来的研究方向可以引入迁移学习和无监督学习,从而拓宽学习范围。

猜你喜欢

藏语解码器编码器
浅谈藏语中的礼仪语
科学解码器(一)
科学解码器(二)
科学解码器(三)
汉藏语及其音乐
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
基于FPGA的同步机轴角编码器
藏语拉达克话的几个语音特征
基于PRBS检测的8B/IOB编码器设计
藏语地理分布格局的形成原因