学术研究

基于梯度归一化的端到端语音合成自适应损失权衡

  • 陈宽 , 1, 2 ,
  • 陈涛 3 ,
  • 尤玮珂 , 1, 2, * ,
  • 周琳娜 1, 2 ,
  • 杨忠良 1, 2
展开
  • 1. 北京邮电大学网络空间安全学院,北京 102206
  • 2. 北京邮电大学信息安全中心,北京 102206
  • 3. 国际关系学院网络空间安全学院,北京 100091
尤玮珂(

网络出版日期: 2024-05-18

基金资助

国家自然科学基金(62172053,62302059);国家重点研发计划(2021YFC3340602,2022YFC3300800,2023YFC3305401);中央高校基本科研业务费(2023RC30)

版权

版权所有©《网络空间安全科学学报》编辑部 2024

Gradient normalization for adaptive loss balancing in end-to-end speech synthesis

  • CHEN Kuan , 1, 2 ,
  • CHEN Tao 3 ,
  • YOU Weike , 1, 2, * ,
  • ZHOU Linna 1, 2 ,
  • YANG Zhongliang 1, 2
Expand
  • 1. School of Cyberspace Security, Beijing University of Posts and Telecommunications, Beijing 102206, China
  • 2. Information Security Research Center, Beijing University of Posts and Telecommunications, Beijing 102206, China
  • 3. School of Cyber Science and Engineering, University of International Relations, Beijing 100091, China

Online published: 2024-05-18

Supported by

National Natural Science Foundation of China under Grant (62172053, 62302059); National Key R&D Program of China under Grant (2021YFC3340602,2022YFC3300800,2023YFC3305401); Fundamental Research Funds for Central Universities under Grant (2023RC30)

Copyright

Copyright ©2024 Journal of Cybersecurity. All rights reserved.

摘要

语音合成技术是指给定文本经过模型处理生成目标说话人语音的过程,该技术在现实社会中已经得到广泛应用。在众多的语音合成模型中,VITS (The Variational Inference for Text-to-Speech) 模型将多任务损失函数进行有效组合,相比以往的模型,能够生成质量更高、听感更自然的语音。然而,现有模型依赖多个损失函数,暂时缺乏对其有效权衡的研究。因此,在现有模型损失函数的基础上,引入了梯度归一化自适应损失平衡优化方法,它根据模型不同损失函数的量级与不同子任务的训练速度来平衡各损失函数之间的权重,以验证该方法在语音合成任务中的适用性。在公开的中文语音合成数据集上评估了该方法合成语音的准确度与自然度,结果表明,采用此损失函数的模型在性能上得到了提升,证明了方法的有效性。

本文引用格式

陈宽 , 陈涛 , 尤玮珂 , 周琳娜 , 杨忠良 . 基于梯度归一化的端到端语音合成自适应损失权衡[J]. 网络空间安全科学学报, 2024 , 2(1) : 72 -82 . DOI: 10.20172/j.issn.2097-3136.240106

Abstract

Text-to-Speech (TTS) synthesis refers to the process of generating target speaker's speech from given text through model processing. It has become a crucial component in numerous applications. The Variational Inference for Text-to-Speech (VITS) model represents a significant advancement in TTS technology, offering superior speech quality and a more natural sound compared to traditional two-stage models. However, it is crucial to note that the performance of the VITS model is highly sensitive to how its losses are balanced. Currently, there is a lack of research on the effective balance of the losses. This study introduced Gradient Normalization for adaptive loss balancing in end-to-end speech synthesis as a means to identify the optimal balance for the VITS model. This method aimed to enhance the model's adaptability by dynamically adjusting the weighting of different loss components during training. To assess the accuracy and naturalness of synthesized speech using our proposed approach, the study conducted experiments using a publicly available Chinese TTS dataset. The results demonstrated that models using this method to balance losses had seen performance improvements, confirming the effectiveness of the approach. The significance of this research lies in its contribution to advancing TTS technology, particularly in the context of the VITS model.

0 引言

文本转语音(Text-to-Speech,TTS),即语音合成技术,是指给定文本经过模型处理生成目标说话人语音的过程。语音合成研究的兴起得益于多个因素。首先,人们对于可访问性的需求不断增加。语音合成技术能够帮助那些视力受损或有阅读障碍的人士以及盲人等特殊群体更好地获得信息,提升他们的生活质量。另外,随着数字化和智能化的发展,人们对于智能语音助手的需求也逐渐增加,语音合成技术成为这些智能助手的重要组成部分。在现实社会中,语音合成技术已经得到广泛应用,被用于各种应用领域,包括但不限于可访问性辅助工具、智能音箱和汽车导航系统等。语音合成技术还被应用于语音广告、电话客服以及虚拟人物等场景中,使得用户与机器的交互更加自然和便利。虽然语音合成技术的普遍应用为人类社会带来了许多便利,但仍有不法分子企图通过技术手段来实施违法犯罪行为,如2023年5月,福州市某科技公司法人10分钟被骗取430万元,犯罪分子正是通过语音合成技术,将说话音色转换为被骗者好友的音色来实施诈骗。以上事件凸显了对语音合成技术进行深入研究的紧迫性,以发展更加安全、可信赖的技术,以及应对潜在滥用的风险。在当今数字时代,语音合成技术的不断创新对人机交互、有声图书、智能客服以及语音助手等多个应用领域产生了深远的影响,学习研究语音合成技术是紧迫且必要的。
随着深度神经网络的快速发展,语音合成系统从最初的两阶段生成建模发展到端到端语音合成模型,比较典型的代表是基于变分推断的端到端语音合成[1](Variational Inference with Adversarial Learning for End-to-end Text-to-Speech,VITS)模型。得益于VITS模型训练过程中多个损失函数的组合,其生成的语音相比经过两阶段生成模型得到的语音更加流畅,听感也更加自然。
然而,VITS模型的表现依赖于其训练过程中各个损失函数之间的平衡。图1中给出了VITS模型训练过程中重构损失 1权重的变化对语音合成字错误率的影响,可以看出,原文作者给出的预设权重并没有达到模型的最优效果,甚至相差较远[2]
图 1 重构损失权重的变化对语音合成字错误率的影响

Fig.1 The impact of varying the loss balance hyper-parameter α on the word error rate of speech synthesis

目前,深度学习模型在语音合成任务上取得了显著的成功,但是这些模型通常依赖于多个复杂的损失函数来进行训练。尽管这些损失函数在各自的任务上表现出色,然而,缺乏对它们之间有效权衡的深入研究,这可能导致模型在特定场景下性能不佳,甚至出现不稳定的训练情况。对于多任务学习和联合学习等复杂场景,现有研究主要集中在设计和使用多个损失函数来解决不同任务。然而,这些任务之间的关联性和损失函数之间的交互影响通常未经充分考虑。本文的研究动机是深入探讨在多任务学习框架中如何有效地权衡不同损失函数,以实现更好的性能和更稳定的训练。因此,本文在VITS模型基础上,引入梯度归一化自适应损失平衡优化方法[3],使用该方法优化后,模型的损失函数称为基于梯度归一化的自适应权衡损失函数。梯度归一化是一种训练深度神经网络时常用的技术,它有助于稳定训练过程并提高模型的性能,防止训练过程中梯度爆炸或梯度消失的问题,同时有助于加速模型的收敛过程,使得模型在较短时间内达到更好的性能,这对于训练大规模神经网络或具有复杂结构的模型(如VITS)尤为重要。基于梯度归一化的自适应损失权衡方法的工作原理是,根据不同损失函数的量级与不同任务的训练速度,对各个子任务损失函数的权重进行平衡,该方法旨在通过在训练期间动态调整不同损失函数组成部分的权重,从而增强模型的适应性。实验结果表明,优化后模型合成的语音质量和听感自然度得到提升,模型的性能达到了先进的水平。本文将使用基于梯度归一化的自适应权衡损失函数的端到端语音合成模型命名为EATS (End-to-end Adversarial Text-to-speech)。

1 相关工作

1.1 端到端语音合成

在过去的研究中,语音合成技术的建模过程被分为2个阶段[4]:第一阶段是以说话人编码器生成的说话人嵌入为条件,生成梅尔频谱;第二阶段是以第一阶段生成的梅尔频谱为条件,生成人耳可听的音频波形。目前,两阶段式的语音合成模型已经能够合成近似人类的语音[46]。然而,2个阶段的训练方式存在以下问题:首先,第二阶段依赖于第一阶段的输出进行训练,合成的语音质量受到第一阶段输出的限制,因此需要使用序列化或者微调的训练方式才能合成高质量的语音,这导致了训练和部署的低效性。另外,预定义的中间特征表示,即梅尔频谱限制了模型取得更好的表现[1],而后面学者提出的端到端语音合成方法通过使用模型在训练过程中学习到的隐变量 2来实现从文本到语音的直接转换。
近年来,一些学者纷纷提出了端到端的语音合成方法。与以往的两阶段式建模相比,这种方法直接由文本生成音频波形,因而更具挑战性。这是因为音频波形中包含了比梅尔频谱更为丰富的信息,例如高频响应和相位等。FastSpeech 2[7]沿用了FashSpeech[8]中提出的Feed−Forward Transformer(FFT)架构,但在音素编码器和梅尔频谱解码器中加入了一个可变信息适配器,从而支持在FastSpeech 2和FastSpeech 2s中引入更多的语音中变化的信息,例如时长、音高、音量等,来解决语音合成中的一对多映射问题。在FastSpeech 2的基础上,作者又提出了FastSpeech 2s,以实现完全端到端的文本到语音波形的合成。FastSpeech 2s以可变信息适配器的输出隐层序列为输入,以波形为输出。在训练时,为了帮助可变信息适配器的训练,梅尔频谱解码器及其训练损失函数被保留。在推理阶段,丢弃梅尔频谱解码器,使其成为一个文本到波形的端到端语音合成系统。EATS(End-to-end Adversarial Text-to-Speech)[9],采用了对抗训练与可微分对齐的方式,来实现端到端语音合成。同时,EATS模型在训练过程中采用了动态规划算法计算的软动态时间规整损失,解决生成语音与目标语音之间的长度不匹配问题。Grad−TTS[10]是一个基于扩散概率模型的语音合成生成器,通过引入基于评分的解码器,将编码器输出的参数化高斯噪声转化为梅尔频谱,随机微分方程的框架将传统的扩散概率模型推广到从具有不同参数的噪声中重构数据的情况,并允许通过明确控制声音质量和推断速度之间的权衡来使这种重构更加灵活。JETS(Jointly training FastSpeech2 and HiFi-GAN for End-to-end Text-to-Speech)[11]通过联合训练FastSpeech 2[7]和HiFi−GAN[12]以及对齐模块直接从文本生成语音波形,该模型简化了训练流程,既不需要预训练,也不需要微调,同时通过对齐学习框架实现了无须外部对齐工具的端到端语音合成。NaturalSpeech[13]使用了几个关键模块来增强从文本提取的先验分布和减少从语音提取的后验分布的复杂度,包括音素预训练、可微分化时长建模、双向先验/后验模块和带记忆机制的变分自编码器,通过变分自编码器将语音波形压缩为帧级表示,再从文本预测这些表示来重构语音波形。尽管以上工作在端到端语音合成方法上取得了成功,但仍存在诸如生成语音间歇性不自然,多说话人模型中相似性不足,以及强烈依赖音素转换等问题[1418]
与以上模型不同,VITS是一种结合变分推理、归一化流 3和对抗训练的高表现力语音合成模型,通过隐变量而非梅尔频谱将语音合成中的声学模型和声码器串联起来,在隐变量上进行随机建模,并利用随机时长预测器来提高合成语音的多样性,输入同样的文本能够合成出不同声调和韵律的语音。YourTTS[19]是基于VITS的零样本语音合成模型,它使用预训练的说话人编码器来实现零样本语音合成,并引入说话人一致性损失,即计算生成语音的说话人嵌入与真实语音嵌入之间的余弦相似度,来提升语音之间的相似性。VITS 2[20]以VITS模型为基础进行改进,将随机时长预测器模块引入对抗学习,并在归一化流中引入了Transformer模块,提高了训练和推理的效率以及合成语音的自然度。鉴于VITS模型在语音合成任务中的出色表现,本文将在VITS模型的基础上进行优化,引入多任务学习优化算法,以验证该优化方法在语音合成任务中的适用性,并将VITS与YourTTS作为基线模型进行对比实验。

1.2 多任务学习优化

在机器学习领域,大多数模型通常以独立的方式进行学习,即采用单任务学习的方式。单任务学习是指机器学习系统在处理特定任务时的学习过程,其专注于解决单一任务或目标。在单任务学习中,模型被设计和训练以执行特定的任务。然而,这种方法存在一个明显的问题,即对每个任务的子任务进行建模时,容易忽略任务之间的关联、冲突和约束等关系,导致多个任务的整体效果无法达到最优。相对而言,多任务学习描述的是一种同时学习多个任务数据的方法,其效果有可能比每个任务单独学习更为优越。本质上,多任务学习通过利用多个任务之间的共享信息来提高在所有任务上的泛化性,从而解决了单任务学习中的一些限制。与单任务学习相比,多任务学习具有一系列优势:多个任务共享一个模型,从而减少内存占用;一次前向计算即可得出多个任务的结果,提高推理速度;通过共享信息,关联任务能够相互补充,进一步提升彼此的性能表现。VITS模型在训练过程中具有多个损失函数,本质上属于多任务学习,其损失函数的权衡问题属于多任务学习优化领域,下面将对多任务学习优化的相关工作进行介绍。
多任务学习的其中一类优化方法聚焦于平衡损失函数,这一类方法的核心思想在于为每个任务确定适当的权重,其目标是将整体损失最小化,同时确保在每个任务上的优化结果较单独学习时更为出色。Kendall等[21]采用了不确定性加权算法动态调整不同任务的权重。不确定性加权算法首先基于一个假设,即每个任务的真值的后验分布可视为以预测值为均值的正态分布,其方差代表任务难度。该方法通过向权重引入一个正则化项来增加稳定性,以防止权重降至0。具体而言,对于难以优化的任务,该算法学习到的权重较小;对于相对简单的任务,算法学习到的权重较大,使得模型更专注于处理那些相对简单的任务。Sener等[22]提出了多目标优化的方法,将多任务学习看作是一个带约束的优化问题,求解它的过程即寻找带约束优化问题的帕累托最优,即一个任务变好是在其他任务变差的前提下实现。根据多重梯度下降算法[23],可以在共享参数的过程中优化多个任务的梯度,通过其KKT条件来寻找满足帕累托最优的驻点。Chen等[3]提出了梯度归一化自适应损失平衡优化方法,用以解决以下2个问题:不同任务损失函数的量级不同,导致在梯度反向传播中某些任务占据主导地位,从而使得模型过度专注于该任务而忽略其他任务;不同任务的收敛速度不一致。梯度归一化自适应损失平衡方法根据多任务损失函数权重的更新梯度,动态更新损失函数的权重,对多任务学习损失函数的权重进行有效权衡。相比上面提到的优化方法,基于梯度归一化的自适应损失权衡优化方法具有动态适应性,能够根据每个任务的梯度范数自动调整损失的权重。这种动态调整的机制可以更灵活地适应不同任务之间的梯度变化,使得模型在训练过程中更好地关注梯度较大的任务。在语音合成中,可能存在一些任务对模型贡献更大,因此通过自适应权衡能够更有效地分配训练资源,提高关键任务的学习效率。
本文在研究中引入梯度归一化自适应损失平衡优化方法[3],基于该方法来验证其在语音合成任务中的适用性。

2 基于梯度归一化的端到端语音合成损失权衡方法

本节基于Kim等[1]提出的VITS模型,设计一种基于梯度归一化的端到端语音合成损失权衡方法(GN-VITS)针对VITS模型的表现依赖于其训练过程中各个损失函数之间的平衡问题,引入Chen等[3]提出的梯度归一化自适应损失平衡优化方法,根据VITS模型中不同损失函数的量级与不同子任务的训练速度来对各损失函数之间的权重进行平衡,以验证该方法在语音合成任务中的适用性,在多任务学习优化方法的应用领域得到了创新。
首先介绍了基于梯度归一化的端到端语音合成损失权衡方法的总体结构;之后详细介绍了VITS模型,该模型自提出以来在语音合成任务中表现出色、应用广泛,因此选择VITS模型作为语音合成任务的基础模型;最后,描述多任务学习优化中的梯度归一化自适应损失平衡优化方法。

2.1 总体结构

未采取梯度归一化的VITS模型结构如图2所示,VITS模型中的子任务损失函数包括语音重构、KL散度、对抗训练、随机时长预测器以及特征图 45个部分。基于梯度归一化的端到端语音合成损失权衡方法的总体结构如图3所示。
图 2 未采取梯度归一化的VITS模型

Fig.2 VITS model without gradient normalization

图 3 采取梯度归一化后的GN−VITS模型

Fig.3 GN-VITS model with gradient normalization

图3可知,基于梯度归一化的端到端语音合成损失函数通过对各损失函数之间权重的平衡,实现对VITS模型中各损失函数的量级和不同子任务的训练速度的平衡。梯度归一化自适应权重调整策略的实现手段为权重平衡:在端到端语音合成中,各损失函数之间的权衡是一个关键问题。基于梯度归一化的方法提供了一种自适应的权衡机制,可以根据训练过程中的梯度情况来调整各损失函数的权重,使得模型能更加灵活地适应不同子任务和训练阶段的需求。
通过权重平衡的策略实现了量级平衡与子任务训练速度平衡的效果,具体如下。
1)量级平衡:梯度归一化的方法允许对各损失函数的量级进行平衡。在语音合成中,不同的损失函数通常具有不同的尺度和重要性。通过梯度归一化可以考虑到这些差异,确保每个损失函数对模型训练的影响在相同的量级上,避免某个损失函数主导整个训练过程。
2)子任务训练速度平衡:VITS模型通常包含多个子任务,而这些子任务的训练速度可能不同。梯度归一化允许根据不同子任务的训练速度来动态平衡它们的影响。这对于提高训练的效率和稳定性至关重要,避免某个子任务训练速度过慢而导致整体训练受阻。
下面两小节将对语音合成的基础模型VITS与梯度归一化自适应损失平衡优化方法进行介绍。

