APP下载

基于BERT预训练语言模型的印尼语语音合成

2021-12-04赵立铉

关键词:编码器注意力语音

赵立铉,杨 鉴

(云南大学信息学院,云南 昆明 650500)

语音合成技术作为智能人机交互的核心技术之一,是目前研究的一个热点.语音合成,即根据文本来合成语音(Text-To-Speech,TTS),是一种直接将输入文本信息转换为语音波形输出的技术.语音合成技术发展主要经历了基于波形拼接的语音合成[1-2]、基于统计参数的语音合成[3-5]以及基于深度神经网络的语音合成[6-9]3个阶段.传统语音合成分为前端和后端两部分:前端主要对输入文本信息进行处理,包括分词、字素转音素、韵律预测等,提取合成所需的信息;后端主要将前端提取的信息利用某种技术转换为语音.传统的语音合成系统结构相对复杂,需要花费大量的人力来完成数据准备工作,系统稳定性不高,难以适用于各种复杂场景.

为简化合成系统结构、减少人工干预和对语言学相关背景知识的要求,近年来,百度、谷歌以及Yoshua Bengio等机构相继推出了基于深度神经网络的端到端语音合成系统.例如:Char2wav[6]、Tacotron[7]、Tacotron2[8]、DeepVoice[9]等,真正实现了直接从文本合成语音,其中谷歌的Tacotron是第一个相对成熟的端到端语音合成系统,该系统可接收字符或者音素作为系统的输入,通过一系列处理,直接生成对应音频的梅尔频谱,然后利用Griffin-Lim[10]重建算法将梅尔频谱转换为语音波形.而Tacotron2是Tacotron的改进版本,优化了模型的编码器和解码器结构,采用了性能更佳的注意力机制,显著提升了系统的合成效果.

随着深度神经网络的进一步发展,谷歌、百度等机构也在不断地对端到端语音合成系统进行改进和更新,推出多说话人、多语种、多情感的合成系统.但是,目前语音合成系统研究,还是多集中于英语、汉语等通用语言[11],对于非通用语的研究相对较少[12-13].同时,端到端语音合成系统需要大量高质量〈文本,语音〉数据训练模型,以保证得到优质的合成结果.但通常情况下,所能获取的训练数据往往无法满足端到端语音合成系统要求,因此开发非通用语语音合成系统常会遇到各种问题,导致其合成的语音带有奇怪的韵律甚至是错误的发音.

相较于英语和汉语,印度尼西亚语(简称印尼语)语音合成仍存一些问题,例如对于该语言的语音合成的研究相对滞后,电子资源缺乏,可用训练数据缺乏等等.针对以上问题,本文设计并实现了一个基于BERT(Bidirectional Encoder Representation from Transformers)[14]预训练语言模型的印尼语语音合成系统,对Tacotron2系统做出以下改进:引入BERT预训练模型优化语音合成系统;采用了两种方法嵌入BERT预训练词向量信息;添加信息提取器进一步提取预训练词向量信息.

1 Tacotron2模型和BERT模型

1.1 Tacotorn2Tacotron2模型[8]基于序列到序列[15]架构实现,其模型结构由一个编码器和一个带有位置敏感注意力机制的解码器构成.编码器包括两部分:3层卷积神经网络(Convolutional Neural Networks,CNN)和双向长短时记忆网络(Bidirectional Long-Short Term Memory,Bi-LSTM).解码器是一个典型的自回归网络,能够利用上一帧信息来预测下一帧信息,逐帧地预测停止符(Stop Token),其结构包括2层的预处理网络(Pre-Net),2层LSTM和5层的后处理网络(Post-Net). 如图1所示,文本信息需要先进行嵌入(Embedding)处理,再被送入包含3层CNN和Bi-LSTM的编码器抽取合成所需的语言学特征.训练中,声学参数先送入预处理网络,预处理网络的输出会和上一时间步生成的上下文特征进行拼接;然后和编码器提取的特征信息一起输入注意力机制,输出当前时间步的上下文特征;最后利用当前时间步的上下文特征和声学参数预测下一个时间步的声学参数.

图1 Tacot r on2模型结构图Fig.1 Structure diagram of Tacotron2 model

1.2 BERTBERT[14]是一个基于双向Transformer[16]的语言模型.BERT利用大规模的未标记数据进行无监督学习,完成模型的预训练.对于下游的自然语言处理(Natural Language Processing,NLP)任务,BERT首先利用预训练得到的参数对模型初始化,然后利用各种下游NLP任务标记好的数据进行有监督学习,并对所有模型参数进行微调,显著提高了下游NLP任务的效果.BERT由多层双向的Transformer编码器组成,结构中有12个Transformer编码器,每个编码器包含一个多头注意力机制(Multi-Head Attention)和一个前馈网络(Feed Forward).其中,各编码器之间采用残差连接(Res-Net)[17],采用层归一化(Layer Normalization),防止由于网络过深造成的过拟合问题.注意力机制包含有12头,每个头能够提取不同的信息,以保证充分提取序列中包含的信息.

