1. 引言
字音转换是指单词从正字法(字母/字符/字素序列)转换为它们的发音(音素序列)的任务,字音转换技术在语音合成中占有重要位置。近年来,随着深度学习方法的多领域应用,开始将深度学习应用于字音转换。同时文献 [1] 也表明了基于深度学习方法更能有效的降低音素错误率和单词错误率。字音转换质量的提升,可以大大提高语音合成的自然度 [2]。
其中,Transformer模型 [3] 是完全基于注意力机制 [4] 的一个深度学习模型,注意力机制有更好的记忆力,能够记住更长距离的信息,同时注意力机制支持并行化计算。从文献 [5] 中可知在进行英语字音转换时,Transformer模型相比序列到序列(seq2seq) [6] 等深度学习模型大大降低了音素错误率和单词错误率。
针对字音转换的研究目前大多数都是基于单一语种的,对同一个深度学习模型来说,针对不同语言进行字音转换时,均需要对模型进行参数调整,同一套参数并不适用于所有语言,这样就增加了时间成本。在实际应用中,多语种语音合成实用性更强,但是目前多语种语音合成研究较少,因此合成涵盖多语种的语音非常迫切。
本文研究了Transformer架构在文本交叉混合条件下多语种(英、日、韩)的字音转换,使得到的模型可以适用于多语种情况。将本文的实验结果分别与基于Transformer架构的单一语种方法进行了比较。实验结果表明,本文的研究结果在音素错误率(PER)和单词错误率(WER)方面大大降低了,对合成涵盖多语种的语音有着积极的促进作用。
2. 研究方法
编码器–解码器(Encoder-Decoder)是深度学习模型的抽象概念。许多模型的起源都是基于这一架构的。比如卷积神经网络(Convolutional Neural Network, CNN) [7],循环神经网络(Recurrent Neural Network, RNN) [8],LSTM (Long Short Term Memory) [9] 和Transformer等。这些网络架构使用时编码器将输入序列转换为一个向量,解码器则基于学习到的向量表示生成输出序列。Transformer也是一个完全基于注意力机制的模型。
Transformer的编码器部分由N个编码器堆叠而成,每个编码器由分为多头注意力(Multi-Head Attention)和Feed Forward Network (FFN)两个部分,两个部分后面都添加了残差连接并进行了层归一化。Transformer模型中的多头注意力可以用来学习不同表示子空间的信息,Attention的表现形式为
,其中Q代表query,K代表key,V代表value。多头注意力不是执行单一的注意函数,首先将Q,K,V复制h次,使用h个自注意力进行单独计算,然后将h个注意力机制获取的结果进行拼接组合,再经过一个可学习的线性映射得到最终的结果。
Transformer的解码器部分同样由N个解码器堆叠而成,整体结构和编码器部分类似,唯一不同解码器内部多了一个Masked Multi-Head Attention层。该层的掩码机制是为了让模型保留了自回归属性,确保预测依赖于已经生成的输出部分。解码器的Multi-Head Attention层,用来接受编码器部分的输出,K,V来自于编码器,而Q是上一层解码器的输出。解码器的输出结果后还需通过具有线性激活的全连接层,然后是通过softmax层得到每个词向量的概率,选择概率最高的词向量作为输出。
除了编码器部分和解码器部分,Transformer还添加了位置编码(Position Embedding)用来保留有关序列中单词顺序的信息。使用位置编码有两种方法,第一种是用不同频率的三角函数公式直接计算,第二种是随机初始化,通过学习不断更新,通过实验中得到两种方法效果相近,因此本研究采用了第一种。
本研究以单一英文为例的Transformer模型示意图如图1所示,输入为字素序列,输出为预测的音素序列。

Figure 1. Schematic diagram of the Transformer model using a single English example
图1. 以单一英文为例的Transformer模型示意图
本文研究的是在交叉混合条件下的基于Transformer架构的字音转换,因此需要通过多次训练对模型进行动态调整,使它在多个语言下的PER值和WER值都较低。多语种交叉混合条件下的整体流程图如图2所示,由于该模型针对的是多语种,在利用训练好的模型进行字音转换前,对待转换的文本需要进行语种识别的处理。通过Python语言自带的语种字符识别,韩语是在\uac00-\ud7ff范围内,日语则是在\u30a0-\u30ff\u3040-\u309f范围内,但是由于日语中可能出现中文字符,为了避免这种情况,日语在在语种识别前将需要将日语文本均转为片假名。然后利用已经训练好可适用于英日韩的Transformer模型将处理好的多语种文本进行字音转换,最后输出转换结果。