2.2 语音合成基础模型VITS

VITS是一种并行的端到端语音合成方法,它以独特的方式生成音频,相较传统的两阶段模型,其生成的音频听感更为自然。VITS模型的设计融合了Glow-TTS[24]和HiFi-GAN[12]的关键元素。在VITS模型中,HiFi-GAN充当解码器的角色。与传统的两阶段模型不同,VITS模型摒弃了使用梅尔频谱作为输入的传统方式,直接将Glow-TTS输出的潜在特征转换为语音波形。这一创新性的设计使得VITS实现了高保真度的端到端语音合成,为语音合成领域带来了更为先进的技术。Glow-TTS是一种基于归一化流[25]的语音合成模型,其独特之处在于采用了单调对齐搜索算法[24],用于获取输入文本和目标语音梅尔频谱之间的单调硬对齐 5。原始的Glow-TTS旨在实现从文本到梅尔频谱的转换,属于传统的两阶段模型之一。HiFi-GAN是一种波形合成器,通过对抗训练的方式将梅尔频谱解码为自然语音波形。通过整合2个先进的模型,VITS在语音合成方面展现了出色的性能,为实现更自然、高质量的语音生成提供了有效的解决方案。
VITS通过引入变分自编码器,将以上2个模块拼接在一起,从而实现了高效的端到端学习。在这个结构中,变分自编码器的隐变量被用来连接2个模块,它遵循语音线性频谱图编码的后验分布。此外,Glow-TTS模块生成了一个以输入文本为条件的先验分布。这2个分布在训练过程中通过KL散度进行正则化,以确保整个系统在学习中保持稳定性和一致性。值得注意的是,VITS中采用的归一化流具有可逆性,这不仅使系统更加灵活,还允许隐变量进行双向传递,这一特性使其在单一模型中能够同时实现语音合成和音色转换2种任务。
语音合成系统的目标不仅在于生成高质量的音频,还需能够应对一对多的挑战,即对于同一输入文本,系统能够以多种不同的方式进行发音,呈现出音高和持续时间等方面的多样变化。为了解决这一语音合成中的多样性问题,在VITS模型中引入了一个随机时长预测器模块。这一模块通过对隐变量进行不确定性建模,使得系统能够根据输入文本合成生成不同节奏和韵律的语音。
在训练过程中,VITS采用了对抗训练的方式,同时对模型的生成器和判别器网络进行训练。VITS模型的生成器和判别器分别通过以下损失函数进行优化:
$ {L_G} = {L_{{{{\mathrm{recon}}}}}} + {L_{{{kl}}}} + {L_{{{{\mathrm{adv}}}}}}(G) + {L_{{{{\mathrm{dur}}}}}} + {L_{{{fm}}}}(G) $
$ {L_D} = {L_{{{{\mathrm{adv}}}}}}(D) $
其中,重构损失$ {L}_{{{{\mathrm{recon}}}}} $被定义为生成语音波形的梅尔频谱与真实音频波形的梅尔频谱之间的$ L1 $范数,为实现这一步,需要进行可微分的短时傅里叶变换,以及将线性谱投影到梅尔频域的操作。KL散度损失$ {L}_{{{{\mathrm{kl}}}}} $定义为音频后验分布与文本先验分布之间的KL散度。单从变分自编码器的角度来看,以上2个模块的损失函数已经足够,然而在VITS模型中,为了使生成的语音更加自然,引入了对抗训练的损失函数$ {L}_{{\mathrm{adv}}}\left(G\right) $。此外,还有随机时长预测器模块的损失函数$ {L}_{{\mathrm{dur}}} $与模型的特征图损失函数$ {L}_{{\mathrm{fm}}}\left(G\right) $,有关损失函数$ {L}_{{\mathrm{dur}}} $$ {L}_{{\mathrm{fm}}}\left(G\right) $的详细介绍,请参考文献[1]。
得益于VITS模型训练过程中多个损失函数组合,其生成的语音相比经过两阶段生成模型得到的语音更加流畅,听感也更加自然。然而,VITS模型的表现依赖于其训练过程中各个损失函数之间的平衡。由图1可知,原文作者给出的预设权重并没有达到模型的效果最优,甚至相差较远[2]。因此,本文在VITS模型的基础上引入梯度归一化自适应损失平衡优化方法,研究语音合成中的多任务学习优化,下面将对损失平衡优化方法进行介绍。

