广东工业大学学报  2024, Vol. 41Issue (2): 84-92.  DOI: 10.12052/gdutxb.230025.
0

引用本文 

郭傲, 许柏炎, 蔡瑞初, 郝志峰. 基于时序对齐的风格控制语音合成算法[J]. 广东工业大学学报, 2024, 41(2): 84-92. DOI: 10.12052/gdutxb.230025.
Guo Ao, Xu Bo-yan, Cai Rui-chu, Hao Zhi-feng. Temporal Alignment Style Control in Text-to-Speech Synthesis Algorithm[J]. JOURNAL OF GUANGDONG UNIVERSITY OF TECHNOLOGY, 2024, 41(2): 84-92. DOI: 10.12052/gdutxb.230025.

基金项目:

国家自然科学基金资助项目(61876043, 61976052, 62206064);国家优秀青年科学基金资助项目 (62122022);科技创新2030“新一代人工智能”重大项目(2021ZD0111501)

作者简介:

郭傲(1999–),男,硕士研究生,主要研究方向为机器学习、语音合成,E-mail:guoao0209@gmail.com

通信作者

蔡瑞初(1983–),男,教授,博士,主要研究方向为机器学习、因果关系,E-mail:cairuichu@gmail.com

文章历史

收稿日期:2323-02-21
基于时序对齐的风格控制语音合成算法
郭傲1, 许柏炎1, 蔡瑞初1, 郝志峰1,2    
1. 广东工业大学 计算机学院, 广东 广州 510006;
2. 汕头大学 理学院, 广东 汕头 515063
摘要: 语音合成风格控制的目标是将自然语言转化为对应富有表现力的音频输出。基于Transformer的风格控制语音合成算法能在保持质量的情况下提高了合成速度,但仍存在不足:第一,在风格参考音频和文本长度差异大的情况下,存在合成音频部分风格缺失的问题;第二,基于普通注意力的解码过程容易出现复读、漏读以及跳读的问题。针对以上问题,提出了一种基于时间对齐的风格控制语音合成算法(Temporal Alignment Text-to-Speech,TATTS)分别在编码和解码过程中有效利用时序信息。在编码过程中,TATTS提出了时序对齐的交叉注意力模块联合训练风格音频与文本表示,解决了不等长音频文本的对齐问题;在解码过程中,TATTS考虑了音频时序单调性,在Transformer解码器中引入了逐步单调的多头注意力机制,解决了合成音频中出现的错读问题。与基准模型相比,TATTS在LJSpeech和VCTK数据集上音频结果自然度分别提升了3.8%和4.8%,在VCTK数据集上风格相似度提升了10%,验证了该语音合成算法的有效性,并且体现出风格控制与迁移能力。
关键词: 语音合成    时序对齐    风格控制    Transformer    风格迁移    
Temporal Alignment Style Control in Text-to-Speech Synthesis Algorithm
Guo Ao1, Xu Bo-yan1, Cai Rui-chu1, Hao Zhi-feng1,2    
1. School of Computer Science and Technology, Guangdong University of Technology, Guangzhou 510006, China;
2. College of Science, Shantou University, Shantou 515063, China
Abstract: The goal of speech synthesis style control is to convert natural language into corresponding expressive audio output. The speech synthesis style control algorithm based on Transformer can improve synthesis speed while maintain its quality. But there still exist some shortcomings. Firstly, there is a problem of missing style in synthesized audio, when there is a large disparity between the length of the style reference audio and text. Secondly, the decoding process based on vanilla attention is prone to problems of repeating, omission and skipping. To address the above problems, a temporal alignment style control speech synthesis algorithm TATTS is proposed, which can effectively utilize temporal information in the encoding and decoding processes, respectively. In the encoding process, TATTS proposes a temporal alignment cross-attention module to jointly train style audio and text representations, which can solve the alignment problem of unequal-length audio and texts. In the decoding process, TATTS considers the monotonicity of audio timing. And a stepwise monotonic multi-head attention mechanism in the Transformer decoder is proposed to solve the problem of misreading in synthesized audio. The experimental results show that, compared with the baseline model, TATTS has increased the naturalness index of audio results on the LJSpeech and VCTK datasets by 3.8% and 4.8%, respectively, and the style similarity index on the VCTK dataset has increased by 10%. Experimental results demonstrate the effectiveness of the synthetic algorithm, and the ability to style control and transfer.
Key words: speech synthesis    temporal alignment    style control    Transformer    style transfer    

近年来,随着音视频软件的不断普及,语音合成技术的需求不断增大,备受学术界和工业界的关注。语音合成又叫文语转换(Text-to-Speech, TTS) ,其任务是将自然语言转化为对应的音频输出,为了使合成出的音频更加自然,需要在语音合成模型中增加风格控制方法。人类的语音由语言内容和副语言信息构成,其中的副语言信息又可以分为说话人特征和说话风格:说话人特征对应特定说话人的声音属性,如口音和声音类型;说话风格对应句子中的时变属性,如语速、响度和韵律。语音合成中的风格控制任务是通过对语音风格进行控制与迁移,合成出更加自然、更加富有表现力的音频。

主流语音合成方法[1-4]通过研究如何学习说话人特征与风格特征,来提高风格迁移语音合成的可控性:文献[5]基于自回归的Tacotron[1]模型提出全局风格标记(Global Style Token, GST) 模型,它使用风格标记的线性组合来表示从说话人参考音频中抽取到的说话人特征,使系统可以合成出具有不同说话人特征的音频。对于如何提取风格特征,文献[6]使用风格编码器从风格参考音频中提取定长的风格嵌入,文献[7]又将定长的风格嵌入扩展为可变长度的风格嵌入以模拟更加细粒度的说话风格,并使用软注意力机制来融合文本与风格信息。文献[8]将注意力机制替换为对风格参考音频的强制对齐,以达到在音素级别上融合风格嵌入的目的。文献[7]则采用了缩放的点积注意力机制来学习音素特征与风格特征之间的对齐方式,每个特征之间进行逐个对齐,然而这种连接方式过于简单,很容易受到内容泄露的影响,并且忽视了风格特征与音素特征不同位置上更细粒度的信息交互。可见,目前主流的风格控制与风格迁移研究工作,最初集中在研究学习输入特征方面,并取得了显著效果,而当前的主要挑战是学习不同特征之间的对齐关系。