Figure 2. Overall flowchart under multilingual cross-mixing conditions
图2. 多语种交叉混合条件下的整体流程图
3. 实验结果及分析
3.1. 数据集选取及预处理
对于英语的字音转换,研究者经常选择的数据集是CMU发音词典(也称为CMUDict) [10] 、NetTalk数据集 [11] 和Pronlex数据集 [12]。CMU发音词典是由卡内基梅隆大学(CMU)创建的公共领域发音词典,是为ASR而开发的,它定义了从英语单词到其北美发音的映射,通常用于语音处理应用程序。包含超过134,000个单词形式及其发音。NetTalk数据集是在1986年创建的一个基于神经网络的翻译系统,是为了研究书面英语(以字素或字母为单位)和口语(以音素为单位)之间的翻译过程。该数据集是根据字母对音素手动对齐的,包含20,008个对齐的字母和带重音的语音表示。Pronlex数据集主要是为语音识别而开发的,最新版本的Pronlex数据集包含90,988个词条,涵盖WSJ30、WSJ64、Switchboard和CALLHOME英语。(WSJ30K和WSJ64K是从最近的ARPA连续语音识别语料库中使用的几年华尔街日报文本中选择的单词列表。Switchboard是一个300万字的关于各种主题的电话通信语料库。)
本文在对这三个数据集进行选择时,对比了利用不同模型对三个数据集在进行字音转换时的评估结果。如表1所示,可以看到无论哪一种模型,在CMU发音词典上的PER值和WER值都低于NetTalk数据集和Pronlex数据集,因此本文选择了CMU发音词典。

Table 1. Results on CMUDict, NetTalk, and Pronlex
表1. 在CMUDict、NetTalk和Pronlex上的结果
对于韩语和日语,SIGMORPHON 2021 G2P任务 [15] 在来自于维基百科的韩语及日语数据集上取得的不错的效果,但是这两个数据集在Transformer模型上评估时,效果并没有比在SIGMORPHON 2021 G2P任务上有所改善。因此,本文研究对SIGMORPHON 2021 G2P任务中的韩语、日语数据集进行数据扩充。
SIGMORPHON 2021 G2P任务使用1万条字音数据对用于训练,验证和测试,本文每增加1000条数据对就进行一次对比试验,韩语数据集的PER值平均每次降低0.1%左右,WER值平均每次降低0.4%左右;日语数据集的PER值平均每次降低0.05%左右,WER值平均每次降低0.15%左右。韩语数据集增加了接近4300条字音数据对,日语数据集增加了接近1万条字音数据对,此时模型效果最好,再增加数据对时,PER值和WER值不降反增。
因此将扩充了4300条数据对的韩语数据集和扩充了1万条数据对的日语数据集用于本文的研究。文献 [16] 提到将韩国音节字符分解为单音字符,例如,가감→ㄱㅏㄱㅏㅁ,可以显著降低韩语的WER和PER。因此本文中利用hangul-jamo将韩语数据集中的音节字符分解为单音字符。
3.2. 实验设置
3.2.1. 激活函数设置
字音转换的研究时大多数都选用RELU激活函数,而本文采用GELU激活函数(公式如下式(1)所示)。本文在对比了在这两种激活函数的条件下,Transformer 4 × 4 (4个编码器和解码器层)模型在三种语言下的PER值和WER值,在表2中可以看到,RELU激活函数条件下的PER值和WER值相比RELU激活函数都有所降低,模型性能也更好。
(1)