2.3 基于梯度归一化的自适应损失平衡优化方法

梯度归一化是一种多任务学习优化方法,用以解决不同任务损失函数的量级不同,造成有些任务在梯度反向传播中占主导地位,模型过分学习该任务而忽略其他任务,以及不同任务的收敛速度不一致这2个问题。以简单的多任务学习模型共享底层参数 6为例,多任务学习共享底层参数框架如图4所示。对于这类模型,整体损失函数的计算一般采用分别计算每个任务的损失,并将这些损失值等权重相加的方式,以得到整体的损失函数,即:
图 4 多任务学习共享底层参数框架

Fig.4 Framework of shared bottom parameter in multi−task learning

$ L = \sum\nolimits_i {{L_i}} $
然而,不同任务的损失函数量级可能不一致。将各损失函数等权重相加的方法可能导致某个任务在整体学习过程中占主导地位。为了解决这一问题,可以为每个任务的损失函数分配一个固定的权重参数,以平衡各任务在梯度更新中的影响,即:
$ L = \sum\nolimits_i {{w_i} \times {L_i}} $
相对损失等权重相加的方式,配置固定权重的方法涉及对每个任务的损失函数进行加权,这种方式允许手动调整每个任务的重要程度。尽管这样的权重设置策略在一定程度上提供了人为干预的可能性,但它也存在一些潜在问题。不同任务的学习难度各异,且它们可能处于不同的学习阶段,例如,存在某任务A可能接近收敛,而任务B可能仍未充分训练等情况。这种固定权重的设置方式在某些阶段可能会限制任务的学习效果。因此,需要考虑在训练过程中根据不同任务的学习阶段、难易程度以及效果等动态调整任务权重的机制。
为了动态更新多任务损失函数的权重,本文在基于变分推断的端到端语音合成模型损失函数的基础上,引入梯度归一化的自适应损失平衡优化方法。根据多任务损失函数权重的更新梯度,对语音合成模型损失函数的权重进行动态更新。
首先,定义2种类型的损失函数:标签损失函数与梯度损失函数。前者对语音合成任务中各个子任务损失函数进行加权求和,即:
$ {L_{{{{\mathrm{label}}}}}} = \sum\nolimits_i {{w_i}(t) \times {L_i}} $
接下来,对梯度损失函数进行定义。为了实现对多任务损失函数权重的动态更新,最直观的方式是利用梯度信息。通过获取损失函数权重$ {w}_{i} $的更新梯度,可以利用梯度更新公式,实现对$ {w}_{i} $的动态更新,即:
$ {w_i}(t + 1) = {w_i}(t) + \lambda \times \beta (t) $
其中,$ \lambda $是全局神经网络学习率。
本文的目的是平衡梯度,故设$ \beta $为梯度关于$ {w}_{i} $的导数,为此定义梯度损失函数为,各个任务实际的梯度范数与理想的梯度范数差的绝对值之和,即:
$ {L_{{{{\mathrm{grad}}}}}}(t;{w_i}(t)) = \sum\nolimits_i {\left| {G_W^{(i)}(t) \,-\, {{\overline G }_W}(t) \times {{\left[ {{r_i}(t)} \right]}^\alpha }} \right|} $
$ G_W^{(i)}(t) = {\left\| {{\nabla _W}{w_i}(t){L_i}(t)} \right\|_2} $
$ {\overline G _W}(t) = {E_{{{{\mathrm{task}}}}}}\left[ {G_W^{(i)}(t)} \right] $
$ {\tilde L_i}(t) = {L_i}(t)/{L_i}(0) $
$ {r_i}(t) = {\tilde L_i}(t)/{E_{{{{\mathrm{task}}}}}}\left[ {{{\tilde L}_i}(t)} \right] $
其中:$ {G}_{W}^{\left(i\right)}\left(t\right) $为实际的梯度范数,定义为任务$ i $的权重$ {w}_{i}\left(t\right) $与损失函数$ {L}_{i}\left(t\right) $的乘积对神经网络参数$ W $求梯度的$ L2 $范数,$ {G}_{W}^{\left(i\right)}\left(t\right) $可以衡量某个任务的损失函数量级。$ {\overline{G}}_{W}\left(t\right) $是全局梯度标准化的值(即所有任务梯度标准化值的期望),通过对所有$ {G}_{W}^{\left(i\right)}\left(t\right) $求均值实现。$ {r}_{i}\left(t\right) $是任务的相对反向训练速度,$ {r}_{i}\left(t\right) $越大,表示子任务$ i $在所有任务中训练越慢。超参数$ \alpha $用于限制训练速度的平衡。$ {\tilde{L}}_{i}\left(t\right) $用于衡量子任务$ i $的反向训练速度,$ {\tilde{L}}_{i}\left(t\right) $越大,表示网络训练越慢。$ {L}_{i}\left(0\right) $$ {L}_{i}\left(t\right) $分别代表训练子任务$ i $的第0步与第$ t $步的损失函数值。$ {E}_{{\mathrm{task}}}\left[{\tilde{L}}_{i}\left(t\right)\right] $表示各个任务反向训练速度的期望。
直观来看,$ {\overline{G}}_{W}\left(t\right) $$ {G}_{W}^{\left(i\right)}\left(t\right) $用来平衡不同任务损失函数的量级,当某个任务损失函数值过大或者过小时,$ {G}_{W}^{\left(i\right)}\left(t\right) $$ {\overline{G}}_{W}\left(t\right) $会变大,使得损失函数的梯度变大,从而导致其权重$ {w}_{i}\left(t\right) $变小。$ {\left[{r}_{i}\left(t\right)\right]}^{\alpha } $用来平衡不同任务训练的速度,当任务训练过快时,$ {\left[{r}_{i}\left(t\right)\right]}^{\alpha } $减小,使得损失函数的梯度变大,从而导致其权重$ {w}_{i}\left(t\right) $变小。为了提升模型的训练效率,梯度损失函数仅对底层共享参数结构的输出部分进行计算。
计算得到梯度损失函数后,利用梯度损失对$ {w}_{i}\left(t\right) $进行求导,以得到上述梯度更新公式中所需的$ \beta \left(t\right) $。为了避免$ {w}_{i}\left(t\right) $降为0,对梯度损失求导时将$ {\overline{G}}_{W}\left(t\right)\times {\left[{r}_{i}\left(t\right)\right]}^{\alpha } $视为常数处理。在每个批处理步骤的最后,为了解耦梯度正则化过程中梯度损失对$ {w}_{i}\left(t\right) $求导的过程与全局训练神经网络学习率之间的关系,对$ {w}_{i}\left(t\right) $进行重新归一化操作。这一操作旨在保持$ {w}_{i}\left(t\right) $的合理范围,确保在训练过程中能够更稳健地进行权重的动态更新。