文献[4]提出了基于Transformer[9]的语音合成算法,在加快了推理速度的同时没有带来明显的质量下降。考虑到基于Transfomer的研究工作在不同模态的任务上都取得了显著的学习效果[10-14],提出使用基于Transformer的风格控制与迁移语音合成算法学习不同模态特征的对齐关系。然而,当前基于Transformer的语音合成算法在编码和解码过程仍存在时序特征上的对齐困难。第一,长参考音频与合成音频无法完整风格对齐。编码器无法很好地同时编码学习文本信息和风格参考音频;在风格参考音频和文本长度差异大的情况下,存在合成音频部分风格缺失的情况。第二,输入文本与合成音频存在对齐错误。基于普通注意力的解码过程合成的音频容易出现复读、漏读以及跳读问题。解决上述不足的关键在于如何在风格控制语音合成算法的编码解码过程中引入时序信息。

针对前文所述的问题,本文提出了一种基于时序对齐的语音合成算法(Temporal Alignment Text-to-Speech, TATTS) 。该算法使用TransformerTTS 作为基准模型,同时结合文献[5]基于GST的方法拓展为MultiSpeech[15] 支持多说话人语音合成。TATTS分别在TransformerTTS的编码器Encoder与解码器Decoder中引入时序对齐,在编码器Encoder阶段,设计了一种时序对齐的交叉注意力模块,使不等长的风格特征与待合成文本达到更好的信息融合,并缓解了内容泄露的问题。在解码器Decoder阶段,本文采用了强制单调时序对齐的方法,使自回归的语音合成模型可以合成出通顺、流畅的语音结果。本文贡献可总结如下:

(1) 在编码过程,提出了一种时序对齐的交叉注意力模块,其考虑了风格特征与文本特征的时序信息,能够提升不等长的风格特征与文本特征的融合能力,可以更好地联合学习编码文本信息和风格参考音频。

(2) 在解码过程,提出采用逐步单调的多头注意力机制对语音特征与文本特征进行时序对齐,以保证自回归生成过程可以合成通顺的语音结果。

(3) 与基准模型相比,提出的语音合成算法在LJSpeech和VCTK数据集上的指标均有提升,且体现出了风格控制与迁移的功能。

1 TransformerTTS

本节将详细介绍TransformerTTS模型,TransformerTTS模型结构如图1所示。

图 1 TransformerTTS模型的整体架构图 Figure 1 The overview of the TransformerTTS
1.1 文本−音素向量化

与自然语言处理(Natural Language Processing, NLP) 中的机器翻译等任务不同的是,语音合成任务并不直接将文本作为模型的输入,而是将文本转换为对应的音素。以英文为例,目前已经有完备的语言学知识以构建基于规则的文本到音素转换器函数${f_{\rm{ch}}}$,利用转换器将文本${t_i}$转换为音素嵌入$ {{\boldsymbol{s}}_i} $

$ {{\boldsymbol{s}}_i} = {f_{\rm{lo}}}(D,{f_{\rm{mu}}}({f_{\rm{ch}}}({t_i}) ) ) $ (1)

式中:${f_{\rm{mu}}}$为将音素映射为音素${\text{id}}$的函数,$D$为音素字典,${f_{\rm{lo}}}$为音素嵌入查找函数。

音素嵌入还需要通过预处理网络进行升维和增加非线性,因为文本与从音频中提取的梅尔谱处于两个不同的空间,而后续模型进行的注意力机制需要在同一空间内进行,因此需要使用额外子网络进行非线性化以进行后续的计算操作。预处理网络由使用ReLU激活函数[16]的两层全连接层组成。

Transformer模型通过注意力机制学习序列表示,但无法自动捕获序列的位置信息,而TransformerTTS编码器和解码器的输入分别为文本对应的音素嵌入${\boldsymbol{s}}$和文本对应音频的梅尔谱${\boldsymbol{m}}$,每个单元所包含的信息量不同,所以可能会有不同值域,因此TransformerTTS提出了缩放位置编码(Scaled Positional Encoding, SPE) ,如图1及式(2)~(3)所示。

$ {f_{{\text{SPE}}}}{\text{(pos}},k{\text{) }} = {\text{sin}}\left(\frac{{{\text{pos}}}}{{{{10\;000}^{k/{d_{{\text{pos}}}}}}}}\right){{ b, }}\;\;\;k = 2j $ (2)
$ {f_{{\text{SPE}}}}{\text{(pos}},k{\text{) }} = {\text{cos}}\left(\frac{{{\text{pos}}}}{{{{10\;000}^{{\text{(}}k - 1{\text{) }}/{d_{{\text{pos}}}}}}}}\right){{ b}},\;\;\;k = 2j + 1 $ (3)
$ {{\boldsymbol{x}}_i} = f_{\text{pre}}({{\boldsymbol{s}}_i}{\text{) }} + f_{\text{SPE}}{\text{(}}i{\text{) }} $ (4)