2 印尼语语音合成系统

印尼语属于马来-波利尼西亚语族西印度尼西亚语支,广泛流通于整个印度尼西亚群岛.通用印尼语采用拉丁字母拼写系统,共26个字母,音素是最小的语音单位,共34个音素[18].在端到端印尼语语音合成系统中,可以直接将印尼语文本序列作为系统输入来合成语音.但是对于基于深度神经网络的端到端语音合成系统,由于模型训练的信息只由输入的文本数据提供,当文本数量很少时,提取的信息通常不够丰富,导致系统难以取得好的效果,特别是对于一些集外数据.

针对这一问题,设计了一种基于BERT预训练语言模型的印尼语语音合成系统,系统结构如图2所示,使用了一个能够编码104种语言并可以生成对应词向量的多语言BERT预训练语言模型,同时采用两种不同的方法将BERT预训练模型嵌入合成系统,并添加编码器来充分提取预训练模型包含的信息.由于BERT利用大规模的无标记文本采用无监督学习方式来训练模型,其生成的词向量包含了丰富的语义信息和句法信息.因此,通过提取丰富信息作为系统额外信息输入,解决训练数据不足造成的问题,提高系统的合成效果,使合成结果具有正确的发音,更富有韵律.

图2 基于BERT预训练语言模型的印尼语语音合成系统结构图Fig.2 Structure diagram of Indonesian speech synthesis system based on BERT pre-trained language model

2.1 文本信息提取本文使用了两部分的文本信息用于语音合成:一部分是印尼语字符序列通过Tacotron2的编码器得到的信息,另一部分是从BERT预训练模型提取出的信息.Tacotron2模型可以直接将音素序列{p1,p2,···,pn}作为系统输入,sil表示文本单词间的空格.在使用BERT预训练模型生成词向量时,需要先将文本序列{t1,t2,···,tm},m

图3 印尼语音素序列和Wor d Pi ece序列示例Fig.3 Example of Indonesia phoneme sequence and WordPiece sequence

2.2 上下文信息拼接上下文拼接方法将印尼语音素序列p={p1,p2,···,pn}和子词序列w={w1,w2,···,wk} 同时输入系统,将印尼语的梅尔谱参数yt作为系统目标[19].如图2(a)所示为上下文信息拼接法的模型结构图,输入的文本序列信息分成两路,分别经过相应处理,再参与最终解码过程.

音素序列p经过词嵌入处理生成对应词向量p′,词向量输入编码器提取出对应的信息ep,其中ep的维度为512,上标p代表处理音素序列产生的信息.编码器输出的信息ep被送入位置敏感注意力机制网络,注意力网络根据编码器的输出ep、上一时刻的解码输出qt−1以及上一时刻的注意力权重3部分信息,生成当前解码时刻的注意力上下文信息apt和注意力权重即注意力的对齐信息.

其中,Ep和Ap分别表示处理音素序列的编码器和注意力机制网络,n为音素序列的长度.

在完成音素序列信息的提取后,下一步需要提取BERT预训练模型所包含的信息.首先将输入的文本序列转换为子词序列w,子词序列的形式见图3所示;其次将子词序列w输入BERT预训练模型即可生成对应的词向量信息Bw,其中词向量Bw的维度是768,上标w代表处理字词序列产生的信息.同时还需要通过一个全连接层将Bw的维度映射为512;再次将维度为512的词向量bw,送入编码器进行可用的信息提取;最后输出信息ew同样被送入一个位置敏感注意力机制网络,生成当前时刻的注意力上下文信息和注意力对齐信息.

其中,B表示BERT预训练模型,L表示一个线性层,进行维度变换处理,Ew和Aw分别表示处理子词序列的编码器和注意力机制网络,k为子词序列的长度.

将提取的注意力上下文信息和,进行拼接处理,将两种信息进行融合得到总的上下文信息at;再参与最终的解码过程,解码器根据上下文信息和上一时刻的解码输出,预测当前时刻的声学信息qt.

其中,C表示对两种信息进行拼接处理,即对两个矢量进行拼接,D表示一个解码器网络.

印尼语同英语一样,为拼音文字,文字中包含了发音信息,Tacotron2系统的编码器(Ep)所提取的文本信息,实际上包含了部分发音信息. 但是BERT模型采用子词序列的输入形式,所提取的信息主要是词与词之间的语义信息.因此,希望通过加入一个编码器(Ew)来转换BERT预训练模型所输出的信息,使这一部分信息可以有助于系统合成优质语音.