3 实验

为了验证基于梯度归一化的端到端语音合成模型损失函数的有效性,本节进行了一系列实验,通过客观与主观的评价指标来评估模型合成语音的准确度和听感自然度。

3.1 评价指标

选用字错误率(Word Error Rate,WER)作为模型客观性能的衡量标准,用于量化模型合成语音的准确度。WER是一种客观度较高的评价指标,通过比较生成语音与参考文本之间的差异来度量合成语音的准确性。语音合成的目标之一是产生与给定文本一致的语音输出,因此,WER提供了一个直观的方式来衡量合成系统在转化文本到语音时的误差程度。较低的WER值表示生成语音更接近目标文本,因此在语音合成任务中广泛用于评估语音合成系统的性能。同时,采用了主观平均意见分数(Mean Opinion Score,MOS)作为评价指标之一,评分者随机选择音频样本,对合成语音的自然度进行评分。评分范围为1~5的整数,最高得分为5。每个评分者只对每个音频样本进行一次评分,对所有音频剪辑进行归一化处理,以消除振幅差异对评分的潜在影响。本文中的所有质量评估均以这种方式进行。MOS是一种主观评价指标,通过实际听众对生成语音的感知进行评分。在语音合成中,MOS提供了更全面、综合和直观的评估,考虑到人的主观感受,它能够捕捉到一些客观度较低的方面,例如语音的自然度、流畅性和自然感。MOS是一种在真实应用场景中相对直接的度量,因为最终用户最关心的通常是合成语音的整体质量,而不仅仅是与文本匹配的程度。以上评价指标的选取参考了文献[1215]。