式(2)~(4)中:${d_{{\text{pos}}}}$为位置嵌入的维度,${f_{{\text{SPE}}}}{\text{(pos}},k{\text{) }}$为音素${\boldsymbol{s}}$${\text{pos}}$位置上位置嵌入在第$k$维的值,$b$为可训练的标量系数,使位置编码的值域可以在训练过程中自动调整,以适应文本嵌入和频谱嵌入的值域,$ f_{\text{pre}} $为预处理子网络。当维度$k$为偶数时,使用式(2)计算SPE。当维度$k$为奇数时,使用式(3)计算SPE。式(4)表示将音素嵌入与位置嵌入相加后,得到编码器Encoder的输入特征${\boldsymbol{X}} = \{ {{\boldsymbol{x}}_1},{{\boldsymbol{x}}_2}, \cdots ,{{\boldsymbol{x}}_N}\}$,编码器Encoder的输出特征${{\boldsymbol{E}}_{{\text{enc}}}}$可由式(5) 计算得出。

$ {{\boldsymbol{E}}_{{\text{enc}}}} = {f_{{\text{enc}}}}({\boldsymbol{X}}) $ (5)

式中:$ {f_{{\text{enc}}}} $为TransformerTTS的编码器Encoder结构,具体的计算流程如1.2节所示。

在TransformerTTS解码阶段,解码器Decoder的输入为编码器Encoder的输出特征${{\boldsymbol{E}}_{{\text{enc}}}}$以及对应文本的音频梅尔频谱${\boldsymbol{m}}_i^\prime$,与编码器Encoder的音素嵌入处理流程相同,梅尔频谱${\boldsymbol{m}}_i^\prime$也需要通过预处理网络进行升维与增加非线性的操作,再加上位置编码后得到最终解码器Decoder的音频梅尔频谱输入特征$ {{\boldsymbol{M}}_{{\text{in}}}} = \{ {{\boldsymbol{m}}_1},{{\boldsymbol{m}}_2}, \cdots ,{{\boldsymbol{m}}_N}\} $

$ {{\boldsymbol{m}}_i} = f_{\text{pre}}({\boldsymbol{m}}_i^\prime ) + {f_{{\text{SPE}}}}(i) $ (6)
1.2 多头注意力机制

TransformerTTS模型使用了和Transformer模型结构中相同的多头注意力机制(MultiHead Attention, MHA) [9]。其核心是把原本的注意力机制分到多个子空间中各自计算,使注意力头可以从不同的角度与方面考虑查询和键的关系,用不同的方式组合值,从而获得更全面的信息。以编码器Encoder阶段为例,TransformerTTS将音素特征$ {\boldsymbol{X}} = \{ {{\boldsymbol{x}}_1},{{\boldsymbol{x}}_2}, \cdots ,{{\boldsymbol{x}}_N}\} $转化为查询矩阵$ {\boldsymbol{Q}} $、键矩阵${\boldsymbol{K}}$、值矩阵${\boldsymbol{V}}$以作为MHA的输入,如式(7)~(14)所示,最终得到编码器Encoder的输出特征$ {{\boldsymbol{E}}_{{\text{enc}}}} = \{ {{\boldsymbol{E}}_1},{{\boldsymbol{E}}_2}, \cdots ,{{\boldsymbol{E}}_N}\} $

$ {\boldsymbol{Q}}_i^{(t) } = {{\boldsymbol{x}}_i}{\boldsymbol{W}}_{\boldsymbol{Q}}^{(t) } $ (7)
$ {\boldsymbol{K}}_i^{(t) } = {{\boldsymbol{x}}_i}{\boldsymbol{W}}_{\boldsymbol{K}}^{(t) } $ (8)
$ {\boldsymbol{V}}_i^{(t) } = {{\boldsymbol{x}}_i}{\boldsymbol{W}}_{\boldsymbol{V}}^{(t) } $ (9)
$ {\boldsymbol{e}}_{i,j}^{(t) } = \frac{{{\boldsymbol{Q}}_i^{(t) }{{({\boldsymbol{K}}_j^{(t) }) }^{\text{T}}}}}{{\sqrt {{d_k}} }} $ (10)
$ {\boldsymbol{\alpha }}_{i,j}^{{\text{(}}t{\text{) }}} = {\text{softmax(}}{\boldsymbol{e}}_{i,j}^{{\text{(}}t{\text{) }}}{\text{) }} = \frac{{{\text{exp(}}{\boldsymbol{e}}_{i,j}^{{\text{(}}t{\text{) }}}{\text{) }}}}{{\sum\limits_{w = 1}^N {{\text{exp(}}{\boldsymbol{e}}_{i,w}^{{\text{(}}t{\text{) }}}{\text{) }}} }} $ (11)
$ {\boldsymbol{z}}_i^{{\text{(}}t{\text{) }}} = \sum\limits_{j = 1}^N {{\boldsymbol{\alpha }}_{i,j}^{{\text{(}}t{\text{) }}}{\text{(}}{\boldsymbol{V}}_i^{{\text{(}}t{\text{) }}}{\text{) }}} $ (12)
$ {{\boldsymbol{z}}_i} = {f_{{\text{LN}}}}({{\boldsymbol{x}}_i} + [{\boldsymbol{z}}_i^{{\text{(1) }}},{\boldsymbol{z}}_i^{{\text{(2) }}},\cdots,{\boldsymbol{z}}_i^{{\text{(}}t{\text{) }}},\cdots,{\boldsymbol{z}}_i^{{\text{(}}T{\text{) }}}]) $ (13)
$ {{\boldsymbol{E}}_i} = {f_{{\text{LN}}}}({{\boldsymbol{z}}_i} + f_{\text{FFN}}({{\boldsymbol{z}}_i}) ) $ (14)