2.3 词向量拼接如图2(b)所示,该方法即词向量拼接法[20].相比于上下文信息融合方法,该方法先将两种信息进行拼接融合,再送入注意力机制.

其中,U表示进行上采样处理,目的是保证BERT输出词向量ew的维度和字符词向量ep的维度相同,确保两者正确无误的完成信息的拼接融合,C表示对两种信息进行拼接处理,A表示一个位置敏感注意力机制网络.

上采样处理方法如图4所示,例如:单词“bicaranya”,中文翻译为“说话”,其音素形式输入为“b”,“i”,“c”,“a”,“r”,“a”,“ny”,“a”,子词形式输入为“bi”,“##cara”,“##nya”.两部分输入信息分别经过编码器处理后,输出对应的词向量,然后将“bi”的词向量分别与“b”和“i”的词向量进行拼接.同理,“##cara”的词向量则需要分别与“c”,“a”,“r”,“a”的词向量进行拼接.对于音素序列的词间空格sil,统一采用拼接全零向量的方法,以保证两部分的词向量维度相同.

图4 词向量拼接示例Fig.4 Example of word vector concatenation

3 实验结果与分析

3.1 实验数据及平台实验中使用的印尼语数据集时长8 h,为专业的播音员录音,播音员口音为纯正的印度尼西亚音.平行语料共有4 768对〈文本,音频〉,划分为训练集4 611对,验证集107对,测试集50对.其中,音频语料采样率为22 050 Hz,前后含有50 ms的静音段,音频的帧长和帧移分别设置为46.4 ms和11.6 ms.整个实验基于Pytorch深度学习框架搭建模型,使用一块英伟达V100显卡来训练模型,为防止显卡内存溢出,模型的训练批次(batch)设置为16.此外,模型采用Adam[21]优化器,学习率设为0.000 1.实验中使用了WaveGlow[22]声码器将声学参数转换为语音波形.

3.2 客观评测方法为了衡量系统性能,选取几个能够反映音频质量和韵律的指标,并对测试集的50句印尼语进行评测,同时选取模型训练15万步时的结果进行评测,保证变量一致.为了让合成音频和参考音频能进行比较,先对合成音频和参考音频进行了对齐处理,即动态时间归整(Dynamic Time Warping,DTW)[23].此外,基频信息提取,实验中使用了Yin[24]算法.

梅尔倒谱失真(Mean Cepstral Distortion,MCD)[25]:

其中,ct,k和为第t帧的第k维梅尔频谱倒谱系数(Mel-Frequency Cepstral Coefficient,MFCC),ct,k为参考音频,为合成音频,参数k为MFCC的维数,T为所有音频的总帧数.

音高错误率(Gross Pitch Error,GPE)[26]:

其中,NVV代表预测值和真实值都为浊音(Voiced)时的帧数,NFOE表示满足条件的帧数,δ是一个阈值,通常设置为20%.

F0帧错误率(F0 Frame Error,FFE)[27]:

其中,N代表帧的总数,NUV表示真实值为清音(Unvoiced)被预测为浊音时的帧数,NVU表示浊音被预测为清音时的帧数.

3.3 合成结果的客观评测与分析BERT模型利用大规模的无标记文本数据进行无监督训练,其生成的词向量包含了丰富的句法和语义信息.本文使用两种方法将BERT预训练词向量作为附加信息输入,表1给出了实验结果,3个评测指标数值越小表示模型效果越佳.此外,本文将结构不作修改、采用印尼语音素序列输入的Tacotron2系统作为基线语音合成系统.3个实验模型,除结构不同外,其他变量全部保持一致.根据表1数据,可以看到,将BERT预训练模型信息作为系统附加的信息输入,确实可以提高系统的合成效果,两种方法在各个指标上都明显优于基线系统,而且3个指标中梅尔倒谱失真值降低了约15%,音高错误率和F0帧错误率也有近8%的降低.

表1 基线系统、上下文信息拼接法和词向量拼接法的评测结果对比Tab.1 The comparison results of three metrics with different methods%

Tacotron系统中采用过两种结构的编码器,其中CBHG编码器应用于Tacotron 1代系统,CNN编码器作为CBHG的改进被应用于Tacotron 2代系统.CBHG编码器由一个卷积神经网络,一个高速网络(Highway Network)和双向的门控循环单元(GRU)组成,采用残差连接. 而CNN编码器结构相对简洁,包括一个卷积神经网络和一个双向LSTM.CBHG编码器结构相比CNN编码器更复杂,其优点是在采用字符输入时,效果要优于CNN编码器.而CNN编码器学习重音、语调的能力要好于CBHG编码器.针对两种编码器,本文进行了几组实验,表2给出了对应的实验结果.根据实验数据可以看到,对印尼语音素序列和BERT预训练信息的处理,两路信息同时采用相同结构编码器时系统效果最佳.针对两种信息拼接方法,上下文信息拼接法采用两种编码器都可以得到较好的结果,词向量拼接法采用CNN编码器效果明显好于CBHG编码器.而且通过对结果的总体分析,上下文拼接法的效果要优于词向量拼接法,造成这一现象的主要原因为上下文信息拼接法是将经过注意力机制筛选后的上下文信息进行融合,系统对这一部分信息的处理充分,只提取了有助于合成的那一部分信息.而词向量拼接法是直接将经过编码器处理后的信息进行融合,由于上采样的处理方式以及BERT预训练模型包含了大量高级信息,信息筛选不完全,导致系统合成结果要逊色一些.