3.2 数据集

实验基于中文标准女声音库数据集展开。该数据集涵盖了单一说话者的10 000条短音频片段,每句平均包含16个字,总时长约为12 h。所有音频片段采用无压缩的PCM WAV格式,具有48 kHz的采样率和16 bit的位深。为确保实验的科学性和可靠性,采用随机抽样的方式将整个数据集分为两部分,其中包括训练集(9 900个样本)与验证集(100个样本)。

3.3 训练

在训练之前,对数据集的音频采样率进行了调整,将其降低至16 kHz。同时,滤波器大小、窗口大小和跳跃间隔分别被设置为1 024、1 024和256。在网络的训练过程中,采用了AdamW优化器[26],其中$ \beta_1 $被设定为0.8,$ \beta_2 $为0.99,权重衰减$ \lambda $为0.1。学习率在每轮中按照0.9991/8的速率进行衰减,其初始值为1×10−4。在4块32 GB NVIDIA V100 GPU上进行了训练,每块GPU的批处理大小设定为32。整个训练过程的步数为50 000步。

3.4 对比实验

为了验证提出方案的有效性,将基于梯度归一化的端到端语音合成模型损失函数应用到VITS与YourTTS模型中进行训练,并与性能先进的语音合成模型VITS和YourTTS进行对比。
表1所示,采用基于梯度归一化的端到端语音合成模型损失函数的模型GN-VITS与GN-YourTTS合成语音的字错误率分别为5.47%与6.48%,GN-VITS相比语音合成的基础模型VITS提升了1.64%,GN-YourTTS相比零样本语音合成模型YourTTS提升了2.48%,GN-VITS在模型准确度评估中胜过其他的基线模型。实验结果说明:1)基于梯度归一化的端到端语音合成模型损失函数对于合成语音的准确度有提升,在VITS与YourTTS模型中引入梯度归一化的自适应损失平衡优化方法对于降低合成语音的字错误率有帮助;2)YourTTS模型在训练过程中引入了说话人一致性损失,该损失函数的权重也须进行平衡。
表 1 模型字错误率比较