式(7)~(14)中:$ {\boldsymbol{W}}_{\boldsymbol{Q}}^{(t) } $$ {\boldsymbol{W}}_{\boldsymbol{K}}^{(t) } $$ {\boldsymbol{W}}_{\boldsymbol{V}}^{(t) } $为第$t$个注意力头所对应的权重矩阵,${d_k}$为每个头的维度,${\boldsymbol{e}}_{i,j}^{(t) }$${\boldsymbol{\alpha }}_{i,j}^{(t) }$为由第$t$个注意力机制计算得到的相关系数与归一化注意力系数,${\boldsymbol{z}}_{i,j}^{(t) }$为由第$t$个注意力机制计算得到的输出结果,$T$为注意力头的个数,$ {f_{{\text{LN}}}} $为归一化操作(Layer Normalization, LN),${\text{[,]}}$为拼接操作,$f_{\text{FFN}}$为前馈神经网络(Feed Forward Network, FFN) 。

1.3 输出层和后处理网络

TransformerTTS解码器Decoder的输出需要分别经过梅尔线性层与停止层。其中梅尔线性层由1层全连接神经网络构成,用于预测模型最终输出的梅尔频谱,再使用一个由5层的卷积神经网络(Convolutional Neural Network, CNN) [17]构成的后处理网络产生残差以细化重构的梅尔频谱;停止层也由1层全连接神经网络构成,用于预测梅尔序列何时停止,具体的计算流程如式(15)~(17)所示。

$ {{\boldsymbol{E}}_{{\text{sto}}}} = {f_{{\text{sto}}}}({{\boldsymbol{E}}_{{\text{dec}}}}) $ (15)
$ {\boldsymbol{M}}_{{\text{out}}}^\prime = {f_{{\text{mel}}}}({{\boldsymbol{E}}_{{\text{dec}}}}) $ (16)
$ {{\boldsymbol{M}}_{{\text{out}}}} = {\boldsymbol{M}}_{{\text{out}}}^\prime + {f_{{\text{pos}}}}({\boldsymbol{M}}_{{\text{out}}}^\prime ) $ (17)

式(15)~(17)中:$ {f_{{\text{sto}}}} $为停止层,${{\boldsymbol{E}}_{{\text{sto}}}}$用于标识梅尔序列何时停止,${f_{{\text{mel}}}}$为梅尔线性层,${{\boldsymbol{E}}_{{\text{dec}}}}$为解码器Decoder的输出特征,${f_{{\text{pos}}}}$为后处理网络,${{\boldsymbol{M}}_{{\text{out}}}}$为TransformerTTS模型最终输出的重构梅尔频谱。

2 本文方法

本节将详细介绍TATTS算法架构,并详细分析每个部分的功能,其中编码器Encoder结构如图2所示。

图 2 TATTS编码器结构 Figure 2 The structure of TATTS encoder
2.1 风格提取网络

图2左半部分所示的是本文使用的风格提取网络结构,风格提取网络的目的是从参考音频中提取和分离说话人特征以及细粒度的说话风格特征。

2.1.1 Wav2Vec 2.0 特征

本文使用Wav2Vec 2.0[11]模型从音频中提取富有语言信息的表示。虽然该模型最初的设计目的是用于对语音识别下游任务进行微调,但目前已经有许多研究证明Wav2Vec 2.0模型在提取不含文本信息的语言信息方面的有效性[18-19],本文将它用作风格特征和说话人特征提取器。

2.1.2 说话人嵌入

对于说话人嵌入,本文采用类似GST模型[5]的结构,将Wav2Vec 2.0的输出特征用具有ReLU激活函数的线性层处理,再使用单层的长短期记忆网络(Long Short-Term Memory, LSTM) [20]以增加上下文信息,最终使用总体均值作为GST模块的查询矩阵${\boldsymbol{Q}}$。为了获得说话人嵌入,查询矩阵${\boldsymbol{Q}}$被输入到多头注意力机制中,可训练的键矩阵${\boldsymbol{K}}$和值矩阵${\boldsymbol{V}}$将作为全局风格标记,GST模块的输出结果即为本文算法使用的说话人嵌入。

2.1.3 风格嵌入

与上文提取说话人嵌入的过程类似,细粒度的风格嵌入由Wav2Vec 2.0的输出特征经过单层的LSTM提取获得。LSTM每一个时间步的输出都会作为多头注意力机制的查询矩阵${\boldsymbol{Q}}$,与可训练的键矩阵${\boldsymbol{K}}$和值矩阵${\boldsymbol{V}}$共同生成初步的风格嵌入序列。然后,应用步长为4、卷积核大小为8的平均池化来平滑风格嵌入。最终的风格嵌入由说话人嵌入广播至与平滑后的风格嵌入维度相等后相加得到。

2.2 时序对齐的交叉注意力模块

引入Transformer架构可以使用更加自然且易于学习的方法将风格信息融合到文本中。在风格参考音频和文本长度差异大的情况下,存在合成音频部分风格缺失的问题,本文提出了如图2上半部分所示的时序对齐的交叉注意力模块,先由双向长短期记忆网络(Bi-directional Long Short-Term Memory, Bi-LSTM) [21]提取时序信息,再由交叉多头的注意力机制达到信息的融合。

对于风格嵌入${\boldsymbol{r}}_i^{{\text{sty}}}$,使用单层Bi-LSTM提取更丰富的时序信息的隐特征便于信息对齐。使用与TransformerTTS相同的编码器结构对文本音素嵌入进行多头自注意力机制以提取重要的信息表示,得到文本编码器Encoder的输出特征$ {\boldsymbol{r}}_i^{{\text{text}}} $。与风格嵌入的操作类似,文本音素嵌入也使用Bi-LSTM提取更加富有时序信息的隐特征作为后续模型的输入,将风格嵌入Bi-LSTM的最后一个时间步的隐藏状态和细胞状态输出作为参数的初始化。这样能将风格嵌入的时序信息以隐藏状态的形式传递至文本音素嵌入中,加强了2个不同模态序列的时序对齐,有利于后续的多头注意力机制可以优先捕获除时序信息外的额外对齐信息,例如:文本信息以及音调、韵律等信息之间的对齐。以上操作的计算如式(18)~(20)所示。