Table 2. Results on RELU and GELU
表2. 在RELU和GELU上的结果
3.2.2. 模型参数设置
模型的相关参数设置如表3所示。本文研究了三种Transformer架构,其中有3个编码器和解码器层(在下文中称为Transformer 3 × 3),4个编码器和解码器层(在下文中称为Transformer 4 × 4),5个编码器和解码器层(在下文中称为Transformer 5 × 5)。本文在所有提出的模型中都采用了h = 4平行注意层,Q、K和V具有相同的dm维数,因此dk = dv = dm = 128和dm/h = 32。模型训练时使用的损失函数是交叉熵损失函数(Cross Entropy Loss),使用的优化器为Adam,进行预测时使用搜索策略为束搜索(beamsearch),束宽(beamsize)设置为5。
3.3. 实验结果及分析
3.3.1. 评价指标
性能指标方面,使用音素错误率(PER)和单词错误率(WER)来评估文本数据上的G2P模型的质量。
音素错误率:用于测量预测的音素序列与参考音素之间的距离除以参考音素中的音素数量。编辑距离(也称为Levenshtein距离 [17] )是将一个序列转换为另一个序列所需的插入(I)、删除(D)和替换(S)的最小数值,可以通过动态规划方法来计算。如果参考的数据中一个单词有多个发音变体,则使用与候选单词的Levenshtein距离最小的变体。单词错误率:单词错误的数量除以单词的总数,只有在预测的发音与任何参考发音不匹配时才进行计算。WER和PER越低,代表模型性能越好。
3.3.2. 实验结果
训练模型后,在测试数据集上进行预测。对三个数据集上的评价结果见下表4。第一列显示了语种的类别,第二列和第三列分别显示了数据集和应用的模型架构,剩余两列分别显示了PER值和WER值。由结果可以看出,在Transformer 4 × 4架构下,三个语种的模型效果最好,无论在PER值还是WER值方面都低于Transformer 3 × 3。但是同样可以看到增加编解码器层模型性能却没有得到改善,Transformer 5 × 5模型下的PER值和WER值高于Transformer 4 × 4甚至比Transformer 3 × 3还高,这可能是因为增加编解码器层的数量会导致更多的训练参数。

Table 4. The PERs and WERs using Transformer model in three languages
表4. 三个语种条件下使用Transformer模型的PER和WER
3.3.3. 实验结果分析
本文将在文本交叉混合条件下基于Transformer 4 × 4的模型在CMUDict数据集上的结果与单一语种条件下其他深度学习模型在CMUDict数据集上的结果进行了比较。如表5所示,第一列显示了字音转换所用到的方法,第二列和第三列分别显示了PER值和WER值。
由结果可以看出,在交叉混合条件下的Transformer 4 × 4的模型的PER值相比单一语种条件下的Transformer 4 × 4的模型的PER值略高,但是都低于单一语种条件下其他方法;但是,交叉混合条件下的Transformer 4 × 4的模型的WER值都低于单一语种条件下的深度学习模型的WER值。这是因为在交叉混合条件下模型为了更好的适应多种语言,为了在多种语言的字音转换中都具有更好的转换效果,所以在模型统一参数后结果会有所不同。

Table 5. Results on the CMUDict dataset
表5. 在CMUDict数据集上的结果
本文将在文本交叉混合条件下的多语种和单一语种情况下Transformer 4 × 4方法的结果进行了对比,如表6所示。第一列显示了语种的类别,第二列显示了所需要对比的数据集,第三列显示了所需要对比的条件。剩余两列分别显示了PER值和WER值。由结果可以看出,对于韩语及日语来说,在交叉混合条件下以及对数据集进行数据扩充后,Transformer 4 × 4模型无论在PER值还是WER值方面都低于单一语种,说明本研究对多语种语音合成的质量方面有着促进意义。

Table 6. The PERs and WERs in cross-mixed and monolingual conditions
表6. 交叉混合和单一语种条件下的PER和WER
4. 结论
在本文中,研究了Transformer架构在文本交叉混合条件下的多语种(英、日、韩)字音转换,并将其性能分别与基于Transformer架构的单一语种的方法进行了比较。对于不同层数的Transformer结构,在CMUDict以及对SIGMORPHON 2021字音转换任务上的日韩数据集进行扩充后的数据集上进行实验,通过评估PER和WER,Transformer 4 × 4架构的模型都具有较好的性能。在文本交叉混合条件下,基于Transformer 4 × 4架构的英、日、韩字音转换在音素错误率和单词错误率方面与基于Transformer 4 × 4架构的英、日、韩三个语言的单一语种相比都大大降低了。本文的研究对多语种语音合成的质量以及多语种语音合成的实用性方面都有着促进意义。在未来的研究中,可以实验更多的语种,合成涵盖多语种的语音。
基金项目
北京印刷学院博士启动基金,北京市教委科研计划资助(KM202110015003),北京印刷学院校级科研计划项目(Eb202103)。
NOTES
*通讯作者。