Table 1 Comparison of the model’ s word error rate

模型 字错误率
VITS[1] 7.11%
YourTTS[19] 8.96%
GN−VITS 5.47%
GN−YourTTS 6.48%
表2所示,GN-VITS与GN-YourTTS在合成语音的主观平均意见分数分别为4.51与4.58,GN-VITS相比基础模型VITS提升了0.13分,GN-YourTTS相比YourTTS提升了0.15分。这些结果说明:1)将梯度归一化的端到端语音合成模型损失函数应用到VITS模型的训练中能更好地平衡各个损失函数的权重,模型能够合成听感更加自然的语音;2)YourTTS模型中使用的预训练说话人编码器与说话人一致性损失对于提升合成语音的自然度有帮助。
表 2 在中文标准女声音库上评估的主观平均意见分数(95%置信区间)的比较

Table 2 Comparison of MOS with 95% confidence intervals on the Chinese standard female voice dataset

模型 主观意见分数(置信区间)
VITS[1] 4.38 (±0.06)
YourTTS[19] 4.43 (±0.06)
GN−VITS 4.51 (±0.08)
GN−YourTTS 4.58 (±0.08)
此外,图5-图7给出了GN-VITS与VITS在训练过程中子任务损失函数值的变化曲线,以及GN-VITS子任务损失函数权重的变化曲线。通过对比图5图7可知,GN-VITS在训练过程中通过对各损失函数之间权重的平衡,以实现对模型中各损失函数的量级和不同子任务的训练速度的平衡。GN-VITS模型在损失函数值的收敛速度方面要快于VITS模型,最终损失函数的收敛值也低于VITS模型,由此,验证了本文方法的有效性。
图 5 GN-VITS训练过程中子任务损失函数权重变化曲线