$ \overrightarrow {{\boldsymbol{h}}_i^{{\text{sty}}}} = \overrightarrow {f_{{\text{LSTM}}}^{{\text{sty}}}} ({\boldsymbol{r}}_i^{{\text{sty}}}) ,{\text{ }}\overleftarrow {{\boldsymbol{h}}_i^{{\text{sty}}}} = \overleftarrow {f_{{\text{LSTM}}}^{{\text{sty}}}} ({\boldsymbol{r}}_i^{{\text{sty}}}) $ (18)
$ {\boldsymbol{h}}_i^{{\text{sty}}} = [\overrightarrow {{\boldsymbol{h}}_i^{{\text{sty}}}} ,\overleftarrow {{\boldsymbol{h}}_i^{{\text{sty}}}} ] $ (19)
$ {\boldsymbol{h}}_i^{{\text{text}}} = f_{{\text{Bi-LSTM}}}^{{\text{text}}}({\boldsymbol{r}}_i^{{\text{text}}},{\boldsymbol{h}}_n^{{\text{sty}}},{\boldsymbol{c}}_n^{{\text{sty}}}) $ (20)

式中:${\boldsymbol{r}}_i^{{\text{sty}}}$为风格嵌入,$\overrightarrow {{\boldsymbol{h}}_i^{{\text{sty}}}} $$\overleftarrow {{\boldsymbol{h}}_i^{{\text{sty}}}} $分别为风格嵌入经过$f_{{\text{Bi-LSTM}}}^{{\text{sty}}}$的前向和后向隐藏状态,${\boldsymbol{h}}_i^{{\text{sty}}}$为2个方向上的隐藏状态拼接后的结果,并作为$f_{{\text{Bi-LSTM}}}^{{\text{sty}}}$的输出,$f_{{\text{Bi-LSTM}}}^{{\text{text}}}$为文本音素嵌入使用的Bi-LSTM,${\boldsymbol{r}}_i^{{\text{text}}}$为TransformerTTS编码器Encoder输出的文本音素特征,${\boldsymbol{h}}_n^{{\text{sty}}}$${\boldsymbol{c}}_n^{{\text{text}}}$分别为$f_{{\text{Bi-LSTM}}}^{{\text{sty}}}$最后一个时间步的隐藏状态输出以及细胞状态,$ {\boldsymbol{h}}_i^{{\text{text}}} $$f_{{\text{Bi-LSTM}}}^{{\text{text}}}$与风格嵌入时序信息交互后的输出。

在经过了时序信息交互后,本文使用交叉多头注意力机制对风格特征与文本特征进行融合,与式(7)~(14) 类似,$ {\boldsymbol{h}}_i^{{\text{text}}} $作为多头注意力机制中的查询矩阵${\boldsymbol{Q}}$,而${\boldsymbol{h}}_i^{{\text{sty}}}$作为键矩阵${\boldsymbol{K}}$和值矩阵${\boldsymbol{V}}$。与TransformerTTS编码器Encoder相同的是,TATTS的编码器Encoder也可以采用堆叠多次的方式以获得更好的性能,由于将相同风格特征作为残差连接中多个模块的键矩阵${\boldsymbol{K}}$与值矩阵${\boldsymbol{V}}$,因此也可以将时序对齐的交叉注意力机制模块视为基于风格特征对文本音素特征的逐步细化,最终将多头注意力机制模块输出的混合表征作为TransformerTTS解码器Decoder的输入。

2.3 逐步单调的多头注意力机制

文献[22]指出,在语音合成任务中,需要注意输入文本与最终合成音频的时序对应性,并遵循局部性、单调性和完整性3个标准。基于以上观点,本文采用文献[23]提出的方法,在TATTS算法解码器Decoder部分使用逐步单调的注意力机制(Stepwise Monotonic Attention, SMA) 来解决使用普通注意力机制语音合成模型中会遇到的复读、漏读与跳读等问题。

逐步单调的注意力机制可以映射为逐步单调的多头注意力机制,通过多个注意力机制获得不同子空间的注意力结果。首先,对式(11) 计算出的多个注意力头的归一化注意力系数,采用与文献[2]相同的聚焦率计算方法进行计算,将聚焦率大于设定阈值的注意力头的归一化注意力系数认为是符合对角线模式的,选出符合对角线模式的头在式(10) 中的权重系数结果${\boldsymbol{e}}$,并进行后续的单调强化,而聚焦率小于阈值的注意力头也进行保留,因为稀疏分散的注意力系数也可能表示混合表征序列与音频梅尔频谱序列的一种跨时间步的隐状态映射关系。本文在实验过程中将阈值设定为0.5。

$ {F^{(t) }} = \frac{1}{n}\sum\nolimits_{i = 1}^n {{{\max }_{1 \leqslant j \leqslant l}}{\boldsymbol{\alpha }}_{i,j}^{(t) }} $ (21)

式中:${\boldsymbol{\alpha }}_{i,j}^{{\text{(}}t{\text{) }}}$为式(11) 计算的归一化注意力系数,${F^{{\text{(}}t{\text{) }}}}$为当前注意力头的聚焦率。

后续的单调强化采用伯努利分布期望的形式进行计算:假设在注意力对齐的过程中,上一个时间步$i - 1$的查询Query通过采样系数${y_{i,j}}\sim{\text{Bernoulli}}({p_{i,j}}) $与第$j$个键Key对齐,如果${y_{i,j}} = 1$,当前时间步$i$的查询Query会停止前进并和第$j$个键Key对齐;如果$ {y_{i,j}} = 0 $,当前时间步$i$的查询Query会前进一步并与第$j + 1$个键Key对齐。对于第$i$个查询Query来说,该过程只是保持了持续对齐第$j$个键Key或前进一步对齐第$j = j + 1$个键Key,因此可以认为添加了如图3所示的逐步单调性约束。给定查询Query在时间步$i$到键Key的时间步$j$处停止的采样概率为

