1.本公开涉及有表达力的端到端语音合成中的变分嵌入容量的有效使用。
背景技术:2.神经网络是机器学习模型,其采用非线性单元的一层或多层来预测所接收到的输入的输出。例如,神经网络可以转换输入文本以输出语音。除了输出层之外,一些神经网络包括一个或多个隐藏层。每个隐藏层的输出被用作对于在网络中下一层——即,下一个隐藏层或输出层——的输入。网络的每一层根据相应参数集的当前值从所接收到的输入生成输出。
3.一些神经网络是递归神经网络。递归神经网络是一种接收输入序列并从输入序列生成输出序列的神经网络。特别地,递归神经网络可以在当前时间步长计算输出时使用来自先前时间步长的一些或所有网络的内部状态。递归神经网络的示例是长短期(lstm)神经网络,其包括一个或多个lstm存储块。每个lstm存储块能够包括一个或多个单元,每个单元包括输入门、忘记门和输出门,其允许该单元存储该单元的先前状态,例如,用于生成当前激活或要被提供给lstm神经网络的其他组件。
技术实现要素:4.本公开的一个方面提供一种用于估计嵌入容量的方法,该方法包括:在数据处理硬件上执行的确定性参考编码器处接收参考音频信号;以及由数据处理硬件确定与参考音频信号对应的参考嵌入。参考嵌入具有对应嵌入维数。该方法还包括:由数据处理硬件根据参考嵌入的对应嵌入维数测量第一重构损失;以及由数据处理硬件从变分后验获得变分嵌入。变分嵌入具有对应嵌入维数和指定容量。该方法还包括:由数据处理硬件根据变分嵌入的对应嵌入维数测量第二重构损失;以及由数据处理硬件通过相对于具有指定容量的变分嵌入的第二测量的重构损失比较参考嵌入的第一测量的重构损失来估计参考嵌入的容量。
5.本公开的实现方式可以包括以下可选特征中的一个或多个。在一些实现方式中,参考嵌入包括tanh非线性韵律嵌入。参考嵌入可以包括softmax非线性韵律嵌入。参考嵌入可以包括风格嵌入。在一些示例中,当第一实测重构损失和第二实测重构损失彼此匹配时,参考嵌入的估计容量大体上等于变分嵌入的容量。
6.在一些示例中,变分嵌入的指定容量基于变分后验的可调整变分界限。在这些示例中,可调整变分界限可以包括提供变分嵌入的上界限的可调整kl项。可选地,可调整变分界限可以包括提供变分嵌入的上界限的可调谐kl权重。增加可调整变分界限可以增加变分嵌入的指定容量,然而降低可调整变分界限可以降低变分嵌入的指定容量。
7.本公开的另一方面提供一种用于估计嵌入容量的系统。该系统包括:数据处理硬件;以及存储器硬件,该存储器硬件与数据处理硬件通信并存储指令,当在数据处理硬件上执行时,这些指令使数据处理硬件执行操作。这些操作包括:在确定性参考编码器处接收参考音频信号;以及确定与参考音频信号对应的参考嵌入。参考嵌入具有对应嵌入维数。这些
操作还包括:根据参考嵌入的对应嵌入维数测量第一重构损失;以及从变分后验获得变分嵌入。变分嵌入具有对应嵌入维数和指定容量。这些操作还包括:根据变分嵌入的对应嵌入维数测量第二重构损失;以及通过相对于具有指定容量的变分嵌入的第二测量的重构损失比较参考嵌入的第一测量的重构损失来估计参考嵌入的容量。
8.此方面可以包括以下可选特征中的一个或多个。在一些实现方式中,参考嵌入包括tanh非线性韵律嵌入。参考嵌入可以包括softmax非线性韵律嵌入。参考嵌入可以包括风格嵌入。在一些示例中,当第一测量的重构损失和第二测量的重构损失彼此匹配时,参考嵌入的估计容量大体上等于变分嵌入的容量。
9.在一些示例中,变分嵌入的指定容量基于变分后验的可调整变分界限。在这些示例中,可调整变分界限可以包括提供变分嵌入的上界限的可调整kl项。可选地,可调整变分界限可以包括提供变分嵌入的上界限的可调谐kl权重。增加可调整变分界限可以增加变分嵌入的指定容量,然而降低可调整变分界限可以降低变分嵌入的指定容量。
10.在附图和下面的描述中阐述了本公开的一种或多种实施方式的细节。从描述和附图以及从权利要求中,其他方面、特征和优点将是显而易见的。
附图说明
11.图1是示例文本到语音转换系统的示意图。
12.图2是示例cbhg神经网络的示意图。
13.图3是用于从输入文本合成语音的操作的示例布置。
14.图4是用于控制和转移韵律和风格的示例变分自编码器的示意图。
15.图5是用于转移韵律的示例确定性参考编码器的示意图。
16.图6是包括确定性参考编码器和用于转移风格的风格层的示例性基于启发式的模型的示意图。
17.图7a和7b是描绘用于确定性嵌入的重建损失与嵌入维度的示例图。
18.图8a至8c示出使用条件依赖性作为输入的真实和变分后验。
19.图9a和9b示出使用条件依赖性作为输入并允许指定在变分嵌入中存在的变分分数以实现剩余变分的采样的真实和变分后验。
20.图10是用于估计参考嵌入的容量的方法的操作的示例布置的流程图。
21.图11是用于以变分嵌入的特定容量作为目标的方法的操作的示例布置的流程图。
22.图12是对与变分嵌入相关联的分层分数进行采样以改变合成语音对于给定风格的发声方式的方法的流程图。
23.图13是可用于实现本文描述的系统和方法的示例计算设备的示意图。
24.各图中相同的参考符号指示相同的元件。
具体实施方式
25.逼真的人类语音的合成是未确定的问题,因为相同的文本输入具有无限数目的合理口语实现。虽然基于端到端神经网络的方法在进步以与人类对类似助理的短话语的表现匹配,但是神经网络模型有时被视为与包括各自在细化语言或音素表示上操作的多个处理步骤的更常规模型比不太可解释或可控。因此,本文的实现方式致力于产生能够在合成语
音方面对剩余变分性(variability)以概率方式建模和/或直接控制的端到端模型。
26.变分性的来源包括声调(intonation)、重音(stress)、节奏(rhythm)和风格(style)的韵律(prosodic)特性以及讲话者和通道特性。口语话语的韵律特性传达的语言、语义和情感含义超过存在于词汇表示(例如,口语话语的转录)中的那些。提供用于将这些特性从一种话语转移到另一话语的能力使得用户能够通过使用他们自己的话音(例如,“say it like this(像这样说)”)来控制合成语音如何发声,而不是不得不手动操纵复杂的声学或语言参数。本文的实现方式进一步旨在使得能够从话语的很可能的韵律实现上的分布中采样以便允许用户体验存在于自然语音中的多样性的方法。本文的实现方式可以包括。
27.参考图1,在一些实现方式中,示例文本至语音(tts)转换系统100包括子系统102,该子系统102被配置成接收输入文本104作为输入并且处理输入文本104以生成语音120作为输出。输入文本104包括特定自然语言中的字符序列。字符序列可以包括字母、数字、标点符号和/或其他特殊字符。输入文本104可以是变化长度的字符序列。文本至语音转换系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中能够实现下述系统、组件和技术。例如,系统100可以在图13的计算机系统1300上执行。
28.系统100可以包括用户界面105,该用户界面105允许用户输入文本104以供转换成合成语音和/或使用他们自己的话音来提供参考语音412(图4),使得与参考语音相关联的变分嵌入(variational embedding)能够控制从输入文本合成的语音的发声方式。用户界面105还可以允许用户选择与提供参考语音412的用户的话音不同的目标讲话者,使得合成语音像目标讲话者一样发声,但具有在由用户说出的参考语音中传达的韵律/风格。用户界面105可以进一步允许用户从话语的很可能的韵律实现上的分布中选择/采样,以便允许用户体验存在于自然语音中的多样性。
29.为了处理输入文本104,子系统102被配置成与包括序列至序列循环神经网络106(此后为“seq2seq网络106”)、后处理神经网络108和波形合成器110的端到端文本至语音模型150交互。
30.在子系统102接收到包括特定自然语言中的字符序列的输入文本104之后,子系统102将字符序列作为输入提供给seq2seq网络106。seq2seq网络106被配置成接收来自子系统102的字符序列并且处理该字符序列以生成特定自然语言中的字符序列的口头话语的声谱图。
31.特别地,seq2seq网络106使用以下各项来处理字符序列:(i)编码器神经网络112,其包括编码器pre
‑
net神经网络114和编码器cbhg神经网络116,以及(ii)基于注意力的解码器循环神经网络118。能够将字符序列中的每个字符表示为独热向量并嵌入到连续向量中。也就是说,子系统102能够将序列中的每个字符表示为独热向量,然后在将序列作为输入提供给seq2seq网络106之前生成字符的嵌入,即,数值的向量或其他有序集合。
32.编码器pre
‑
net神经网络114被配置成接收序列中的每个字符的相应嵌入并且处理每个字符的相应嵌入以生成字符的变换嵌入。例如,编码器pre
‑
net神经网络114能够对每个嵌入应用非线性变换集合以生成变换嵌入。在一些情况下,编码器pre
‑
net神经网络114包括具有漏失以在训练期间增加收敛速度并且改进系统的泛化能力的瓶颈神经网络层。
33.编码器cbhg神经网络116被配置成从编码器pre
‑
net神经网络206接收变换嵌入并且处理这些变换嵌入以生成字符序列的编码表示。编码器cbhg神经网络112包括cbhg神经网络200(图2),其在下面关于图2更详细地描述。如本文所描述的编码器cbhg神经网络112的使用可以减少过度拟合。另外,当与例如多层rnn编码器相比时,编码器cbhb神经网络112可以产生更少的发音错误。
34.基于注意力的解码器循环神经网络118(在本文中称为“解码器神经网络118”)被配置成接收解码器输入的序列。对于序列中的每个解码器输入,解码器神经网络118被配置成处理解码器输入和由编码器cbhg神经网络116生成的编码表示以生成字符序列的声谱图的多个帧。也就是说,不是在每个解码器步长生成(预测)一个帧,而是解码器神经网络118生成声谱图的r个帧,其中r是大于1的整数。在许多情况下,在r个帧的集合之间没有重叠。
35.特别地,在解码器步长t,至少在解码器步长t
‑
1生成的r个帧中的最后帧在解码器步长t+1被作为输入馈送到解码器神经网络118。在一些实现方式中,在解码器步长t
‑
1生成的所有r个帧在解码器步长t+1被作为输入馈送到解码器神经网络118。用于第一解码器步长的解码器输入可以是全零帧(即<go>帧)。对编码表示的注意力被应用于所有解码器步长,例如,使用常规注意力机制。解码器神经网络118可以使用具有线性激活的全连接神经网络层来在给定解码器步长同时地预测r个帧。例如,为了预测5个帧,每帧是80
‑
d(80维)向量,解码器神经网络118使用具有线性激活的全连接神经网络层来预测400
‑
d向量并且重塑400
‑
d向量以获得5个帧。
36.通过在每个时间步长生成r个帧,解码器神经网络118将解码器步长的总数除以r,从而减少模型大小、训练时间和推理时间。附加地,此技术大体上增加收敛速度,即,因为它导致帧与如由注意力机制学习的编码表示之间的更快(且更稳定)对准。这是因为邻近语音帧是相关的并且每个字符通常对应于多个帧。在时间步长发出多个帧允许解码器神经网络118利用此质量来快速地学习如何即被训练成在训练期间高效地注意到编码表示。
37.解码器神经网络118可以包括一个或多个门控循环单元神经网络层。为了加速收敛,解码器神经网络118可以包括一个或多个垂直残差连接。在一些实现方式中,声谱图是诸如梅尔标度声谱图的压缩声谱图。使用压缩声谱图代替例如原始声谱图可以减少冗余,从而减少在训练和推理期间需要的计算。
38.后处理神经网络108被配置成接收压缩声谱图并且处理压缩声谱图以生成波形合成器输入。为了处理压缩声谱图,后处理神经网络108包括cbhg神经网络200(图2)。特别地,cbhg神经网络200包括1
‑
d卷积子网络,后面是干路网络,并且后面是双向循环神经网络。cbhg神经网络200可以包括一个或多个残差连接。1
‑
d卷积子网络可以包括后面有以步幅1沿着时间层的最大池化的1
‑
d卷积滤波器组。在一些情况下,双向循环神经网络是门控循环单元神经网络。在下面参考图2更详细地描述cbhg神经网络200。
39.在一些实现方式中,联合地训练后处理神经网络108和序列至序列循环神经网络106。也就是说,在训练期间,系统100(或外部系统)使用相同的神经网络训练技术——例如基于梯度下降的训练技术——来在相同的训练数据集上训练后处理神经网络108和seq2seq网络106。更具体地,系统100(或外部系统)能够反向传播损失函数的梯度的估计以联合地调整后处理神经网络108和seq2seq网络106的所有网络参数的当前值。与具有需要被单独地训练或预训练的组件并且因此每个组件的误差能够复合的常规系统不同,具有被
联合地训练的后处理神经网络108和seq2seq网络106的系统是更鲁棒的(例如,它们具有更小的误差并且能够从打草稿开始训练)。这些优点使得能够在真实世界中找到的非常大量的丰富有表达力的又常常有噪声的数据上训练端到端文本至语音模型150。
40.波形合成器110被配置成接收波形合成器输入,并且处理波形合成器输入以生成特定自然语言中的输入字符序列的口头话语的波形。在一些实现方式中,波形合成器是griffin
‑
lim合成器。在一些其他实现方式中,波形合成器是声码器。在一些其他实现方式中,波形合成器是到波形逆变器的可训练声谱图。在波形合成器110生成波形之后,子系统102能够使用波形来生成语音120并且提供所生成的语音120以用于例如在用户设备上重放,或者将所生成的波形提供给另一系统以允许另一系统生成并重放语音。在一些示例中,wavenet神经声码器替换波形合成器110。与由波形合成器110产生的合成语音相比,wavenet神经声码器可以提供合成语音的不同音频保真度。
41.图2示出示例cbhg神经网络200。cbhg神经网络200可以是被包括在编码器cbhg神经网络116中的cbhg神经网络或包括在图1的后处理神经网络108中的cbhg神经网络。cbhg神经网络200包括1
‑
d卷积子网络208,后面是干路网络212并且后面是双向循环神经网络214。cbhg神经网络200可以包括一个或多个残差连接,例如残差连接210.
[0042]1‑
d卷积子网络208可以包括后面有以步幅1沿着时间层的最大池化206的1
‑
d卷积滤波器组204。1
‑
d卷积滤波器组204可以包括1
‑
d卷积滤波器的k个集合,其中第k集合包括c
k
个滤波器,每个滤波器的卷积宽度为k。1
‑
d卷积子网络208被配置成接收输入序列202,例如,由编码器pre
‑
net神经网络114(图1)生成的字符序列的变换嵌入。子网络208使用1
‑
d卷积滤波器组204来处理输入序列202以生成输入序列202的卷积输出。子网络208然后将卷积输出堆叠在一起并且使用以步幅1沿着时间层的最大池化206来处理堆叠后的卷积输出以生成最大池化输出。子网络208然后使用一个或多个固定宽度的1
‑
d卷积滤波器来处理最大池化输出以生成子网络208的子网络输出。
[0043]
在1
‑
d卷积子网络208生成子网络输出之后,残差连接210被配置成将子网络输出与原始输入序列202组合以生成卷积输出。干路网络212和双向循环神经网络214然后被配置成处理卷积输出以生成字符序列的编码表示。特别地,干路网络212被配置成处理卷积输出以生成字符序列的高级特征表示。在一些实现方式中,干路网络包括一个或多个全连神经网络层。
[0044]
双向循环神经网络214被配置成处理高级特征表示以生成字符序列的顺序特征表示。顺序特征表示表示在特定字符周围的字符序列的局部结构。顺序特征表示可以包括特征向量的序列。在一些实现方式中,双向循环神经网络是门控循环单元神经网络。
[0045]
在训练期间,能够使用批归一化方法来训练1
‑
d卷积子网络208的卷积滤波器中的一个或多个,该批归一化方法在s.ioffe和c.szegedy,“batch normalization:accelerating deep network training by reducing internal covariate shift(批归一化:通过减少内部协变量偏移来加速深度网络训练),”arxiv preprint arxiv:1502.03167,2015中详细地描述。在一些实现方式中,cbhg神经网络200中的一个或多个卷积滤波器是非因果卷积滤波器,即,在给定时间步长t能够在两个方向(例如,..、t
‑
1、t
‑
2和t+1、t+2、...等)上与周围输入进行卷积的卷积滤波器。相比之下,因果卷积滤波器能够仅与先前输入(...t
‑
1、t
‑
2等)进行卷积。在一些其他实现方式中,cbhg神经网络200中的所有
卷积滤波器都是非因果卷积滤波器。非因果卷积滤波器、批归一化、残差连接和以步幅1沿着时间层的最大池化的使用改进cbhg神经网络200在输入序列上的泛化能力,从而使得文本至语音转换系统能够生成高质量语音。
[0046]
图3是用于从字符序列生成语音的方法300的操作的示例布置。为了方便,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当地编程的文本至语音转换系统(例如,图1的文本至语音转换系统100)或文本至语音转换系统的子系统(例如,图1的子系统102)能够执行过程300。
[0047]
在操作302,方法300包括系统接收特定自然语言中的字符序列,并且在操作304,方法300包括系统将字符序列作为输入提供给序列至序列(seq2seq)循环神经网络106以获得特定自然语言中的字符序列的口头话语表达的声谱图作为输出。在一些实现方式中,声谱图是压缩声谱图,例如梅尔标度声谱图。特别地,seq2seq循环神经网络106使用包括编码器pre
‑
net神经网络114和编码器cbhg神经网络116的编码器神经网络112来处理字符序列以生成序列中的每个字符的相应编码表示。
[0048]
更具体地,能够将字符序列中的每个字符表示为独热向量并嵌入到连续向量中。编码器pre
‑
net神经网络114接收序列中的每个字符的相应嵌入并且处理序列中的每个字符的相应嵌入以生成字符的变换嵌入。例如,编码器pre
‑
net神经网络114可以对每个嵌入应用非线性变换集合以生成变换嵌入。编码器cbhg神经网络116然后从编码器pre
‑
net神经网络114接收变换嵌入并且处理变换嵌入以生成字符序列的编码表示。
[0049]
为了生成字符序列的口头话语表达的声谱图,seq2seq循环神经网络106使用基于注意力的解码器循环神经网络118来处理编码表示。特别地,基于注意力的解码器循环神经网络118接收解码器输入的序列。序列中的第一解码器输入是预先确定的初始帧。对于序列中的每个解码器输入,基于注意力的解码器循环神经网络118处理解码器输入和编码表示以生成声谱图的r个帧,其中r是大于1的整数。能够将所生成的r个帧中的一个或多个用作序列中的下一个解码器输入。换句话说,序列中的每个其他解码器输入是通过处理序列中在解码器输入之前的解码器输入所生成的r个帧中的一个或多个。
[0050]
基于注意力的解码器循环神经网络的输出因此包括形成谱图的帧的多个集合,其中每个集合包括r个帧。在许多情况下,在r个帧的集合之间没有重叠。通过一次生成r个帧,由基于注意力的解码器循环神经网络执行的解码器步长的总数减少到1/r,从而减少训练和推理时间。此技术也帮助通常增加基于注意力的解码器循环神经网络和系统的收敛速度和学习速率。
[0051]
在操作306,方法300包括使用特定自然语言中的字符序列的口头话语的声谱图来生成语音。在一些实现方式中,当声谱图是压缩声谱图时,系统能够从压缩声谱图生成波形并且使用该波形来生成语音。
[0052]
在操作308,方法300包括提供所生成的语音以进行重放。例如,方法300可以通过将所生成的语音通过网络从系统发送到用户设备(例如,音频扬声器)以进行重放来提供所生成的语音以进行重放。
[0053]
本文的实现致力于将许多扩展功能引入到基于tts转换系统100的潜在变量模型以获得允许模型更有效地利用潜在/变分嵌入的有表达力的语音合成(例如,韵律和风格的控制和转移)。潜在变量模型的使用使得能够在合成语音方面对剩余变分性以概率方式建
模和/或直接控制。变分性的来源包括声调、重音、节奏和风格的韵律特性以及讲话者和通道特性。口语话语的韵律特性传达的语言、语义和情感含义超过存在于词汇表示(例如,口语话语的转录)中的东西。提供用于将这些特性从一种话语转移到另一话语的能力使得用户能够通过使用他们自己的话音(例如,“say it like this”)来控制合成语音的发声方式,而不是不得不手动操纵复杂的声学或语言参数。在一些实现方式中,方法包括在变分参考编码器中改变重构损失项的容量目标以允许将参考语音的韵律以细粒度级别(例如,优先精度)转移到类似一段文本(即,具有与参考语音类似数目的音节的文本),或者以粗粒度级别(例如,优先泛化)转移到任意一段文本(即,任何长度和音节内容的文本)。
[0054]
图4示出用于将参考讲话者的风格和/或韵律转移到目标讲话者和/或控制从输入文本产生的合成语音480的风格和/或韵律的示例韵律风格转移模型400。转移模型400允许用户以各种不同但自然的方式合成具有特定讲话风格或韵律的自然语音。如将变得显而易见的,转移模型400使得能够通过使用参考话语(例如,“say it like this”)将韵律/风格特性从一种话语转移到另一话语。附加地,转移模型400允许从话语的很可能的韵律实现上的分布中对韵律特性进行随机采样,以便跨语音的较长部分提供自然多样性。
[0055]
转移模型400包括用于讲话风格的潜在表示(即,变分嵌入(z))的无监督学习的变分自编码器(vae)网络。与基于启发式的系统相比,通过使用vae来学习变分嵌入提供有利的解缠、缩放和组合性质以便简化风格控制。转移系统400包括参考编码器410和端到端tts模型450,该端到端tts模型450被配置成接收参考音频信号(x,x
ref
)412作为输入并且确定参考音频信号412的变分嵌入(z)420作为输出。tts模型450接收从参考编码器420输出的变分嵌入420以用于将输入文本104转换成具有由变分嵌入420指定的风格/韵律的合成语音480(例如,输出音频信号470(x,x
tgt
))。也就是说,变分嵌入420使得由tts模型450产生的合成语音480发声像输入到参考编码器412的参考音频信号412。
[0056]
tts模型450包括编码器452、注意力模块454、解码器456和合成器475。在一些实现方式中,tts模型450包括图1的tts模型100。例如,编码器452、注意力模块454和解码器456可以共同地对应于seq2seq循环神经网络106并且合成器475可以包括波形合成器110或wavenet神经声码器。然而,合成器475的选择对合成语音的所得的韵律和/或风格没有影响,并且在实践中,仅影响合成语音480的音频保真度。注意力模块454可以包括高斯混合模型(gmm)注意力以改进对长话语的泛化。因此,tts模型450的编码器452可以使用cbhg神经网络200(图2)来对输入文本104进行编码并且修改注意力模型454的gmm注意力以使用softplus函数代替exp来计算参数。
[0057]
输入文本104可以包括由于自韵律被解决的文本归一化前端和词典而不是模型根据字素学习发音的能力所产生的音素输入。解码器456可以包括解码器循环神经网络118(图1)并且使用等于二(2)的缩减因子,从而每时间步长产生两个声谱图帧(例如,输出音频信号470)。在一些示例中,使用概率等于0.1的zoneout的256单元长短期记忆(lstm)的两个层可以替换解码器456的gru单元。在其他实现方式中,tts模型450包括于2018年8月8日提交的美国申请no.16/058,640中公开的语音合成系统,该申请的内容通过引用整体地并入。
[0058]
变分嵌入420对应于目标讲话者的潜在状态,诸如影响和意图,其有助于目标讲话者的韵律、情感和/或讲话风格。如本文所使用的,变分嵌入420包括风格信息和韵律信息两者。在一些示例中,变分嵌入420包括具有通过变分嵌入420中的比特数表示的容量的数字
的向量。通常,增加变分嵌入420的容量增加合成语音480的精度,使得通过合成语音480表示的目标讲话者接近地类似参考音频信号412。因此,高容量变分嵌入420优先精度并且更好地适于讲话者间转移场景。然而,实现这些增加的一个缺点是由tts模型450转换的输入文本104(即,目标文本)必须接近地类似与参考音频信号412对应的参考文本,由此参考文本在转移系统400的训练期间被输入到tts模型450。如本文所使用的,当输入文本104包括与参考文本类似数目的元音时,输入文本104接近地类似参考文本。另一方面,降低变分嵌入420的容量增加变分嵌入420的通用性,使得变分嵌入420很好地适用于从不同的输入文本104产生合成语音480(即,文本间转移)。因此,低容量变分嵌入420优先通用性并且更好地适于文本不可知的风格转移。
[0059]
在一些实现方式中,参考编码器410也接收条件依赖性416以平衡精度与通用性之间的权衡,使得风格和韵律都是可控且可转移的。与仅能够从参考音频计算韵律/风格嵌入的基于启发式的编码器410对比,vae中的参考编码器410允许对由编码器410先前产生的变分嵌入420进行采样,使更多种类的韵律和风格信息能够表示输入到tts模型450以用于转换为合成语音480的输入文本104。因此,计算变分嵌入420不需要参考音频信号412,因为变分嵌入420能够被采样。当然,参考编码器410能够从参考音频信号412(例如,“say it like this”)计算变分嵌入420。如在下面更详细地描述的,能够从变分嵌入420中分解包含不同风格/韵律信息的分层分数,从而使得能够稍后对变分嵌入420的这些分层分数进行采样以便在语音间转移场景中控制参考相似性与样本变分性之间的权衡。条件依赖性416包括表征参考音频信号412的参考/目标文本y
t
和/或指示发出了参考音频信号412的讲话者的身份的参考/目标讲话者y
s
。参考/目标讲话者y
s
允许在讲话者间转移期间保存目标讲话者(或参考讲话者)的身份。例如,当参考讲话者具有与目标讲话者不同的音高范围时,合成语音450可能仍然发声像目标讲话者,因为当提供参考讲话者y
s
时,合适的变分嵌入420能够由参考编码器410采样。
[0060]
输入文本104和条件依赖性416的参考文本t
t
可以包括字符序列,然而参考音频信号412和输出音频信号470对应于可以包括梅尔频率声谱图的声学特征。参考编码器410包括神经网络。
[0061]
参考图5,在一些实现方式中,参考编码器410修改通过如下公开的确定性参考编码器500:“towards end
‑
to
‑
end prosody transfer for expressive speech synthesis with tacotron(用tacotron的用于表达性语音合成的端到端韵律转移)”,arxiv preprint arxiv:1803.09047,2018年3月24日,其内容通过引用整体地并入。在一些实现方式中,参考编码器500被配置成接收参考音频信号502并且从参考音频信号502生成/预测固定长度韵律嵌入p
e 550(也称为“韵律嵌入”)。韵律嵌入p
e 550可以独立于音素信息以及诸如重音、声调和定时的特异性讲话者特性来捕获参考音频信号502的特性。韵律嵌入p
e 550可以被用作用于执行其中为与参考讲话者完全不同的讲话者生成合成语音的韵律转移、但是显示出参考讲话者的韵律的输入。
[0062]
在所示出的示例中,可以将参考音频信号502表示为具有长度l
r
和维度d
r
的声谱图切片。与参考音频信号502相关联的声谱图切片可以指示梅尔翘曲谱。在所示出的示例中,参考编码器500包括六层卷积层网络504,其中每个层包括具有2x2步幅、same填充和relu激活的3x3滤波器。批归一化被应用于每一层,并且每个层中的滤波器的数目以如下下采样速
率的一半加倍:32、32、64、128、128。具有单个128宽度门控循环单元(gru
‑
rnn)层的循环神经网络510接收来自最后卷积层的输出506并且输出应用于全连接层520的128维输出512,全连接层520后面是输出所预测的韵律嵌入p
e 550的激活函数530。循环神经网络510可以包括其他类型的双向循环神经网络。
[0063]
参考编码器500中的激活函数530(例如,softmax或tanh)的选择可以约束包含在风格嵌入s
e 550中的信息并且通过控制所预测的韵律嵌入p
e 550的幅度来帮助促进学习。此外,输入到参考编码器500的参考音频信号502的长度l
r
和维度d
r
的选择影响由编码器500学习的韵律的不同方面。例如,音高轨道表示可能不允许以某种语言对显著进行建模,因为编码器不包含能量信息,然而梅尔频率倒谱系数(mfcc)表示可以至少在某种程度上取决于训练系数的数目而防止编码器400对声调进行建模。
[0064]
虽然能够在用于产生合成语音的许多不同的tts架构中使用从参考编码器500输出的韵律嵌入p
e 550,但是在推理时间产生韵律嵌入p
e 550需要种子信号(例如,参考音频信号502)。例如,种子信号可以是“say it like this”参考音频信号502。替换地,为了传达具有预定韵律/风格的合成语音,一些tts架构能够被适配成在推理时间使用手动风格嵌入选择而不是使用参考编码器500来从种子信号输出韵律嵌入p
e 550。
[0065]
图5的参考编码器500对应于用于预测固定长度韵律嵌入的基于启发式的模型(非变分的),并且包括六层卷积层网络,其中每个层包括具有2x2步幅、same填充和relu激活的3x3滤波器。批归一化被应用于每一层并且每个层中的滤波器的数目以如下下采样速率的一半加倍:32、32、64、128、128。具有单个128宽度门控循环单元(gru)层的循环神经网络接收来自最后卷积层的输出并且输出应用于全连接层的128维输出,全连接层后面是softmax、tanh激活函数。返回参考图4,参考编码器410对应于用具有线性激活以预测参考编码器410的参数(即,潜在变量的均值μ和标准偏差σ)的多层感知(mlp)414替换图5的确定性参考编码器500的tanh瓶颈层的“变分后验”(“variational posterior”)。当被使用时,条件依赖性416(参考文本y
t
和/或参考讲话者y
s
)也可以馈送到mlp 414中。变分性嵌入(z)420可以使用基于从参考编码器410的mlp 414输出的潜在变量的均值μ和标准偏差σ的重新参数化来导出。输入到tts模型450的文本编码器452的编码器状态包括变分性嵌入(z)420和输入文本104中的字符序列,使得从编码器452输出的编码序列453包括输入文本104和由注意力模块454消费的变分性嵌入420的总和。文本编码器452还可以接收标识特定讲话者以获得合成语音480如何应该发声的目标讲话者y
s
。在一些示例中,注意力模块454被配置成对于解码器456的每个输出步长将编码序列453转换为固定长度上下文向量455以产生输出音频信号470。
[0066]
在训练期间,参考音频信号412的转录与输入到tts模型450的编码器452的输入文本序列104的字符序列匹配,使得从解码器456输出的输出音频信号470将与参考音频信号412匹配。在推理期间,转移系统400可以通过包括到编码器452的与参考音频信号412的转录不匹配的不同的输入文本序列104来执行文本间转移。类似地,转移系统400可以通过为与发出参考音频信号的讲话者不同的合成语音指定讲话者来执行讲话者间转移。
[0067]
虽然图5示出用于计算最好地适于相同或类似文本韵律转移的固定长度韵律嵌入的确定性参考编码器500,即,用于转换的输入文本包括与参考音频信号的转录类似数目的音节。在此启发式方法中,韵律转移精度由韵律嵌入的维数和非线性(tanh对softmax)的选
择来控制。参考图6,另一基于启发式的模型600通过实现通过如下公开的风格标记(token)层610来修改确定性参考编码器500的架构:“style tokens:unsupervised style modeling,control and transfer in end
‑
to
‑
end speech synthsis(风格标记:端到端语音合成中的无监督风格建模、控制和转移)”,arxiv preprint arxiv:1803.09017,2018年3月23日,其内容通过引用整体地并入。这里,风格标记层610接收从确定性参考编码器500输出的韵律嵌入p
e 550并且使用韵律嵌入p
e 550作为给注意力模块612的查询向量,所述注意力模块612被配置成学习韵律嵌入p
e 550与一组随机初始化嵌入614即614a
‑
n中的每个标记614(也称为全局风格标记(gst)或标记嵌入)之间的相似性量度。标记嵌入(也称为“风格标记”)614的集合被跨所有训练序列共享。因此,注意力模块612输出组合权重616的集合,即表示每个风格标记614对编码韵律嵌入p
e 550的贡献的616a
‑
n。标记嵌入的加权和对应于被输入到tts模型450的文本编码器(例如,编码器452、112)以用于在每一时间步调节的风格嵌入s
e 650。
[0068]
在推理期间,tts模型450的文本编码器可以直接以特定标记/风格嵌入614(例如,标记b)为条件以在没有参考音频信号412的情况下允许实现风格控制和操纵。另一方面,当其转录与要被合成为合成语音480的输入文本104不匹配的目标讲话者的参考音频信号412被使用时,风格标记层610以通过从参考编码器500输出的韵律嵌入p
e 550表示的参考音频信号412为条件。韵律嵌入p
e 550、风格嵌入650和标记615影响相应嵌入的信息容量并且允许这些基于启发式的模型500、600以转移精度(输出如何接近地类似参考)与通用性(嵌入与任意文本如何好地工作)之间的特定权衡作为目标。
[0069]
在一些实现方式中,基于启发式的方法如图5的确定性参考编码器500以及实现确定性参考编码器500和风格标记层610的图6a和图6b的基于启发式的模型600的嵌入容量是通过测量确定性编码器500的测试时间重构损失来估计的。具体地,这些基于启发式的方法可以从由等式1(在下面表达)表示的教师强制重构损失开始来训练它们的序列至序列模型并且然后用由等式2(在下面表达)表示的确定性参考编码器500(被表示为g
e
(x))扩增它们的模型。等式1和2被表达如下:
[0070]
l(x,y
t
,y
s
)≡
‑
logp(x|y
t
,y
s
)=||f
θ
(y
t
,y
s
)
‑
x||1+k
ꢀꢀꢀ
(1)
[0071]
l
′
(x,y
t
,y
s
)≡
‑
logp(x|y
t
,y
s
,g
e
(x))=||f
θ
(y
t
,y
s
,g
e
(x))
‑
x||1+k
ꢀꢀꢀ
(2)
[0072]
其中x是音频声谱图412,y
t
是输入文本104,y
s
是目标讲话者(如果训练多讲话者模型),f
θ
(
·
)是将输入映射到声谱图预测的确定性函数,并且k是归一化常数。教师强制暗示f
θ
(
·
)在预测谱图x
t
时依赖于x<t。因为通常使用l1重构损失,所以可能性相当于具有由f
θ
(
·
)提供的固定对角协方差和均值的拉普拉斯随机向量(但是在实践中,f
θ
(
·
)的确定性输出用作输出)。转移是通过在合成期间将由参考编码器500计算的嵌入p
e 550与不同的文本或讲话者配对来完成的。
[0073]
参考图7a和图7b,曲线图700a、700b各自示出重构损失l1(y轴)随用于使用确定性参考编码器500进行基于启发式的(例如,非变分的)韵律转移的韵律嵌入p
e 550的嵌入维数(x轴)和非线性(tanh对softmax)的选择而变化。这里,softmax非线性韵律嵌入p
e 550的瓶颈比tanh非线性韵律嵌入更严重。类似地,曲线图700a、700b各自示出重构损失l1(y轴)随用于基于启发式的风格转移的风格嵌入的嵌入维数(x轴)而变化。与韵律嵌入相比风格嵌入(例如,风格标记)的更具限制性的瓶颈示出嵌入容量如何影响精度/通用性权衡。
[0074]
返回参考图7a和图7b,曲线图700a进一步描绘随用于具有不同kl权重β的变分嵌入420的嵌入维数而变化的重构损失,然而曲线图700b进一步描绘随用于具有不同容量极限c的变分嵌入420的嵌入维数而变化的重构损失,由此容量极限直接使用等式9来经由kl项控制。曲线图700a示出使用kl权重β=0.1的参考解码器410产生与来自基于启发式的韵律转移模型的tanh非线性韵律嵌入的损失匹配的变分嵌入420并且使用kl权重β=10产生与风格嵌入类似的变分嵌入420。此外,使用kl权重β=100产生具有与tts模型450的基线非常类似的损失的变分嵌入420,因为变分嵌入420的容量被有效地压缩为零。
[0075]
通过指定变分嵌入的目标容量,一个人能够经由比较/匹配重构损失测量结果与嵌入维数的关系来估计由确定性参考编码器500计算的确定性嵌入(韵律或风格嵌入)的容量。因此,用现在基于重构损失与嵌入维数的关系对具有可计算/可控容量的变分嵌入的比较来估计从确定性参考编码器输出的确定性嵌入(也称为参考嵌入)的能力,也能够通过调整由确定性参考编码器计算的参考嵌入的维度来控制这些确定性嵌入的容量。因此,使用这些技术来估计和控制容量,确定性嵌入现在能够提供精度/保真度与通用性/可转移性之间的权衡。
[0076]
由于kl项对应于嵌入容量的上界限(等式8),所以可以通过使用等式9约束kl项来以嵌入容量的特定极限作为目标。例如,并且继续参考图7a和图7b,曲线图700b示出当嵌入z达到某个维数时重构损失变平。这允许参考编码器410控制变分嵌入420中的目标代表性容量,只要参考编码器具有足够的结构容量(至少c)即可。在一些示例中,变分嵌入420包括固定长度128维嵌入以适应用于平衡精度与通用性之间的权衡的一系列目标容量。变分嵌入420中的位数可以表示容量。
[0077]
因此在转移系统400的训练期间,可以通过使用与kl项对应的上界限(例如,变分界限)来控制从参考编码器410输出的变分嵌入420的容量以控制变分嵌入420内的信息量。以这种方式,可以通过单独控制变分嵌入420的容量并且在不需要稍微更改参考编码器的架构以特定精度/通用性点作为目标来获得精度与通用性之间的所希望的权衡。
[0078]
返回参考图4的转移系统400,本文的实现方式进一步致力于使用代表性互信息的上界限(即,参考编码器410的变分界限)来估计和量化从变分参考编码器410(“变分后验”)输出的变分嵌入420的容量。参考编码器410可以用kl项扩增等式2中的确定性参考编码器500的重构损失以将变分参考编码器410q(z|x)与先验p(z)对齐,如由等式3(在下面表达)所表示的。等式4(在下面表达)表示参考编码器的整体损失相当于与x、y
t
、y
s
对应的代表性互信息的负下界限(负elbo)。等式3和4被表达如下:
[0079]
l
elbo
(x,y
t
,y
s
)≡e
z~q(z|x)
[
‑
logp(x|z,y
t
,y
s
)]+d
kl
(q(z|x)||p(z))
ꢀꢀꢀ
(3)
‑
logp(x|y
t
,y
s
)≤l
elbo
(x,y
t
,y
s
)
ꢀꢀꢀ
(4)
[0080]
在一些示例中,调整等式3中的kl项控制参考编码器410的变分嵌入420的容量,从而kl项提供数据x与潜在嵌入z~q(z|x)之间的互信息的上界限。kl项与变分嵌入420z的容量之间的关系被表达如下:
[0081]
r
avg
≡e
x~pd(x)
[d
kl
(q(z|x)||p(z))],r≡d
kl
(q(z|x)||p(z))
ꢀꢀꢀ
(5)
[0082]
i
q
(x;z)≡e
x~pd(x)
[d
kl
(q(z|x)||q(z))],q(z)≡e
x~pd(x)
q(z|x)
ꢀꢀꢀ
(6)
[0083]
r
avg
=i
q
(x;z)+d
kl
(q(z)||p(z))
ꢀꢀꢀ
(7)
[0084]
[0085]
其中p
d
(x)是数据分布,r(例如,“速率”)是等式3中的kl项,r
avg
是在数据分布上平均的kl项,i
q
(x;z)是对应于z的容量的代表性互信息,并且q(z)(例如,聚合后验)是在数据分布上边缘化的q(z|x)。等式8中的界限遵循等式7和kl散度的非负性,其中等式7示出界限上的松弛是聚合后验q(z)与先验p(z)之间的kl散度。在一些示例中,降低r(例如,kl项)提供用于经由先验从模型中对变分嵌入420,z进行更好地采样,因为解码器456在训练期间看到的z的样本将大体上与来自先验的样本相似。
[0086]
在一些实现方式中,变分嵌入420的特定容量是通过对kl项而不是重构项应用基于拉格朗日乘数的双优化器方法来作为目标的。将基于拉格朗日乘子的双优化器应用于kl项可以被表达如下:
[0087][0088]
其中θ表示模型参数,λ是拉格朗日乘数,并且c表示容量极限。通过经由softplus非线性传递无约束参数将λ约束为非负的,容量约束c对应于极限/阈值而不是目标。结果,优化防止了通过将q(z)移离q(z)来增加kl项的尝试。有利地,此双优化器方法比手动调整kl权重要少得多,然而同时,与直接惩罚与目标kl的l1重构损失偏差相比,导致更稳定的优化。
[0089]
返回参考图7a和图7b,曲线图700a进一步描绘随用于具有不同kl权重β的变分嵌入420的嵌入维数而变化的重构损失,然而曲线图700b进一步描绘随用于具有不同容量极限c的变分嵌入420的嵌入维数而变化的重构损失,由此容量极限直接使用等式9来经由kl项控制。曲线图700a示出使用kl权重β=0.1的参考解码器410产生与来自基于启发式的韵律转移模型的tanh非线性韵律嵌入的损失匹配的变分嵌入420并且使用kl权重β=10产生与风格嵌入类似的变分嵌入420。此外,使用kl权重β=100产生具有与tts模型450的基线非常类似的损失的变分嵌入420,因为变分嵌入420的容量被有效地压缩为零。
[0090]
通过指定变分嵌入的目标容量,一个人能够经由比较/匹配重构损失测量结果与嵌入维数的关系来估计由确定性参考编码器500计算的确定性嵌入(韵律或风格嵌入)的容量。因此,用现在基于重构损失与嵌入维数的关系对具有可计算/可控容量的变分嵌入的比较来估计从确定性参考编码器输出的确定性嵌入(也称为参考嵌入)的能力,也能够通过调整由确定性参考编码器计算的参考嵌入的维度来控制这些确定性嵌入的容量。因此,使用这些技术来估计和控制容量,确定性嵌入现在能够提供精度/保真度与通用性/可转移性之间的权衡。
[0091]
由于kl项对应于嵌入容量的上界限(等式8),所以可以通过使用等式9约束kl项来以嵌入容量的特定极限作为目标。例如,并且继续参考图7a和图7b,曲线图700b示出当嵌入z达到某个维数时重构损失变平。这允许参考编码器410控制变分嵌入420中的目标代表性容量,只要参考编码器具有足够的结构容量(至少c)即可。在一些示例中,变分嵌入420包括固定长度128维嵌入以适应用于平衡精度与通用性之间的权衡的一系列目标容量。变分嵌入420中的位数可以表示容量。
[0092]
因此在转移系统400的训练期间,可以通过使用与kl项对应的上界限(例如,变分界限)来控制从参考编码器410输出的变分嵌入420的容量以控制变分嵌入420内的信息量。以这种方式,可以通过单独控制变分嵌入420的容量并且在不需要稍微更改参考编码器的
架构以特定精度/通用性点作为目标来获得精度与通用性之间的所希望的权衡。
[0093]
返回参考图4,在一些实现方式中,条件依赖性416被输入到参考编码器410以平衡精度与泛化之间的权衡。条件依赖性416包括参考文本y
t
和/或参考讲话者y
s
。通过应用参考讲话者,可以在合成语音480中保存目标讲话者的身份,使得目标讲话者不模仿具有与目标讲话者不同的音高范围的参考讲话者。在训练期间,参考文本y
t
和与输入到编码器452的输入文本序列104相关联的目标文本是相同的。类似地,也可以在训练时将参考讲话者输入到编码器452。然而在推理期间,参考文本和目标文本可以是不同的并且/或者参考讲话者和目标讲话者可以是不同的。例如,可以将条件依赖性416和参考音频信号412输入到参考编码器410以产生具有韵律和风格信息两者的变分嵌入420。输入到tts模型450的编码器452的输入文本序列104可以包括与参考文本y
t
不同的目标文本y
t
以改变通过合成语音所说的东西。附加地或替换地,可以将不同的目标讲话者输入到tts模型450的文本编码器452以改变讲话的人。这里,变分嵌入420与目标文本和/或目标讲话者配对。结果,当没有参考音频信号但条件依赖性416与和变分嵌入420配对的目标讲话者和目标文本匹配时,此变分嵌入420能在稍后的时间被采样。
[0094]
参考图8a,与从变分嵌入z、目标文本y
t
和目标讲话者y
s
产生输出/目标音频信号x的tts模型的解码器456对应的条件生成模型。条件生成模型通过形式p(x|z,y
t
,y
s
)p(z)来表示。图8b示出遗漏存在于图8a中的条件依赖性的变分后验。图8c示出包括条件后验以与图8c的形式匹配的变分后验(例如,参考编码器410)。这里,图8c的匹配变分后验。讲话者信息被表示为学习到的逐讲话者嵌入向量,然而文本信息通过使文本编码器452的输出通过单向rnn被概括成向量。简单的对角线高斯可以被用于近似后验q(z|x;y
t
;y
s
)和先验的标准正态分布p(z)。这些分布是为了简单和高效而选取的,但是能使用诸如高斯混合和归一化流的更强大分布。
[0095]
通常,虽然变分嵌入420完全指定韵律和风格信息的变化,但是即使存在能够针对给定风格表达输入文本序列104的无限数目的方式,基于变分嵌入420的合成语音480也将总是发出与相同的输入文本序列104相同的声音。在一些实现方式中,将变分嵌入z 420分解成分层分数z
s
、z
p
允许一个人指定如何在分层分数z
s
、z
p
之间划分联合容量i
q
(x:[z
s
,z
p
])。在一些示例中,分层分数z
s
表示与变分嵌入z相关联的风格信息并且分层分数z
p
表示与变分嵌入z相关联的韵律信息。然而,在不脱离本公开的范围的情况下,所分解的分层分数可以用于表示其他类型的信息。
[0096]
等式8示出提供容量i
q
(x;z)的上界限的kl项。以下等式可以用于导出韵律分数z
p
的容量如下:
[0097]
i
q
(x;[z
s
,z
p
])≤r
avg
ꢀꢀꢀ
(10)
[0098]
i
q
(x;[z
s
,z
p
])=i
q
(x;z
p
)+i
q
(x;z
s
|z
p
)=i
q
(x;z
p
)
ꢀꢀꢀ
(11)
[0099][0100]
以下等式可以用于导出风格分数z
s
的容量如下:
[0101][0101][0102]
i
q
(x;z
s
)≤i
q
(z
p
;z
s
)
ꢀꢀꢀ
(15)
[0103][0104]
其中r
s
组成整个联合kl项的一部分。如果r
p
=r
‑
r
s
,则以下界限包括:
[0105][0106]
为了指定如何在分数(例如,潜在变量)之间分布联合容量,公式9被扩展成具有两个拉格朗日乘数和容量目标如下。
[0107][0108]
其中容量目标cs限制z
s
的信息容量并且cp限制z
p
超过z
s
有多少,其中z
p
的总容量被封端于cs+cp。在一些示例中,参考分层分数z
s
由参考编码器410从参考音频信号412推理并且用于对多个实现进行采样。不直观的是,cs越高,输出将与参考越类似,而cp越高,对于相同的参考分层分数z
s
来说从样本到样本的变化越大。
[0109]
参考图4、图9a和图9b,在一些实现方式中,当仅参考文本y
t
和参考讲话者y
s
的条件依赖性416被输入到参考编码器410而没有参考音频信号412时,z
s
是从训练模型采样的,并且z
p
被采样并连同条件依赖性一起发送到图9a的解码器以计算目标输出音频x。采样后的z
p
作为先验与条件依赖性416配对。这里,使用参考文本y
t
和参考讲话者y
s
的相同的条件依赖性416,图9b的变分参考解码器(变分后验)将输出这个z
p
并使用该z
p
来计算z
s
。因此,图9a的解码器现在可以使用所计算的z
s
、参考文本y
t
和参考讲话者y
s
作为输入来重新生成目标音频信号x。有利地,分层分数z
s
表示参考编码器中通过z
s
指定的变化,以使得能够对z
p
的不同容量进行采样以产生发声不同的给定风格的合成语音。因此,z
p
和z
p
对应于用于平衡精度与泛化之间的权衡的阈值。因此,通过使用条件依赖性416,可以对由参考编码器410学习到的在先变分嵌入420进行采样以在没有参考音频信号412的情况下合成语音和/或从具有指定风格的话语的很可能的韵律实现上的分布中对韵律特性进行采样以便跨语音的较长部分提供自然多样性。
[0110]
图10是用于估计参考嵌入的容量的方法1000的操作的示例布置的流程图。在操作1002,方法1000包括在确定性参考编码器500处接收参考音频信号412,并且在操作1004,方法1000包括确定与参考音频信号412对应的参考嵌入550、650。这里,参考嵌入550、650具有对应嵌入维数。
[0111]
在操作1006,方法1000包括根据参考嵌入550、650的对应嵌入维数测量重构损失。在操作1008,方法1000包括从变分后验获得变分嵌入420。变分嵌入420具有对应维数和指定容量,由此指定容量基于变分后验的可调整变分界限。
[0112]
在操作1010,方法1000包括根据变分嵌入的对应嵌入维数测量重构损失。在操作1012,方法1000包括通过相对于具有指定容量的变分嵌入420的测量重构损失比较参考嵌入550、650的测量重构损失来估计参考嵌入550、650的容量。
[0113]
图11是用于以变分嵌入420的特定容量作为目标的方法1100的操作的示例布置的流程图。在操作1102,方法1100包括调整参考编码器500的kl项以提供由参考编码器500计算的变分嵌入420的容量的上界限。调整kl项可以包括增加kl项以增加变分嵌入420的容量或者降低kl项以降低变分嵌入的容量。增加变分嵌入的容量增加合成语音480的精度,然而降低变分嵌入420的容量增加变分嵌入的通用性以便将不同的输入文本转换成合成语音480。在一些实现方式中,调整kl项包括对kl项应用拉格朗日乘数并且指定容量极限。调整
kl项可以包括调整kl项的权重。
[0114]
在操作1104,方法1100包括在参考编码器500处接收参考音频信号412。在操作1106处,方法1100包括由参考编码器500确定与参考音频信号412相关联的变分嵌入420。变分嵌入420具有通过由调整后的kl项提供的上界限所界定的容量。在操作1108,方法1100包括将与参考音频信号412相关联的变分嵌入420提供给文本至语音合成模型450。这里,文本至语音合成模型450被配置成基于与参考音频信号412相关联的变分嵌入420将输入文本104转换成合成语音480。位数表示变分嵌入420的容量。
[0115]
图12是用于对与变分嵌入420相关联的分层分数进行采样以改变合成语音对于给定风格的发声方式的方法1200的操作的示例布置的流程图。方法1200可以允许控制在变分嵌入420中表示的变分的指定分数以允许从文本至语音模型450中对变分的剩余部分进行采样。在操作1202,方法1200包括获得从参考编码器500输出的变分嵌入420,并且在操作1204,方法1200包括将变分嵌入分解成分层分数并且基于变分嵌入420、目标文本和目标讲话者生成合成语音480。
[0116]
在操作1206,方法1200包括将变分嵌入420与目标文本和目标讲话者配对。在操作1208,方法1200包括在没有参考音频信号的情况下在参考编码器500处接收目标文本和目标讲话者并且计算从与目标文本和目标讲话者配对的变分嵌入分解的第一分层分数,该第一分层分数提供给定风格。在操作1210,方法1200包括使用第一分层分数来对与变分嵌入420相关联的第二分层分数进行采样。这里,对第二分层分数进行采样改变合成语音480对于相同给定风格的发声方式。
[0117]
软件应用(即,软件资源)可以是指使计算设备执行任务的计算机软件。在一些示例中,可以将软件应用称为“应用”、“app”或“程序”。示例应用包括但不限于系统诊断应用、系统管理应用、系统维护应用、词处理应用、电子表格应用、消息传送应用、媒体流送应用、社交网络应用和游戏应用。
[0118]
非暂时性存储器可以是用于在临时或永久基础上存储程序(例如,指令的序列)或数据(例如,程序状态信息)以供由计算设备使用的物理设备。非暂时性存储器可以是易失性和/或非易失性可寻址半导体存储器。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电子可擦除可编程只读存储器(eeprom)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器(pcm)以及磁盘或磁带。
[0119]
图13是可以用于实现本文档中描述的系统和方法的示例计算设备1300的示意图。计算设备1300旨在表示各种形式的数字计算机,诸如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里示出的组件、它们的连接和关系以及它们的功能仅意在为示例性的,而不意在限制本文档中描述和/或要求保护的发明的实现。
[0120]
计算设备1300包括处理器1310、存储器1320、存储设备1330、连接到存储器1320和高速扩展端口1350的高速接口/控制器1340、以及连接到低速总线1370和存储设备1330的低速接口/控制器1360。组件1310、1320、1330、1340、1350和1360中的每一个使用各种总线来互连,并且可以被安装在公共主板上或者酌情以其他方式安装。处理器1310能够处理用
于在计算设备1300内执行的指令,包括存储在存储器1320中或在存储设备1330上以在外部输入/输出设备——诸如耦合到高速接口1340的显示器1380——上显示图形用户界面(gui)的图形信息的指令。在其他实现中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。另外,可以连接多个计算设备1300,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
[0121]
存储器1320在计算设备1300内非暂时性地存储信息。存储器1320可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器1320可以是用于在临时或永久基础上存储程序(例如,指令的序列)或数据(例如,程序状态信息)以供由计算设备1300使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电子可擦除可编程只读存储器(eeprom)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器(pcm)以及磁盘或磁带。
[0122]
存储设备1330能够为计算设备1300提供大容量存储。在一些实现方式中,存储设备1330是计算机可读介质。在各种不同的实现方式中,存储设备1330可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备、或设备的阵列,包括在存储区域网络或其他配置中的设备。在附加实现方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,当被执行时,指令执行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如存储器1320、存储设备1330或处理器1310上的存储器。
[0123]
高速控制器1340管理计算设备1300的带宽密集操作,然而低速控制器1360管理较低带宽密集操作。职责的这种分配仅是示例性的。在一些实现中,高速控制器1340耦合到存储器1320、显示器1380(例如,通过图形处理器或加速器),并且耦合到高速扩展端口1350,其可以接受各种扩展卡(未示出)。在一些实现中,低速控制器1360耦合到存储设备1330和低速扩展端口1390。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口1390可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或联网设备,诸如交换机或路由器。
[0124]
计算设备1300可以被以多种不同的形式实现,如附图所示。例如,它可以作为标准服务器1300a或在一组此类服务器1300a中多次、作为膝上型计算机1300b、或作为机架服务器系统1300c的一部分被实现。
[0125]
本文描述的系统和技术的各种实现方式能够用数字电子和/或光电路系统、集成电路系统、专门地设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组加以实现。这些各种实现方式能够包括在一个或多个计算机程序中的实现方式,这些计算机程序在包括至少一个可编程处理器的可编程系统上可执行和/或可解释,所述可编程处理器可以是专用或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备传送数据和指令。
[0126]
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够用高级过程和/或面向对象编程语言和/或用汇编/机器语言加以实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供
机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(pld),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
[0127]
本说明书中描述的过程和逻辑流程能够通过一个或多个可编程处理器——也称为数据处理硬件——执行一个或多个计算机程序以通过对输入数据进行操作并生成输出执行功能而被执行。过程和逻辑流程也能够由专用逻辑电路系统例如fpga(现场可编程门阵列)或asic(专用集成电路)执行。通过示例,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器这两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机也将包括或在操作上耦合以从用于存储数据的一个或多个大容量存储设备——例如,磁盘、磁光盘或光盘——接收数据或者将数据转移到该一个或多个大容量存储设备,或者两者。然而,计算机不需要具有此类设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd rom和dvd
‑
rom盘。处理器和存储器能够由专用逻辑电路系统补充,或者被并入在专用逻辑电路系统中。
[0128]
为了提供与用户的交互,能够在计算机上实现本公开的一个或多个方面,所述计算机具有显示设备,例如,crt(阴极射线管)、lcd(液晶显示器)监视器或用于向用户显示信息的触摸屏以及可选地用户能够通过其向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也能够使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的客户端设备上的web浏览器发送web页面。
[0129]
已经描述了许多实现方式。然而,应理解,可以在不脱离本公开的精神和范围的情况下做出各种修改。因此,其他实现在以下权利要求的范围内。