Fig.5 Curve of sub−task loss function weight variation during GN-VITS training

图 6 GN-VITS训练过程中子任务损失函数值变化曲线

Fig.6 Curve of sub−task loss function value variation during GN-VITS training

图 7 VITS训练过程中子任务损失函数值变化曲线

Fig.7 Curve of sub−task loss function value variation during VITS training

4 结束语

本文提出了一种基于梯度归一化的端到端语音合成模型损失函数,这一损失函数建立在基于变分推断的端到端语音合成模型之上,并引入了梯度归一化自适应损失平衡优化方法。该方法根据不同损失函数的量级以及不同子任务的训练速度,对VITS模型中各个损失函数之间的权重进行平衡。在公开的中文标准女声音库数据集上对该方法的性能进行了评估,并与语音合成领域的VITS和YourTTS2个先进模型进行了字错误率和主观人工评估的对比。实验结果表明,将基于梯度归一化的端到端语音合成模型损失函数应用到VITS模型中,合成语音的准确度与听感的自然度得到提升,模型的性能达到了先进水平。这一创新方法的成功应用为语音合成领域的进一步发展提供了新的思路和方法。期望这种多任务损失函数权衡方法能够在更广泛的语音合成任务中得到应用,为提升性能和简化训练流程提供有力支持。未来,将进一步探索更多的多任务学习优化方法,并对其进行相应的改进,以拓展其在语音合成任务中的应用。

1VITS模型生成器训练的损失函数包括重构损失、KL散度损失、随机时长预测器损失、对抗训练损失以及特征图损失。其中重构损失作为模型合成语音的关键一环,其权重大小对模型合成语音质量影响较大。

2隐变量指模型在训练过程中捕捉到的语音特征,如音调、语速、语音音素等,这些特征对于生成自然流畅的语音样本起到重要作用。

3归一化流是一种生成模型,用于建立概率分布,模型通过一个可逆的映射将输入数据从一个潜在的简单分布映射到目标分布。

4特征图是神经网络中的中间表示,由不同层次的卷积层生成,其损失函数采用均方误差进行计算。

5单调硬对齐是与序列到序列模型的概念,指的是在生成目标序列时,模型每一步对应的输入序列位置是单调递增或递减的。在语音合成任务中,单调硬对齐的目标是确保生成的语音与输入文本的发音顺序一致,这有助于产生自然流畅的语音输出。在每一个时间步,模型都专注于正确的输入内容,而不跳跃或重叠。