图 3 逐步单调的注意力机制 Figure 3 Stepwise Monotonic Attention
$ {p_{i,j}} = {\text{sigmoid}}({{\boldsymbol{e}}_{i,j}} + N(0,1) ) $ (22)

式中:sigmoid为非线性激活函数,${{\boldsymbol{e}}_{i,j}}$为权重系数,表示查询${{\boldsymbol{Q}}_i}$与键${{\boldsymbol{K}}_{_j}}$的匹配度,由于采样操作阻断了网络中的梯度反向传播,因此在训练中采用了伯努利分布的期望,$N(0,1) $为用于拟合采样与期望之间差距的高斯噪声。

最终经过逐步单调的多头注意力机制归一化权重系数的期望${{\boldsymbol{\alpha }}_{i,j}}$

$ {{\boldsymbol{\alpha }}_{i,j}} = {{\boldsymbol{\alpha }}_{i - 1,j - 1}}(1 - {p_{i,j - 1}}) + {{\boldsymbol{\alpha }}_{i - 1,j}}{p_{i,j}} $ (23)
$ {{\boldsymbol{\alpha }}_i} = {{\boldsymbol{\alpha }}_{i - 1}} {p_i} + [0;{{\boldsymbol{\alpha }}_{i - 1,: - 1}} (1 - {p_{i,: - 1}}) ] $ (24)

式中:${\text{[;]}}$为拼接操作,注意力权重系数${\boldsymbol{\alpha }}$的初始值为${{\boldsymbol{\alpha }}_1} = 1$,式(24) 为式(23) 的并行计算公式。

在实际的模型训练中,逐步单调的多头注意力机制需要循环计算各个注意力头的聚焦率,因此在训练过程中会增加额外的训练时间,本文将训练过程分为两步以优化训练时间:首先,使用原始的多头注意力机制训练网络结构,直到所有对角线对齐可以稳定出现。然后,启用逐步单调的多头注意力机制,继续训练模型直到模型收敛。以上训练过程可以显著降低使用逐步单调的多头注意力机制所带来的额外训练时间成本,同时保留其他离散的分散对齐,这有助于模型保留原始建模能力,同时利用输入的上下文依赖性。

基于上述方法,本文提出的基于时间对齐的风格控制语音合成算法TATTS的解码器Decoder部分结构如图4所示,其中采用与文献[15]相同的再次引入说话人嵌入的方法,在解码器预处理网络后重新引入说话人嵌入并相加,以增强最终合成语音中的说话人信息。

图 4 TATTS解码器结构 Figure 4 The structure of TATTS decoder
3 实验结果与分析 3.1 数据集与预处理

本文的实验数据采用LJSpeech数据集[24]和VCTK数据集[25]。LJSpeech数据集是由一名女性英文说话人所录制的公共领域数据集,包含13 000个句子以及所对应的总共时长为24 h的音频文件,句子内容来自7本非小说类书籍,音频文件的时长从1~10 s不等,实验中采用的数据剔除掉了时长大于10 s的音频。VCTK数据集包含110名英文说话人各400条干净的音频共近44 h,实验中剔除了在去掉沉默静音片段后时长小于2 s的音频。最终,本文使用了24 h的LJSpeech数据集以及44名说话人共计20 h的VCTK数据集作为实验数据集,所有实验中训练集数据占比为80%、测试集占比为20%。本文采用和文献[3]相同的特征提取配置:使用1.6×104 Hz的采样率对音频进行重采样,预处理使用的滤波长度为1 024、窗口大小为1 024、帧移为256,最终将音频提取为80维的梅尔频谱并作为TATTS的输入。

3.2 实验配置

本文选取开源的wav2vec2-base版本的Wav2Vec 2.0模型作为特征提取器;使用HiFi-GAN模型[26]作为声码器,HiFi-GAN模型分别开源了在LJSpeech数据集与VCTK数据集上的预训练模型LJ_V1与VCTK_V1,将本文语音合成模型生成的梅尔频谱通过HiFi-GAN声码器合成2.205×104 Hz的音频结果。

本文实验基于PyTorch框架在2块RTX 2080Ti GPU(11 GB) 上进行训练,并且均使用了半精度浮点数(FP16) 训练。模型使用64维的说话人嵌入以及32维的风格嵌入,除了32维的解码器预处理网络以及1 024维的注意力模块中的前馈神经网络,所有模块均采用256维的嵌入大小。整体模型使用5层的时序对齐的交叉注意力模块。在训练过程中,使用初始化为2×10−4学习率的Adam优化器[27]。对于训练过程,首先,在LJSpeech单说话人数据集上对模型进行1×105步的训练,再使用逐步单调的多头注意力机制对模型合成结果单调加强为2×104步,其中批大小为128,保存模型用于单说话人评估。由于说话人嵌入对单说话人语音合成系统没有影响,因此在单说话人推理阶段,本文使用平均说话人嵌入来代替说话人参考音频。基于在LJSpeech数据集上的预训练模型,本文进一步在VCTK数据集上进行微调,训练多说话人嵌入提取模块,共计训练1×105步,批大小为64。

3.3 对比方法

为评估本文所提出TATTS算法的性能,本文对比了5种不同的模型以及进行了消融实验:

(1) GT:数据集中的真实音频。

