背景技术:
文本到语音(tts)合成旨在基于文本输入来生成相应的语音波形。tts合成广泛应用于例如故事中的角色扮演、语音到语音翻译、对特定用户的语音定制等。神经tts系统被越来越多地用于实施tts合成,并且正在成为人工智能(ai)领域近些年的研究热点。神经tts系统可以基于文本输入来预测声学特征,并进而基于所预测的声学特征来生成语音波形。与需要良好设计的前端语言特征的传统tts技术不同,神经tts系统是采用端到端结构来建立模型的,并且可以直接基于文本-语音数据对来进行训练。神经tts系统可以联合地优化语音的发音、韵律等,这将导致比传统tts技术更自然的合成语音。
技术实现要素:
提供本发明内容以便介绍一组构思,这组构思将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于通过多说话者神经tts合成来生成语音的方法和装置。可以接收文本输入。可以通过至少一个说话者模型,提供目标说话者的说话者潜在空间信息。可以通过声学特征预测器,基于所述文本输入和所述说话者潜在空间信息来预测至少一个声学特征。可以通过神经声码器,基于所述至少一个声学特征和所述说话者潜在空间信息来生成与所述文本输入相对应的语音波形。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1示出了示例性传统神经tts系统。
图2示出了根据实施例的多说话者神经tts系统的示例性架构。
图3示出了根据实施例的说话者模型的示例性实施方式。
图4示出了根据实施例的说话者编码器的示例性实施方式。
图5示出了根据实施例的多说话者神经tts系统的示例性实施方式。
图6示出了根据实施例的多说话者神经tts系统的示例性实施方式。
图7示出了根据实施例的声学特征预测器的示例性实施方式。
图8示出了根据实施例的神经声码器的示例性实施方式。
图9示出了根据实施例的用于训练多说话者神经tts系统的示例性过程。
图10示出了根据实施例的用于更新多说话者神经tts系统的示例性过程。
图11示出了根据实施例的用于更新多说话者神经tts系统的示例性过程。
图12示出了根据实施例的用于生成语音波形的示例性处理流程。
图13示出了根据实施例的多说话者神经tts系统的示例性架构。
图14示出了根据实施例的用于通过多说话者神经tts合成来生成语音的示例性方法的流程图。
图15示出了根据实施例的用于通过多说话者神经tts合成来生成语音的示例性装置。
图16示出了根据实施例的用于通过多说话者神经tts合成来生成语音的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
尽管神经tts系统可以生成具有高保真度的自然语音,但由于其端到端模型性质,它需要大量的文本-语音训练数据对。通常,大约10个小时以上的语音的训练语料库仍然不足以训练良好的端到端神经tts系统。在本文中,“语料库”可以指语音集合,其中每个语音附有相应的文本,因此语料库可以提供多个文本-语音数据对。神经tts系统面临的挑战是其泛化能力。在合成域外文本时经常发生自然度的恶化,特别是对于具有相当复杂上下文的长文本。在本文中,“域外”文本是指训练语料库中不涉及或者训练语料库中不涉及其相关文本输入的文本输入。来自神经tts系统中的生成模型架构的限制可能导致各种域外错误,例如错误的发音、奇怪的韵律,重复或跳过词语/音素等。尽管添加更多的训练数据是一种强力解决方案,但是通过使用始终提供有限的文本-语音数据对的单个说话者语料库不能满足如此繁重的数据要求。此外,为了构建需要用于目标说话者的足够的语音数据的用于语音定制的神经tts系统,还会提升非常高的成本阻碍。
为了减轻神经tts系统对数据大小的依赖性,可以通过将多个说话者的语料库组合成多说话者语料库集来增强训练数据。多说话者语料库集可以用于训练多说话者神经tts系统。多说话者神经tts系统可以生成比单说话者tts系统更好的语音,并且可以用于使用有限大小的语料库来创建定制语音。然而,由于这种多说话者神经tts系统的传统模型架构的局限性,没有很好地对多说话者语料库集中的丰富内容和说话者信息进行建模,并且所生成的语音仍然具有不自然和模糊的问题。此外,对于仅具有小语料库的目标说话者,说话者相似度也低。这种系统的整体性能仍远未达到实际应用要求。
本公开的实施例提出了用于构建具有良好设计的多说话者语料库集的多说话者神经tts系统的新方法。在一些方面,可以考虑到内容覆盖、说话者多样性、风格多样性等来准备高质量多说话者语料库集。例如,语料库集可以在各种知识域中具有宽泛的内容覆盖,因此多说话者神经tts系统可以利用来自不同域中的不同说话者的内容,并且在泛化方面表现更好。例如,语料库集中的说话者可以在年龄、性别、口音等方面具有均衡分布,这使得更易于为仅具有小语料库的目标说话者创建语音。这可以有助于通过多说话者神经tts系统来创建高保真定制语音。如上所述的语料库集将有助于多说话者神经tts系统为域外文本输入,尤其为对于具有复杂上下文的长语句生成接近人的语音,从而丰富优质语音。
在一些方面,本公开的实施例提出了用于多说话者神经tts系统的新模型架构,以便更好地利用多说话者语料库集并提高语音泛化能力。可以充分利用语料库集中的说话者的潜在空间信息来构建多说话者神经tts系统。多说话者神经tts系统可以进一步被更新,例如通过语料库集中的训练数据对的子集来重新训练,利用目标说话者的语料库来适应于目标说话者等。例如,在通过语料库集训练了多说话者神经tts系统之后,可以通过语料库集中的至少一个说话者的语料库进一步重新训练或改进多说话者神经tts系统。例如,当要为目标说话者生成语音时,例如模拟目标说话者的声音说话,多说话者神经tts系统可以经由通过目标说话者的语料库进行更新或重新训练而适应于目标说话者。因此,多说话者神经tts系统可以生成具有高度说话者相似性的高质量语音。
图1示出了示例性传统神经tts系统100。神经tts系统100可以被配置用于接收文本输入102并生成与文本输入102相对应的语音波形106。文本输入102可以是词语、短语、语句等。应当理解,尽管图1中示出了文本输入102被提供给神经tts系统100,但文本输入102也可以首先通过各种现有技术,例如字母到声音(lts)等,被拆分成元素序列,例如音素序列、字素序列、字符序列等,然后,该序列可以作为输入被提供给神经tts系统100。在下文中,“文本输入”也可以被广义地解释为从文本输入获得的元素序列,例如音素序列、字素序列、字符序列等。
神经tts系统100可以包括声学特征预测器110。声学特征预测器110可以依据文本输入102来预测声学特征104。声学特征104可以包括各种传统的tts声学特征,例如梅尔谱(mel-spectrum)、线性谱对(linearspectrumpairs,lsp)等。声学特征预测器110可以基于各种模型架构,例如序列到序列模型架构等。图1示出了示例性序列到序列声学特征预测器110,其可以包括编码器112、注意力单元114和解码器116。
编码器112可以将文本输入102中包含的信息转换到更稳健且更适合于学习与声学特征对准的空间中,例如将文本输入102中的信息转换为该空间中的文本特征。编码器112可以基于各种网络结构,例如包括多个卷积神经网络(cnn)层和多个循环神经网络(rnn)层的组合的网络结构,包括1-d卷积滤波器、高速网络和双向rnn的组合的网络结构等。
注意力单元114可以实现注意力机制,其充当连接编码器112和解码器116的桥梁。例如,注意力机制可以便于在编码器112输出的文本特征与声学特征之间进行对准。注意力单元114可以实现各种类型的注意力机制,例如软注意力、硬注意力、位置敏感注意力、高斯混合模型(gmm)注意力等。
解码器116可以在注意力单元114中的注意力机制的影响下将编码器112输出的文本特征映射到声学特征104。解码器116可以基于各种网络结构,例如包括前向反馈层、长短期记忆(lstm)层和cnn层的组合的网络结构等。
神经tts系统100可以包括神经声码器120。神经声码器120可以基于由声学特征预测器110输出的所预测的声学特征104来生成语音波形106。神经声码器120可以基于各种网络结构,例如基于神经生成式模型的网络结构等。
图2示出了根据实施例的多说话者神经tts系统200的示例性架构。应当理解,图2中所示的架构仅是为了解释本公开的一些构思或方面的图,并且多说话者神经tts系统200实际上可以具有各种实现方法。多说话者神经tts系统200可以为用于训练多说话者神经tts系统200的多说话者语料库集中涉及的各种说话者生成语音,并且还可以为新说话者生成语音。在生成语音期间,多说话者神经tts系统200可以考虑说话者潜在空间中的判别信息,例如说话者潜在空间信息。在为目标说话者生成语音期间,说话者潜在空间信息可用于控制生成具有目标说话者的特性的语音。
如图2所示,多说话者神经tts系统200可以被配置用于接收文本输入202,并且生成具有目标说话者的声音的与文本输入102相对应的语音波形206。多说话者神经tts系统200可以包括声学特征预测器210、神经声码器220和说话者模型230。
说话者模型230可以提供目标说话者的说话者潜在空间信息232。说话者潜在空间信息232可以是说话者潜在空间中的说话者特性的表示,例如目标说话者的说话者嵌入向量。说话者潜在空间信息232可以用作声学特征预测器210和神经声码器220的附加信息,例如条件。因此,可以在声学特征预测器210和神经声码器220的处理期间考虑说话者潜在空间信息232。应当理解,尽管在本公开的一些部分中记载了由说话者模型提供说话者嵌入向量,但是说话者嵌入向量仅仅是由说话者模型提供的说话者潜在空间信息的示例性实例,并且结合说话者嵌入向量讨论的那些操作或过程也可以以类似的方式应用于说话者潜在空间信息的任何其他实例。
声学特征预测器210的基本功能和结构可以与图1中的声学特征预测器110的基本功能和结构类似,不同之处在于它还考虑了说话者潜在空间信息232。换言之,声学特征预测器210可以基于文本输入202和说话者潜在空间信息232来预测声学特征204。声学特征预测器210可以包括编码器212、注意力单元214和解码器216。潜在空间信息232可以与来自编码器212的输出组合,然后传递给注意力单元214。注意力单元214中的注意力机制可以利用潜在空间信息232和来自编码器212的输出的组合以用于影响由解码器216进行的处理。因此,解码器216输出的声学特征可以与目标说话者相关联。
神经声码器220的基本功能和结构与图1中的神经声码器120的基本功能和结构类似,不同之处在于它还考虑了说话者潜在空间信息232。尽管所预测的声学特征204可能已经反映了说话者特性,但是如果神经声码器220进行的处理可以进一步考虑说话者特性将是有用的,这是因为神经声码器220是通过多说话者语料库集训练的并且实际上是说话者自适应神经声码器。神经声码器220可以基于声学特征204和说话者潜在空间信息232来生成语音波形206。在一种实施方式中,神经声码器220可以逐样本地生成语音波形206,其中,样本的集合形成语音波形206。
通过利用说话者潜在空间信息232作为声学特征预测器210和神经声码器220的条件,多说话者神经tts系统200可以生成听起来非常类似于目标说话者的高度自然的输出语音。
图3示出了根据实施例的说话者模型300的示例性实施方式。说话者模型300可以对应于图2中的说话者模型230。说话者模型300可以以各种方式实现。
在一种实施方式中,说话者模型300可以通过说话者嵌入选择器310来实现。说话者嵌入选择器310可以获得目标说话者的身份信息302,其可以是能够从其他说话者中识别出目标说话者的任何类型的信息,例如目标说话者的随机或指定号码、目标说话者的姓名、目标说话者的描述信息等,并且身份信息在下文中简要地表示为“目标说话者id”。说话者嵌入选择器310可以尝试从说话者嵌入向量数据库312中检索与目标说话者id302相对应的说话者嵌入向量。说话者嵌入向量数据库312可以包括分别与多个说话者相对应的多个说话者嵌入向量。说话者嵌入向量数据库312可以通过在训练多说话者神经tts系统期间收集多说话者语料库集中的那些说话者的说话者嵌入向量,或者在应用多说话者神经tts系统期间收集先前目标说话者的说话者嵌入向量来建立。
在一种实施方式中,说话者模型300可以通过说话者编码器320来实现。说话者编码器320可以基于目标说话者的语料库304来生成与目标说话者相对应的说话者嵌入向量。例如,可以获得目标说话者的语料库304,其包括目标说话者的多个语音波形。可以通过各种传统技术从语料库304中的语音波形中提取声学特征,并将其提供给说话者编码器320。说话者编码器320可以基于目标说话者的声学特征来生成与目标说话者相对应的说话者嵌入向量。说话者编码器320可以通过各种技术实现。例如,说话者编码器可以是用于基于声学特征来生成嵌入向量的神经网络。
图4示出了根据实施例的说话者编码器400的示例性实施方式。说话者编码器400可以对应于图3中的说话者编码器320。如图4所示,说话者编码器400可以基于神经网络,该神经网络用于基于声学特征402来生成说话者嵌入向量404。说话者编码器400可以顺序地包括多个卷积层410、平均池化420、多个全连接(fc)层430和仿射映射440。说话者嵌入向量404可以通过映射输出的l2归一化形成。说话者编码器400可以通过多个说话者的语料库集来训练,并且被设计用于与文本无关的说话者识别。因此,说话者编码器400可以与内容无关地提供对说话者嵌入向量的更好估计。
图5示出了根据实施例的多说话者神经tts系统的示例性实施方式500。实施方式500示出了图2中的多说话者神经tts系统200的示例性结构,其中,图2中的说话者模型230被实现为单个说话者模型510。说话者模型510可以提供目标说话者的说话者嵌入向量512。可以将说话者嵌入向量512分别提供给声学特征预测器520和神经声码器530。声学特征预测器520可以接收文本输入502并基于文本输入502和说话者嵌入向量512来预测声学特征504。神经声码器530可以基于声学特征504和说话者嵌入向量512来生成与文本输入502相对应的语音波形506。
图6示出了根据实施例的多说话者神经tts系统的示例性实施方式600。实施方式600示出了图2中的多说话者神经tts系统200的示例性结构,其中,图2中的说话者模型230被实现为两个不同的说话者模型610和630。说话者模型610和说话者模型630被建立用于将目标说话者的各个说话者嵌入向量分别提供给声学特征预测器620和神经声码器640。
说话者模型610可以将目标说话者的说话者嵌入向量612提供给声学特征预测器620。声学特征预测器620可以接收文本输入602并基于文本输入602和说话者嵌入向量612来预测声学特征604。
说话者模型630可以将目标说话者的说话者嵌入向量632提供给神经声码器640。神经声码器640可以基于声学特征604和说话者嵌入向量632来生成与文本输入602相对应的语音波形606。
图7示出了根据实施例的声学特征预测器700的示例性实施方式。声学特征预测器700可以对应于图2中的声学特征预测器210、图5中的声学特征预测器520或图6中的声学特征预测器620。声学特征预测器700可以包括编码器710、注意力单元720和解码器730。
可以将文本输入702提供给编码器710,编码器710可以对应于图2中的编码器212。编码器710中的文本嵌入单元712可以将文本输入702转换为文本嵌入向量,并且文本嵌入向量可以通过编码器710中的多个卷积层714和双向lstm(blstm)716来进一步处理。编码器710可以输出与文本输入702相对应的文本特征,所述文本特征被进一步与说话者嵌入向量704组合。例如,级联单元718可以用于提供说话者嵌入向量704和文本特征的组合,其中,说话者嵌入向量704可以对应于图2中的说话者潜在空间信息232、图5中的说话者嵌入向量512或图6中的说话者嵌入向量612。
可以将说话者嵌入向量704和文本特征的组合提供给注意力单元720,注意力单元720可以对应于图2中的注意力单元214。在注意力单元720中实现的注意力机制可以利用说话者嵌入向量702和文本特征的组合来影响由解码器730进行的处理,其中,解码器730可以对应于图2中的解码器216。
解码器730可以包括由前向反馈层、单向lstm(ulstm)734、线性映射736组成的前置网络732和由卷积层组成的后置网络738。ulstm734可以从前置网络732接收输入并将其输出提供给线性映射736,同时由ulstm734进行的处理受到注意力单元720的影响。线性映射736可以将其输出分别提供给前置网络732和后置网络738。最后,可以组合来自后置网络738的输出和来自线性映射736的输出以产生声学特征706。声学特征706可以对应于图2中的声学特征204、图5中的声学特征504或图6中的声学特征604。在一种实施方式中,线性映射736还可以用于生成停止令牌。
应当理解,图7中的声学特征预测器700的结构是示例性的,并且取决于具体的应用设计和需求,声学特征预测器700可以以任何其他方法实现。
图8示出了根据实施例的神经声码器800的示例性实施方式。神经声码器800可以对应于图2中的神经声码器220、图5中的神经声码器530和图6中的神经声码器640。
如上所述,神经声码器可以进一步考虑说话者特性,使得神经声码器可以在说话者潜在空间中获得目标说话者的更多信息。由于反映说话者特性的说话者嵌入向量可以具有与声学特征不同的维度和不同的值范围,因此可以通过例如神经网络将说话者嵌入向量和声学特征首先变换为具有相似动态值范围的相同维度。
如图8所示,可以将说话者嵌入向量804输入到神经网络810。说话者嵌入向量804可以对应于图2中的说话者潜在空间信息232、图5中的说话者嵌入向量512,或图6中的说话者嵌入向量612。神经网络810可以基于各种结构,例如1×1卷积层812。通过神经网络810,可以获得经变换的说话者嵌入向量。
此外,可以将对应于图7中的声学特征706的声学特征802输入到神经网络820。神经网络820可以基于各种结构,例如准循环神经网络(qrnn)822,其后是1×1卷积层824。通过神经网络820,可以获得经变换的声学特征,其与经变换的说话者嵌入向量相比可以具有相同的维度和相似的动态值范围。
经变换的声学特征和经变换的说话者嵌入向量可以被组合在一起,并进一步提供给神经声码器800。神经声码器800可以基于神经生成式模型,并可以基于经变换的声学特征和经变换的说话者嵌入向量的组合来生成语音波形806。
在一种实施方式中,神经声码器800可以包括多个空洞卷积层830,其被分组为一定数量的循环。多个空洞卷积层830可以将经变换的声学特征和经变换的说话者嵌入向量的组合作为条件。可以对多个空洞卷积层830的输出执行跳过连接832。神经声码器800可以进一步顺序地包括修正线性单元(relu)834、1×1卷积层836、relu838、1×1卷积层840、多个前向反馈层842和mol单元844。通过上述结构,神经声码器800可以以顺序方式生成语音样本,并最终输出语音波形806。
应当理解,图8中的神经声码器800的结构是示例性的,并且取决于具体的应用设计和需求,神经声码器800可以以任何其他方式实现。
图9示出了根据实施例的用于训练多说话者神经tts系统的示例性过程。
为了训练多说话者神经tts系统910,可以准备用于训练的多说话者语料库集920。语料库集920可以包括多个说话者的多个语料库,例如说话者1的语料库1、说话者2的语料库2等。考虑到内容覆盖、说话者多样性、风格多样性等来准备语料库集。
在一方面,语料库集920具有各种知识领域中的广泛内容覆盖。在本文中,“内容”可以指由语料库中的语音波形表达的信息,并且内容覆盖可以利用不同的语言上下文,例如音素、三音素、音节等,来评估。为了具有宽泛的内容覆盖,语料库集920中的语音波形可以来自各种语音源,例如新闻报道、讲座、电影配音、日常对话等。因此,语料库集920中的不同说话者的语料库的集合可以提供丰富的内容或语言覆盖。
在一方面,语料库集920中的说话者可以在年龄、性别、口音等方面具有均衡分布。例如,说话者可以覆盖不同的年龄范围,例如中年人、老年人、年轻人等。说话者可以覆盖不同性别,例如男性和女性。说话者可以具有不同的口音,例如美国口音、英国口音、澳大利亚口音等。语料库集920中的说话者多样性可以帮助捕获不同种类的说话者的特性并生成表达性的语音。
在一方面,语料库集920中可以包括各种风格的语音。在本文中,“语音风格”可以指说话者的表达方式,例如讲故事、讲课、日常聊天等。语言风格也可能与产品或用户的需求相关联。
此外,还可以考虑到用于改善其多样性和丰富性的任何其他方面来准备语料库集920。
如上所述准备的训练语料库集920可以有助于使多说话者神经tts系统910能够利用来自不同说话者的内容,为域外文本输入生成接近人的语音,丰富优质声音,为只有小语料库的目标说话者创建新的语音等。
在图9中示出了多说话者神经tts系统910可以包括至少一个说话者模型912、声学特征预测器914和神经声码器916。多说话者神经tts系统910的架构可以与图2中的多说话者神经tts系统200相同,并且可以具体地以图5中的结构或图6中的结构实现。换言之,如果至少一个说话者模型912是单个说话者模型,则它可以连接到声学特征预测器914和神经声码器916。而如果至少一个说话者模型912包括两个单独的说话者模型,则一个说话者模型可以连接到声学特征预测器914,并且另一个说话者模型可以连接到神经声码器916。
可以基于语料库集920中的语音波形来获得用于至少一个说话者模型912、声学特征预测器914和神经声码器916中的任何一项或任何组合的训练数据。例如,可以从语音波形获得各种导出信息,例如通过应用任何现有语音识别技术获得的文本信息、通过应用任何现有声学特征提取技术获得的声学特征、通过应用任何现有说话者识别技术获得的说话者嵌入向量等。导出信息与语料库集920中的语音波形一起可以形成用于至少一个说话者模型912、声学特征预测器914和神经声码器916中的任何一项或任何组合的各种训练数据。例如,由文本输入和声学特征的对组成的训练数据可以用于训练声学特征预测器914,由声学特征和语音波形的对组成的训练数据可以用于训练神经声码器916,由文本输入、声学特征和语音波形的集合组成的训练数据可以用于联合训练至少一个说话者模型912、声学特征预测器914和神经声码器916,等等。
在至少一个说话者模型912是单个说话者模型的情况下,可以基于语料库集920来分别训练说话者模型、声学特征预测器914和神经声码器916。替代地,也可以基于语料库集920来联合训练说话者模型、声学特征预测器914和神经声码器916。
在至少一个说话者模型912包括两个说话者模型的情况下,可以基于语料库集920来联合训练声学特征预测器914及其对应的说话者模型,并且可以基于语料库集920来联合训练神经声码器916及其对应的说话者模型。替代地,也可以基于语料库集920来联合训练全部两个说话者模型、声学特征预测器914和神经声码器916。
图10示出了根据实施例的用于更新多说话者神经tts系统的示例性过程。在一些实施方式中,在已经训练了多说话者神经tts系统之后,可以通过已经用于训练多说话者神经tts系统的多说话者语料库集中的训练数据对的子集来进一步更新,例如重新训练,多说话者神经tts系统。用于更新的子集可以是语料库集中的一个或多个说话者的一个或多个语料库。通过这种方式,可以通过语料库集来进一步改进多说话者神经tts系统。
在图10中,多说话者神经tts系统1010可以通过已经用于训练多说话者神经tts系统1010的语料库集1020来更新。多说话者神经tts系统1010可以对应于图9中的多说话者神经tts系统910,并且语料库集1020可以对应于图9中的语料库集920。
可以从语料库集1020中提取语料库集1020中存在的说话者m的语料库m。语料库m中的语音波形可以用于形成用于进一步更新多说话者神经tts系统的训练数据。可以以与上面结合图9所讨论的类似方法,通过语料库m形成训练数据,并且多说话者神经tts系统1010中的至少一个说话者模型1012、声学特征预测器1014和神经声码器1016可以以与上面结合图9所讨论的多说话者神经tts系统910的训练过程类似的方式更新。例如,可以基于训练数据来重新训练至少一个说话者模型1012、声学特征预测器1014和神经声码器1016中的任何一项或任何组合。
通过图10中的更新过程,可以进一步改善多说话者神经tts系统1010的泛化能力。应当注意,说话者m也可以被视为目标说话者。此外,尽管在图10中示出了从语料库集中仅提取一个语料库m,但是语料库集中的不同数量的语料库可以用于更新或重新训练多说话者神经tts系统。
图11示出了根据实施例的用于更新多说话者神经tts系统的示例性过程。在一些实施方式中,当部署或应用多说话者神经tts系统时,例如当要通过多说话者神经tts系统生成目标说话者的语音波形时,可以通过目标说话者的语料库来更新多说话者神经tts系统,以使多说话者神经tts系统适应于目标说话者。
在图11中,多说话者神经tts系统1110可以用于为目标说话者生成语音,目标说话者例如是在用于训练多说话者神经tts系统1110的语料库集中不存在的新说话者1102。多说话者神经tts系统1110可以对应于图9中的多说话者神经tts系统910或图10中的多说话者神经tts系统1010。
可以获得新说话者1102的语料库1104并将其用于形成用于进一步更新多说话者神经tts系统1110的训练数据。可以以与上面结合图9所讨论的类似方法,通过新说话者1102的语料库1104形成训练数据,并且可以以与上面结合图9所讨论的多说话者神经tts系统910的训练过程类似的方式,更新多说话者神经tts系统1110中的至少一个说话者模型1112、声学特征预测器1114和神经声码器1116。例如,可以基于训练数据来更新或重新训练至少一个说话者模型1112、声学特征预测器1114和神经声码器1116中的任何一项或任何组合。
通过图11中的更新过程,可以使多说话者神经tts系统1010更好地适应于新说话者,并因此生成具有高说话者相似性的高质量语音波形,例如更好地模拟新说话者的声音说话。
图12示出了根据实施例的用于生成语音波形的示例性处理流程1200。处理流程1200可以由多说话者神经tts系统执行,以生成具有目标说话者的声音的与文本输入相对应的语音波形。
可以接收文本输入1204。在1206处,处理流程1200可以进一步确定目标说话者1202是否是新说话者。
如果确定目标说话者1202不是新说话者,例如目标说话者1202是用于训练多说话者神经tts系统的语料库集中的现有说话者,则在1208处可以通过例如多说话者神经tts系统中的说话者模型中的说话者嵌入选择器从说话者嵌入向量数据库中选择与目标说话者相对应的说话者嵌入向量。
如果确定目标说话者1202是新说话者,例如目标说话者1202在语料库集中不存在,则可以在1210处获得目标说话者1202的语料库。
在1212处,目标说话者1202的语料库可以用于根据例如图11中的更新过程来更新多说话者神经tts系统。
在1214处,可以通过例如多说话者神经tts系统中的说话者模型中的说话者编码器来生成目标说话者1202的说话者嵌入向量。
在1216处,可以通过例如多说话者神经tts系统中的声学特征预测器,基于文本输入1204和由步骤1208或1214提供的说话者嵌入向量来预测声学特征。
在1218处,可以通过例如多说话者神经tts系统中的神经声码器,基于声学特征和说话者嵌入向量来生成与文本输入1204相对应的语音波形。
应当理解,取决于多说话者神经tts系统的特定结构,1216处的预测步骤和1218处的生成步骤可以利用相同的说话者嵌入向量或不同的说话者嵌入向量。例如,如果单个说话者模型连接到声学特征预测器和神经声码器两者,则1216处的预测步骤和1218处的生成步骤所利用的说话者嵌入向量可以是相同的。而如果两个不同的说话者模型分别连接到声学特征预测器和神经声码器,则1216处的预测步骤所利用的说话者嵌入向量可以与1218处的生成步骤所利用说话者嵌入向量的不同。
此外,应当理解,取决于具体的设计和需求,可以根据本公开的实施例调整、省略或替换处理流程1200中的任何步骤和步骤顺序。任何附加步骤也可以添加到处理流程1200中。例如,如果在1206处确定目标说话者不是新说话者,例如目标说话者1202是训练语料库集中的现有说话者,则还可以根据例如图10中的更新过程,基于语料库集中的目标说话者的语料库来更新多说话者神经tts系统。
图13示出了根据实施例的多说话者神经tts系统1300的示例性架构。
多说话者神经tts系统1300可以包括说话者信息提取器1310、声学特征预测器1320和神经声码器1330,其中,说话者信息提取器1310可以包括或实现至少一个说话者模型1312。说话者模型1312、声学特征预测器1320和神经声码器1330可以分别对应于图2中的说话者模型230、声学特征预测器210和神经声码器220。
在一些实施方式中,说话者信息提取器1310、声学特征预测器1320和神经声码器1330可以以硬件级别实现,例如通过相应硬件单元实现。在本文中,硬件单元可以指代一个或多个处理器、一个或多个芯片、一个或多个中央处理单元(cpu)、一个或多个图形处理单元(gpu)等,或其任何组合。在一些实施方式中,说话者信息提取器1310、声学特征预测器1320和神经声码器1330也可以以软件级别实现,例如通过计算机程序、处理器指令等实现。多说话者神经tts系统1300不限于任何具体的实施方法。
说话者信息提取器1310可以被配置用于通过至少一个说话者模型1312提供目标说话者的说话者潜在空间信息。
声学特征预测器1320可以被配置用于基于文本输入和说话者潜在空间信息来预测至少一个声学特征。
神经声码器1330可以被配置用于基于至少一个声学特征和说话者潜在空间信息来生成与文本输入相对应的语音波形。
在一种实施方式中,至少一个说话者模型1312可以包括:第一说话者模型,被配置用于提供说话者潜在空间信息中的第一说话者潜在空间信息;以及第二说话者模型,被配置用于提供说话者潜在空间信息中的第二说话者潜在空间信息。声学特征预测器1320可以被配置用于基于文本输入和第一说话者潜在空间信息来预测至少一个声学特征。神经声码器1330可以被配置用于基于至少一个声学特征和第二说话者潜在空间信息来生成语音波形。
在一种实施方式中,基于语料库集中的多个说话者的多个语料库来分别预训练至少一个说话者模型1312、声学特征预测器1320和神经声码器1330中的至少一项,和/或基于多个说话者的多个语料库来联合预训练至少一个说话者模型1312、声学特征预测器1320和神经声码器1330中的任何两项或更多项。
在一种实施方式中,如果至少一个说话者模型1312包括第一说话者模型和第二说话者模型,则基于语料库集中的多个说话者的多个语料库来联合预训练第一说话者模型和声学特征预测器,和/或基于多个说话者的多个语料库来联合预训练第二说话者模型和神经声码器。
在一种实施方式中,可以基于目标说话者的语料库来分别更新至少一个说话者模型1312、声学特征预测器1320和神经声码器1330中的至少一项,和/或可以基于目标说话者的语料库来联合更新至少一个说话者模型1312、声学特征预测器1320和神经声码器1330中的任意两项或更多项。
在一种实施方式中,在至少一个说话者模型1312包括第一说话者模型和第二说话者模型的情况下,可以基于目标说话者的语料库来联合更新第一说话者模型和声学特征预测器,和/或可以基于目标说话者的语料库来联合更新第二说话者模型和神经声码器。
此外,说话者信息提取器1310、声学特征预测器1320和神经声码器1330还可以被配置用于执行根据如上所述的本公开的实施例的任何其他过程或操作。
图14示出了根据实施例的用于通过多说话者神经tts合成来生成语音的示例性方法1400的流程图。
在1410处,可以接收文本输入。
在1420处,可以通过至少一个说话者模型,提供目标说话者的说话者潜在空间信息。
在1430处,可以通过声学特征预测器,基于所述文本输入和所述说话者潜在空间信息来预测至少一个声学特征。
在1440处,可以通过神经声码器,基于所述至少一个声学特征和所述说话者潜在空间信息来生成与所述文本输入相对应的语音波形。
在一种实施方式中,所述至少一个说话者模型可以包括单个说话者模型。
在一种实施方式中,所述至少一个说话者模型可以包括第一说话者模型和第二说话者模型。所述提供可以包括:通过所述第一说话者模型来提供第一说话者潜在空间信息;以及通过所述第二说话者模型来提供第二说话者潜在空间信息。所述预测可以包括:基于所述文本输入和所述第一说话者潜在空间信息来预测所述至少一个声学特征。所述生成可以包括:基于所述至少一个声学特征和所述第二说话者潜在空间信息来生成所述语音波形。
在一种实施方式中,所述提供可以包括:基于所述目标说话者的语料库来生成所述目标说话者的说话者嵌入向量;或者从说话者嵌入向量数据库中选择所述目标说话者的说话者嵌入向量。
在一种实施方式中,方法1400还可以包括:通过第一神经网络,基于所述至少一个声学特征来生成至少一个经变换的声学特征;以及通过第二神经网络,基于所述说话者潜在空间信息来生成经变换的说话者潜在空间信息。所述生成语音波形可以包括:基于所述至少一个经变换的声学特征和所述经变换的说话者潜在空间信息的组合来生成所述语音波形。
在一种实施方式中,方法1400还可以包括:基于所述目标说话者的语料库来分别更新所述至少一个说话者模型、所述声学特征预测器和所述神经声码器中的至少一项;和/或基于所述目标说话者的所述语料库来联合更新所述至少一个说话者模型、所述声学特征预测器和所述神经声码器中的任何两项或更多项。
在一种实施方式中,如果所述至少一个说话者模型包括第一说话者模型和第二说话者模型,则方法1400还可以包括:基于所述目标说话者的语料库来联合更新所述第一说话者模型和所述声学特征预测器;和/或基于所述目标说话者的所述语料库来联合更新所述第二说话者模型和所述神经声码器。
在一种实施方式中,所述至少一个说话者模型、所述声学特征预测器和所述神经声码器中的至少一项是基于多个说话者的多个语料库来分别预训练的,和/或所述至少一个说话者模型、所述声学特征预测器和所述神经声码器中的任何两项或更多项是基于所述多个说话者的所述多个语料库来联合预训练的。
在一种实施方式中,在所述至少一个说话者模型包括第一说话者模型和第二说话者模型的情况下,所述第一说话者模型和所述声学特征预测器是基于多个说话者的多个语料库来联合预训练的,和/或所述第二说话者模型和所述神经声码器是基于所述多个说话者的所述多个语料库来联合预训练的。
在一种实施方式中,所述多个语料库是基于内容覆盖、说话者多样性和风格多样性中的至少一项来准备的。
应当理解,方法1400还可以包括根据如上所述的本公开的实施例的用于通过多说话者神经tts合成来生成语音的任何步骤/过程。
图15示出了根据实施例的用于通过多说话者神经tts合成来生成语音的示例性装置1500。
装置1500可以包括:文本输入接收模块1510,用于接收文本输入;说话者潜在空间信息提供模块1520,用于通过至少一个说话者模型,提供目标说话者的说话者潜在空间信息;声学特征预测模块1530,用于通过声学特征预测器,基于所述文本输入和所述说话者潜在空间信息来预测至少一个声学特征;以及语音波形生成模块1540,用于通过神经声码器,基于所述至少一个声学特征和所述说话者潜在空间信息来生成与所述文本输入相对应的语音波形。
此外,装置1500还可以包括被配置用于根据如上所述的本公开的实施例的通过多说话者神经tts合成来生成语音的任何其他模块。
图16示出了根据实施例的用于通过多说话者神经tts合成来生成语音的示例性装置1600。
装置1600可以包括至少一个处理器1610和存储计算机可执行指令的存储器1620。当执行所述计算机可执行指令时,所述一个或多个处理器1610可以:接收文本输入;通过至少一个说话者模型,提供目标说话者的说话者潜在空间信息;通过声学特征预测器,基于所述文本输入和所述说话者潜在空间信息来预测至少一个声学特征;以及通过神经声码器,基于所述至少一个声学特征和所述说话者潜在空间信息来生成与所述文本输入相对应的语音波形。
至少一个处理器1610还可以被配置用于执行根据如上所述的本公开的实施例的用于通过多说话者神经tts合成来生成语音的方法的任何操作。
本公开的实施例可以体现在非暂时性计算机可读介质中。所述非暂时性计算机可读介质可以包括指令,所述指令当被执行时,使得一个或多个处理器执行根据如上所述的本公开的实施例的用于通过多说话者神经tts合成来生成语音的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其他等同变换。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以利用微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、状态机、门控逻辑单元、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其他适合的处理组件来实现。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以利用由微处理器、微控制器、dsp或其他适合的平台所执行的软件来实现。
软件应当被广泛地视为意指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(例如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部,例如缓存器或寄存器。
以上描述被提供用于使得本领域任何技术人员可以实践本文所描述的各个方面。对这些方面的各种修改对于本领域技术人员将是显而易见的,并且本文限定的一般性原理可以应用于其他方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域普通技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换都被明确并入本文并且由权利要求所覆盖。