6在神经网络中,底层参数指的是网络的前几层,也就是提取输入数据特征的层。共享底层参数的目的是使得多个任务或模型能够共同学习一些通用的特征表示,从而提高模型的泛化性能。

1
KIM J, KONG J, SON J. Conditional variational autoencoder with adversarial learning for end-to-end text-to-speech[C]//International Conference on Machine Learning. PMLR, 2021:5530-5540.

2
PARK S, KIM B, OH T. Automatic tuning of loss trade-offs without hyper-parameter search in end-to-end zero-shot speech synthesis[EB]. arXiv preprint arXiv:2305. 16699,2023.

3
CHEN Z, BADRINARAYANAN V, LEE C Y, et al. Gradnorm: gradient normalization for adaptive loss balancing in deep multitask networks[C]//International Conference on Machine Learning. PMLR, 2018: 794-803.

4
OORD A, DIELEMAN S, ZEN H, et al. Wavenet:a generative model for raw audio[EB]. arXiv preprint arXiv:1609. 03499,2016.

5
PING W, PENG K, GIBIANSKY A, et al. Deep voice 3:2000-speaker neural text-to-speech[C]//Proc. ICLR, 2018:214-217.

6
SHEN J, PANG R, WEISS R J, et al. Natural TTS synthesis by conditioning wavenet on mel spectrogram predictions[C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018:4779-4783.

7
REN Y, HU C, TAN X, et al. FastSpeech 2: fast and high-quality end-to-end text to speech[C]//International Conference on Learning Representations, 2021.

8
REN Y, RUAN Y, TAN X, et al. Fastspeech: fast, robust and controllable text to speech[J]. Advances in Neural Information Processing Systems 32, 2019.

9
DONAHUE J, DIELEMAN S, BINKOWSKI M, et al. End-to-end adversarial text-to-speech[C]//International Conference on Learning Representations, 2021.

10
POPOV V, VOVK I, GOGORYAN V, et al. Grad-TTS: A diffusion probabilistic model for text-to-speech[C]//International Conference on Machine Learning. PMLR, 2021: 8599-8608.

11
LIM D, JUNG S, KIM E. JETS: jointly training FastSpeech2 and HiFi-GAN for end to end text to speech[EB]. arXiv preprint arXiv:2203. 16852,2022.

12
KONG J, KIM J, BAE J. HiFi-GAN: generative adversarial networks for efficient and high fidelity speech synthesis[J]. Advances in Neural Information Processing Systems 33, 2020, 17022- 17033.

13
TAN X, CHEN J, LIU H, et al. NaturalSpeech: End-to-end text-to-speech synthesis with human-level quality[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2024 (1):1-12.

14
ZHANG X, WANG J, CHENG N, et al. Voice conversion with denoising diffusion probabilistic GAN models[C]//International Conference on Advanced Data Mining and Applications. Cham: Springer Nature Switzerland, 2023:154-167.

15
WALCZYNA T, PIOTROWSKI Z. Overview of voice conversion methods based on deep learning[J]. Applied Sciences, 2023, 13 (5): 3100.

DOI

16
DENG Y, TANG H, ZHANG X, et al. Pmvc: data augmentation-based prosody modeling for expressive voice conversion[C]//Proceedings of the 31st ACM International Conference on Multimedia, 2023:184-192.

17
TANG H, ZHANG X, WANG J, et al. QI-TTS: questioning intonation control for emotional speech synthesis[C]//ICASSP 2023-2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2023:1-5.

18
HUANG W C, VIOLETA L P, LIU S, et al. The singing voice conversion challenge 2023[C]//2023 IEEE Automatic Speech Recognition and Understanding Workshop (ASRU). IEEE, 2023: 1-8.

19
CASANOVA E, WEBER J, SHULBY C D, et al. YourTTS:towards zero-shot multi-speaker TTS and zero-shot voice conversion for everyone[C]//International Conference on Machine Learning. PMLR, 2022:2709-2720.

20
KONG J, PARK J, KIM B, et al. VITS 2: improving quality and efficiency of single-stage text-to-speech with adversarial learning and architecture design[EB]. arXiv preprint arXiv:2307. 16430,2023.

21
KENDALL A, GAL Y, CIPOLLA R. Multi-task learning using uncertainty to weigh losses for scene geometry and semantics[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018:7482-7491.

22
Sener O, Koltun V. Multi-task learning as multi-objective optimization[C]//Proceedings of the 32nd International Conference on Neural Information Processing Systems. 2018:525-536.

23
DÉSIDÉRI J A. Multiple-gradient descent algorithm (MGDA) for multiobjective optimization[J]. Comptes Rendus Mathematique, 2012, 350 (5/6): 313- 318.

24
KIM J, KIM S, KONG J, et al. Glow-TTS: a generative flow for text-to-speech via monotonic alignment search[J]. Advances in Neural Information Processing Systems 33, 2020, 8067- 8077.

25
REZENDE D, MOHAMED S. Variational inference with normalizing flows[C]//International Conference on Machine Learning. PMLR, 2015:1530-1538.

26
LOSHCHILOV I, HUTTER F. Decoupled weight decay regularization[C]//International Conference on Learning Representations, 2019.

文章导航

/