(2) TATTS-WSN:不使用风格网络(Without Style Network, WSN) 模块,只使用说话人嵌入模块的消融实验,这与TransformerTTS模型在LJSpeech数据集以及MultiSpeech模型在VCTK数据集上的结构一致。

(3) TATTS-A:采用相同说话人的风格参考音频与说话人参考音频。

(4) TATST-S:采用不同说话人的风格参考音频与说话人参考音频。

(5) TATTS-WSMA:不使用逐步单调的多头注意力机制(Without Stepwise Monotonic Attention, WSMA) 的消融实验。

3.4 评价指标

本文使用主观与客观评价相结合的方式来评估所提出模型的性能。

主观评价指标采用平均主观意见得分(Mean Option Score,MOS) [28]测试评估模型合成语音的自然度与音频质量,采用相似平均主观意见得分(Similarity Mean Option Score,SMOS) 评估合成语音的风格相似度。在MOS测试中,评分者在听完每个合成结果后,需要对合成音频的自然度以及声音质量进行5分制打分,其中5分为优、4分为良、3分为中、2分为差以及1分为劣;在SMOS测试中,也采用5分制打分,评价的依据为合成音频与原始参考音频在风格、韵律上的相似度。MOS和SMOS指标越高证明实验效果越好。

客观评价指标使用算法模型合成音频的实时率(Real Time Factor, RTF) 评估模型的复杂度以及算法的实时性,RTF指标越低证明实验效果越好,算法实时性越强。

3.5 结果分析

在本文的所有主观评测中,每种对比方法从测试集中随机抽取文本、风格参考音频与说话人参考音频,分别合成20条音频,且每条音频由不同的打分者分别打分后计算MOS评分。对于SMOS评价,与MOS评分的计算方法相同,本文为每个打分者展示了20对风格参考音频以及合成音频,每条音频由不同的打分者分别打分后计算SMOS评分。参与实验结果打分的志愿者共20人,测试结果如表1表2所示。

表 1 LJSpeech数据集不同模型合成语音结果比较 Table 1 Comparison of synthesis speech results of different models in LJSpeech dataset
表 2 VCTK数据集不同模型合成语音结果比较 Table 2 Comparison of synthesis speech results of different models in VCTK dataset

表1中可以看出,在单说话人英文数据集LJSpeech上,不使用风格提取网络的TATTS-WSN已经可以达到较好的语音合成效果,证明TransformerTTS基准模型已经可以基于说话人特征达到部分的风格迁移效果,但并没有针对说话风格进行具体建模,本文提出的TATTS模型不仅提高了合成语音的自然度,还具有一定的风格迁移效果。TATTS-A-WSMA模型结果证明逐步单调的多头注意力机制对自回归语音合成模型合成出更加自然、流畅的音频有很大的帮助。表2结果表明,TATTS模型在多说话人英语数据集VCTK上也可以合成出较好的语音,且逐步单调的多头注意力机制同样提升了合成语音的质量与自然度。TATTS-S实验结果表明,本文提出的模型可以在多说话人语音合成任务中体现出风格迁移的效果。

同时,为了分析输入文本长度与风格参考音频长度对实验结果风格相似度的影响,本文对比了在VCTK数据集中不同文本长度与风格参考音频长度的音频合成结果的SMOS得分情况。首先将上文随机选取的20个句子按文本长度递增排序编号,同时将20个风格参考音频按音频长度递增排序编号,根据不同合成结果使用的风格参考音频编号与文本编号差值的绝对值进行1~20的递增编号,每个合成结果的SMOS得分如图5所示,其中,编号越小代表风格参考音频长度与文本长度差距越小,编号越大则差距越大。由于本文提出的TATTS模型引入了时序对齐信息的方法,在参考音频长度与文本长度差距较大的音频合成中,本文模型的效果要明显优于MultiSpeech。随着参考音频长度与文本长度差距的增加,即随着图5中的音频编号不断增大,MultiSpeech模型的风格自然度SMOS评分逐渐降低,证明参考音频长度与文本长度差异较大时,其会对风格控制的与迁移的效果产生影响,而本文提出的TATTS算法则不存在这一问题。

图 5 不同长度差距的语音合成样本SMOS比较 Figure 5 SMOS comparison of speech synthesis samples with different length gaps

为了评估所提出的TATTS模型算法的实时性,本文随机在LJSpeech数据集的测试集中抽取100条音频,统计从输入文本到合成最终音频的用时,计算实时率RTF约为0.5,即时长为10 s的音频需要约5 s的合成时间,符合语音合成模型算法的实时性。

4 结语

本文针对语音合成风格控制任务,提出了一种基于时序对齐的风格控制语音合成算法TATTS。其核心思想是在编码与解码过程中的神经网络架构里引入时序信息。在编码过程中,通过提出时序对齐的交叉注意力模块融合编码学习不等长的风格参考音频和文本,使得模型能够在缓解内容泄露的同时达到风格控制与迁移的效果。在解码过程中,通过引入逐步单调的多头注意力机制,提升了模型合成音频的流畅度。实验结果表明,TATTS的性能优于现有基准模型,能生成通顺、自然且富有表现力的音频结果。同时,消融实验证明了模型组成部分的有效性。在未来的工作中,将改进风格特征与说话人特征的提取方式,对参考音频加上信号层级的干扰,减少风格特征中的语言内容信息,解决风格控制音频结果中的内容泄露问题。