表2 采用不同编码器的上下文信息拼接法和词向量拼接法的评测结果对比Tab.2 The comparison results of three metrics with different encoders%

3.4 注意力对齐结果与梅尔频谱结果分析注意力对齐结果的好坏直接影响合成结果.图5为可视化注意力对齐结果,注意力对齐结果呈对角线状,表示在生成音频序列时,解码器集中在正确的音素上,保证了每个字符的发音正确.通过观察,注意力对齐结果与合成音频质量之间密切相关,但是目前暂时无法用一种简单的方法去量化这种相关性,未来会继续进行探究.另一方面,如图5(c)和图5(d)所示,可以看到两张结果图都有很高的注意力值,呈明显对角线,且无明显间断点.相比之下,图5(b)词向量拼接法的注意力值要低一些,而且对齐结果的开头和结尾处存在明显的对齐错误.根据注意力对齐结果,也可以得出上下文信息拼接法要优于词向量拼接法的结论.

此外,实验中发现在预测停止令牌(Stop Token)时,基于Tacotron2的基线印尼语语音合成系统无法正确预测停止令牌,导致不能结束解码过程,最终产生乱码,特别是在预测长句的时候.但是文中使用的上下文信息拼接和词向量拼接方法,在实验中并没有出现这一情况,尽管会出现合成效果不佳情况,但是都能够正确预测出停止令牌.

图6为上述对齐结果对应的合成语音梅尔频谱图.相比基线系统,上下文信息拼接法和词向量拼接法合成的语音时长更接近原音,对于停顿和语调的预测更准确.结合图5和图6,可以明显看到,本文所阐述的两种方法相比基线系统性能有所提升,确实有着更好的合成效果.

图5 可视化注意力对齐结果Fig.5 Results of visual attention mechanism alignment

图6 合成语音梅尔频谱图Fig.6 Synthetic speech Mel-spectrogram diagram

3.5 合成语音主观评测合成语音主观评测采用了语音质量评价中常用的平均意见得分(Mean Opinion Score,MOS),即依靠人的听觉印象来对听到的语音进行评价打分. 评测中,邀请了实验室研究语音信号处理的10同学以及2位印尼语专业的同学对合成的测试集50句语音进行了评测.主观评测的评分细则如表3所示.

表3 语音主观评测标准Tab.3 Subjective evaluation criteria for speech

在合成语音主观评测中,对文中介绍的上下文信息拼接、词向量拼接以及基线系统分别进行了MOS评分,然后对获得的数据进行了分析处理,得到如表4所示的结果.

表4 语音主观评测结果Tab.4 Subjective evaluation results of speech

根据上述主观评测结果,相比于基线系统,文中介绍方法取得平均意见得分达到4.15,远高于基线系统的3.72,有很大的数值提升,但该评测方法主观影响过重.所以,综合主观和客观两方面的评测结果分析,本文介绍的基于BERT预训练词信息的方法相比于基线系统,有一定的性能提升,但合成语音质量与原始音频仍有较大差距,仍具有很大的优化空间.

4 总结

本文围绕印尼语语音合成系统,提出了基于BERT预训练语言模型的印尼语语音合成系统.该系统将BERT预训练的词向量信息作为系统额外输入,并且使用了两种方法来将BERT预训练信息嵌入原系统.在有限语料条件下,该系统可以提高合成语音质量,而且该系统也可应用于其他低资源语言.通过合成语音的客观评测和主观评测结果进一步证明了该方案的有效性,两种方法相对于基线系统都有显著的性能提升,但合成语音质量与原始音频仍有提升空间.未来的工作,将继续改进系统,解决合成中出现的不正确停顿问题,以及合成中预测停止符不确定造成音频时长变短,语速过快的现象,进一步提高合成语音的质量.

猜你喜欢

编码器注意力语音
让注意力“飞”回来
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
基于FPGA的同步机轴角编码器
“扬眼”APP:让注意力“变现”
基于PRBS检测的8B/IOB编码器设计
A Beautiful Way Of Looking At Things
JESD204B接口协议中的8B10B编码器设计