参考文献
[1]
WANG Y, SKERRY-RYAN R J, STANTON D, et al. Tacotron: towards end-to-end speech synthesis[C]//Conference of the International Speech Communication Association. Stockholm: ISCA, 2017: 4006-4010.
[2]
REN Y, RUAN Y, TAN X, et al. Fastspeech: fast, robust and controllable text to speech[C]//Advances in Neural Information Processing Systems. Vancouver: NeurIPS, 2019: 3171-3180.
[3]
SHEN J, PANG R, WEISS R J, et al. Natural TTS synthesis by conditioning WaveNet on Mel Spectrogram predictions[C]//IEEE International Conference on Acoustics, Speech and Signal Processing. Calgary: IEEE, 2018: 4779-4783.
[4]
LI N, LIU S, LIU Y, et al. Neural speech synthesis with transformer network[C]//Proceedings of the AAAI Conference on Artificial Intelligence. Hawaii: AAAI, 2019: 6706-6713.
[5]
WANG Y, STANTON D, ZHANG Y, et al. Style tokens: unsupervised style modeling, control and transfer in end-to-end speech synthesis[C]//International Conference on Machine Learning. Stockholm: PMLR, 2018: 5180-5189.
[6]
SKERRY-RYAN R J, BATTENBERG E, XIAO Y, et al. Towards end-to-end prosody transfer for expressive speech synthesis with Tacotron[C]//International Conference on Machine Learning. Stockholm: PMLR, 2018: 4693-4702.
[7]
LEE Y, KIM T. Robust and fine-grained prosody control of end-to-end speech synthesis[C]//IEEE International Conference on Acoustics, Speech and Signal Processing. Vancouver: IEEE, 2019: 5911-5915.
[8]
KLIMKOV V, RONANKI S, ROHNKE J, et al. Fine-grained robust prosody transfer for single-speaker neural Text-To-Speech[C]//Conference of the International Speech Communication Association. Graz: ISCA, 2019: 4440-4444.
[9]
VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[C]//Conference on Neural Information Processing Systems. California: NeurIPS, 2017: 6000-6010.
[10]
DEVLIN J, CHANG M W, LEE K, et al. BERT: pre-training of deep bidirectional transformers for language understanding[C]//Proceedings of NAACL-HLT. Minnesota: NAACL, 2019: 4171-4186.
[11]
BAEVSKI A, ZHOU Y, MOHAMED A, et al. Wav2vec 2.0: a framework for self-supervised learning of speech representations[C]//Advances in Neural Information Processing Systems. Vancouver: NeurIPS, 2020: 12449-12460.
[12]
LI L H, YATSKAR M, YIN D, et al. What does BERT with vision look at?[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Online: ACL, 2020: 5265-5275.
[13]
蔡瑞初, 张盛强, 许柏炎. 基于结构感知混合编码模型的代码注释生成方法[J]. 计算机工程, 2023, 2: 1-11.
CAI R C, ZHANG S Q, XU B Y. Code comment generation method based on structure-aware hybrid encoder[J]. Computer Engineering, 2023, 2: 1-11.
[14]
CAI R C, YUAN J J, XU B Y, et al. SADGA: structure-aware dual graph aggregation network for Text-to-SQL[C]//Advances in Neural Information Processing Systems. Online: NeurIPS, 2021: 7664-7676.
[15]
CHEN M, TAN X, REN Y, et al. MultiSpeech: multi-speaker text to speech with Transformer[C]//Conference of the International Speech Communication Association. Online: ISCA, 2020: 4024-4028.
[16]
GLOROT X, BORDES A, BENGIO Y. Deep sparse rectifier neural networks[C]//Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics. La Palma: JMLR, 2011: 315-323.
[17]
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. Imagenet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6): 84-90. DOI: 10.1145/3065386.
[18]
CHOI H S, LEE J, KIM W, et al. Neural analysis and synthesis: reconstructing speech from self-supervised representations[C]//Advances in Neural Information Processing Systems. Online: NeurIPS, 2021: 16251-16265.
[19]
CHOI H S, YANG J, LEE J, et al. NANSY++: unified voice synthesis with neural analysis and synthesis[EB/OL]. arxiv: 2211.09407 (2022-11-17) [2023-3-24].https://arxiv.org/abs/2211.09407.
[20]
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural computation, 1997, 9(8): 1735-1780. DOI: 10.1162/neco.1997.9.8.1735.
[21]
LAMPLE G, BALLESTEROS M, SUBRAMANIAN S, et al. Neural architectures for named entity recognition[C]//Proceedings of NAACL-HLT. California: NAACL, 2016: 260-270.
[22]
HE M, DENG Y, HE L. Robust sequence-to-sequence acoustic mdeling with stepwise monotonic attention for neural TTS[C]//Conference of the International Speech Communication Association. Graz: ISCA, 2019: 1293-1297.
[23]
LIANG X, WU Z, LI R, et al. Enhancing monotonicity for robust autoregressive transformer TTS[C]//Conference of the International Speech Communication Association. Online: ISCA, 2020: 3181-3185.
[24]
KEITH I, LINDA J. The LJ speech dataset[EB/OL]. (2018-2-19) [2023-3-24].https://keithito.com/LJ-Speech-Dataset.
[25]
YAMAGISHI J, VEAUX C, MACDONALD K. CSTR VCTK corpus: english multi-speaker corpus for CSTR voice cloning toolkit (version 0.92) [EB/OL]. (2019-11-13) [2023-3-24].https://doi.org/10.7488/ds/2645.
[26]
KONG J, KIM J, BAE J. Hifi-gan: generative adversarial networks for efficient and high fidelity speech synthesis[C]//Advances in Neural Information Processing Systems. Vancouver: NeurIPS, 2020: 17022-17033.
[27]
KINGMA D P, BA J. Adam: a method for stochastic optimization[EB/OL]. arxiv: 1412.6980 (2017-1-30) [2023-3-24].https://arxiv.org/abs/1412.6980.
[28]
STREIJL R C, WINKLER S, HANDS D S. Mean opinion score (MOS) revisited: methods and applications, limitations and alternatives[J]. Multimedia Systems, 2016, 22(2): 213-227. DOI: 10.1007/s00530-014-0446-1.