神经文本到语音的音素和字素
文献发布时间:2024-04-18 19:58:30
技术领域
本公开涉及神经文本到语音(TTS)的音素和字素。
背景技术
语音合成系统使用文本到语音(TTS)模型从文本输入生成语音。生成/合成的语音应该准确地传达消息(可理解性),同时听起来像人类语音(自然度),具有预期的韵律(表现力)。语音合成系统已经从拼接和参数合成模型演变到具有神经网络的模型。这种演变已经显著地提高合成语音的自然度,但是如今TTS模型仍然无法完全保留馈送到TTS模型中以生成合成语音的输入文本。也就是说,大多数TTS模型甚至是神经网络TTS模型将输入文本转换成音素表示,而不保留对应字素。由于缺乏字素,TTS模型无法利用在音素与字素之间的关系来进一步提高TTS模型的功能。
发明内容
本公开的一个方面提供一种用于实施用于神经文本到语音合成的音素和字素词元(token)的计算机实施的方法。所述计算机实施的方法当在数据处理硬件上执行时使数据处理硬件执行操作,包括在语音合成模型的编码器处接收文本输入,所述文本输入包括表示为输入编码器嵌入的单词序列。输入编码器嵌入包括多个词元,其中所述多个词元包括将文本输入表示为相应字素的第一组字素词元以及将文本输入表示为相应音素的第二组音素词元。所述操作还包括对于第二组音素词元中的每一个相应音素词元:识别与相应音素词元对应的单词序列中的相应单词;以及确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元。所述操作还包括:基于在每一个相应音素词元与确定为表示与相应音素词元相同的相应单词的对应字素词元之间的关系,由编码器生成输出编码器嵌入。
本公开的实施方案可以包括以下可选特征中的一个或更多个。在一些实施方案中,由编码器识别与相应音素词元对应的单词序列中的相应单词包括识别与相应音素词元对应的相应单词中的位置,并且由编码器确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元包括在与相应音素词元对应的相应单词中的位置处确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元。
在一些实例中,输入编码器嵌入的所述多个词元中的每一个词元表示以下项的组合:字素词元嵌入或音素词元嵌入中的一个;片段嵌入;单词位置嵌入;和/或位置嵌入。在这些实例中,识别与相应音素词元对应的单词序列中的相应单词可以包括:基于与相应音素词元相关联的相应单词位置嵌入,识别与相应音素词元对应的单词序列中的相应单词。此处,确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元可以包括:确定相应字素词元包括与相应音素词元的相应单词位置嵌入匹配的对应单词位置嵌入。
在一些实施方案中,语音合成模型包括与编码器通信的注意力机制。语音合成模型可以包括与编码器通信的基于持续时间的上采样器。此外,输入编码器嵌入的所述多个词元可以包括识别输入文本的语言的特殊词元。
所述操作还可以包括通过以下操作预训练语音合成模型的编码器:向编码器馈送多个训练示例,每一个训练示例表示为与单词的训练序列对应的训练字素词元序列以及与单词的相同训练序例对应的训练音素词元序列;对于来自单词的训练序列的相应单词,从训练音素词元序列掩蔽训练音素词元;以及对于来自单词的训练序列的相应单词,从训练音素词元序列掩蔽训练字素词元。
在一些实施方案中,语音合成模型包括多语言语音合成模型,并且所述操作进一步包括使用分类目标预训练语音合成模型的编码器,以预测输入编码器嵌入的所述多个词元中的分类词元,所述分类词元包括语言标识符。在其它实施方案中,语音合成模型包括多语言语音合成模型,并且输出编码器嵌入包括编码器词元序列,其中每一个编码器词元包括关于输入文本的语言信息。
在又其它实施方案中,语音合成模型包括多重音语音合成模型,并且所述操作进一步包括使用分类目标预训练语音合成模型的编码器,以预测输入编码器嵌入的所述多个词元中的分类词元,其中所述分类词元包括重音标识符。
本公开的另一方面提供一种用于实施用于神经文本到语音合成的音素和字素词元的系统。所述系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,所述指令当在数据处理硬件上执行时使数据处理硬件执行操作,包括在语音合成模型的编码器处接收文本输入,所述文本输入包括表示为输入编码器嵌入的单词序列。输入编码器嵌入包括多个词元,其中所述多个词元包括将文本输入表示为相应字素的第一组字素词元以及将文本输入表示为相应音素的第二组音素词元。所述操作还包括对于第二组音素词元中的每一个相应音素词元:识别与相应音素词元对应的单词序列中的相应单词;以及确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元。所述操作还包括:基于在每一个相应音素词元与确定为表示与相应音素词元相同的相应单词的对应字素词元之间的关系,由编码器生成输出编码器嵌入。
此方面可以包括以下可选特征中的一个或更多个。在一些实施方案中,由编码器识别与相应音素词元对应的单词序列中的相应单词包括识别与相应音素词元对应的相应单词中的位置,并且由编码器确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元包括在与相应音素词元对应的相应单词中的位置处确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元。
在一些实例中,输入编码器嵌入的所述多个词元中的每一个词元表示以下项的组合:字素词元嵌入或音素词元嵌入中的一个;片段嵌入;单词位置嵌入;和/或位置嵌入。在这些实例中,识别与相应音素词元对应的单词序列中的相应单词可以包括:基于与相应音素词元相关联的相应单词位置嵌入,识别与相应音素词元对应的单词序列中的相应单词。此处,确定表示与相应音素词元对应的单词序列中的相应单词的相应字素词元可以包括:确定相应字素词元包括与相应音素词元的相应单词位置嵌入匹配的对应单词位置嵌入。
在一些实施方案中,语音合成模型包括与编码器通信的注意力机制。语音合成模型可以包括与编码器通信的基于持续时间的上采样器。此外,输入编码器嵌入的所述多个词元可以包括识别输入文本的语言的特殊词元。
所述操作还可以包括通过以下操作预训练语音合成模型的编码器:向编码器馈送多个训练示例,每一个训练示例表示为与单词的训练序列对应的训练字素词元序列以及与单词的相同训练序例对应的训练音素词元序列;对于来自单词的训练序列的相应单词,从训练音素词元序列掩蔽训练音素词元;以及对于来自单词的训练序列的相应单词,从训练音素词元序列掩蔽训练字素词元。
在一些实施方案中,语音合成模型包括多语言语音合成模型,并且所述操作进一步包括使用分类目标预训练语音合成模型的编码器,以预测输入编码器嵌入的所述多个词元中的分类词元,所述分类词元包括语言标识符。在其它实施方案中,语音合成模型包括多语言语音合成模型,并且输出编码器嵌入包括编码器词元序列,其中每一个编码器词元包括关于输入文本的语言信息。
在又其它实施方案中,语音合成模型包括多重音语音合成模型,并且所述操作进一步包括使用分类目标预训练语音合成模型的编码器,以预测输入编码器嵌入的所述多个词元中的分类词元,其中所述分类词元包括重音标识符。
在附图和以下说明中阐述本公开的一个或更多个实施方案的细节。其它方面、特征和优点将从说明和附图以及从权利要求书显而易见。
附图说明
图1是示例语音环境的示意图。
图2A到图2C是用于文本到语音模型的示例增强编码器的示意图。
图3是用于增强编码器的示例训练过程的示意图。
图4是使用音素和字素两者生成输出编码器嵌入的方法的操作的示例布置的流程图。
图5是可以用于实施本文中所描述的系统和方法的示例计算装置的示意图。
在各个附图中的同样的附图标记指示同样的元件。
具体实施方式
神经端到端文本到语音(TTS)合成的快速发展已经使语音的生成接近人类自然度水平。这些TTS系统的神经网络通常包括将输入文本表示编码为隐藏状态的编码器和从隐藏状态解码声谱图帧或波形样本的解码器。这些TTS系统然后可以使用基于注意力或持续时间的上采样器来将编码器连接到解码器。
在这些TTS系统的发展期间,表示文本的神经网络的输入形式已经演变。例如,早期的TTS系统将接收输入文本的纯字符作为神经网络的输入。然而,随着时间的推移,发现如果神经网络的输入不是纯字符而是音素(即,文本表示如何被发音),则TTS系统可能实现更好的稳定性。不幸地,基于音素的TTS模型并非没有它们的顿挫。例如,当两个单词的发音相同,但这两个单词实际上有不同的含义;即同音异义词时,基于音素的模型就会出现一个明显的问题。为了说明,句子“To cancel the payment,press one;or to continue,two,(要取消付款,按一;或继续付款,按二)”是呼叫中心的对话AI代理可能经常使用的同音异义词的示例。在这个句子的音素表示中,尾随的“…,two(二)”很容易与“…,too(也)”混淆,因为“too”是在普通英语中更频繁出现的单词。也就是说,预测系统更有可能输出单词“too”,即使“two”是意图。在此实例中,在两种模式的逗号位置处,在自然语音中预期不同的韵律。在“…,two”的情况下,逗号处预期适度停顿,而对于模式“…,too”通常没有停顿。当TTS模型基于音素时,用于这种示例句子的文本表示的神经网络的音素输入缺乏句子的书面场境来确保一致准确的输出;合成语音在逗号之后具有停顿以使合成语音听起来像输入句子的输出。
为了克服基于音素的模型的这种顿挫,因此使TTS模型的神经网络的输入包括音素和字素两者将是有利的。也就是说,输入是输入的文本发音的表示(即,音素)以及如何书写文本的表示(即,字素)。理想地,包含字素将减少或消除发音歧义(例如,同音异义词)引起的问题。然而,为包括音素和字素两者的神经网络产生输入并不像它可能听起来那么简单。一种复杂性是音素和字素可能表示相同的内容,但长度不同。例如,句子中的单词可能具有两个子词或字素,但只有单个音素,或者在相反的例子中,句子中的单词可以具有一个子词或字素(例如,子词与单词相同)和两个音素。因此,表示句子的第一序列的音素与表示同一句子的第二序列的字素将具有固有的对齐问题。
即使存在这个问题,一些手段已经试图将输入的音素和字素表示组合。这些手段通常倾向于避免这一问题,而不是提出解决这一对齐问题的解决方案。例如,一种手段是通过将基于字素的嵌入与音素嵌入拼接而在单词级别组合音素和字素表示。由于这些手段不处理在音素与基于字素的词元之间的对齐挑战(即,在子词级别),因此这些手段不完全利用音素-字素关系。这意味着这些手段限制字素的结合可能提供TTS模型的潜力(例如,在准确性方面)。
为了解决先前手段的问题,本文所描述的当前技术考虑在音素和字素之间的对齐(或错位)。更特别地,所述手段表示在表示为神经网络的输入(即,神经网络的编码器的输入)的整个文本上的音素词元和字素词元之间的对齐关系(即,在子词或词元化级别)。这种手段类似于双向Transformer的编码器表示(BERT)模型的编码器(例如,在Devlin,BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding(用于语言理解的深度双向Transformer的预训练)中描述,其可在https://arxiv.org/pdf/1810.04805v2.pdf处获得,并通过引用并入本文)。在传统BERT模型中,编码器接收与由片段标识符(ID)识别的多个句子(即,片段)对应的输入。BERT的输入将所述多个句子表示为基于音素的词元嵌入、片段嵌入和位置嵌入的总和。尽管在一些方面类似,但是当前技术可以被认为是增强BERT或PnG BERT,因为此技术包括用于词元嵌入的音素和字素。为了在词元级别解释字素,增强BERT不仅包括传统BERT的词元嵌入、片段嵌入和位置嵌入,而且还包括提供在音素与字素之间的单词级别对齐的单词位置嵌入。因此,增强BERT的输入是四种类型嵌入的表示,而传统的BERT仅包括三种类型的嵌入,而没有任何字素表示。
由于增强BERT手段将音素-字素关系表示为神经网络编码器的输入,因此这种增强BERT编码器(也称为增强编码器)可以用于不同类型的TTS模型。也就是说,由于神经网络通常是具有基于注意力或持续时间的上采样的编码器-解码器结构,因此增强编码器可以取代TTS模型的其它编码器-解码器结构中的编码器。这意味着增强编码器与基于注意力的神经网络和基于持续时间的神经网络兼容,而没有任何显著的修改。因此,从功能上讲,增强编码器可以用于单语言TTS模型、语言区域TTS模型、多语言TTS模型和/或多重音TTS模型。
当前技术建立在BERT模型上的另一个原因是:BERT是一种使用预训练来改进它的自然语言处理的模型架构。一般来说,那种预训练是使用目标例如语言模型(LM)或掩蔽语言模型(MLM)在大型文本语料库上进行的自我监督预训练。对于传统的BERT,预训练仅在字素(在子词级别)或在句子级别执行。传统上不对音素进行预训练。由于增强BERT能够对在音素与字素之间的关系进行建模,因此这种关系也可以转换为预训练,使得增强BERT可以在音素和字素两者上进行预训练。
参考图1,在一些实施方案中,语音环境100包括用户10将口头话语12传送到语音启用装置110(还称为装置110或用户装置110)。用户10(即,话语12的说话者)可以将话语12作为查询或命令说出,以从装置110请求响应或使装置110执行由该查询指定的任务。装置110被配置成从语音环境100内的一个或更多个用户10捕获声音。此处,音频声音可以指用户10说出的口头话语12,所述口头话语用作可听查询、装置110的命令或由装置110捕获的可听通信。装置110的或与装置110相关联的语音启用系统(例如,数字助理界面)可以通过回答查询和/或致使执行命令来回应命令的查询。
此处,装置110捕获与由用户10说出的话语12对应的音频数据14。装置110可以对应于与用户10相关联并且能够接收音频数据14的任何计算装置。用户装置110的一些实例包括但不限于移动装置(例如,移动电话、平台计算机、膝上型计算机、电子书阅读器等)、计算机、可穿戴装置(例如,智能手表)、音乐播放器、播放装置、智能电器(例如,智能电视)和物联网(IoT)装置、遥控器、智能扬声器等。装置110包括数据处理硬件112和存储器硬件114,所述存储器硬件114与数据处理硬件112通信并且存储指令,所述指令在由数据处理硬件112执行时使数据处理硬件112执行与语音和/或文本处理相关的一个或更多个操作。在一些实例中,装置110包括一个或更多个应用(即,软件应用),其中每一个应用可以利用与装置110相关联的一个或更多个语音处理系统140、150、200以执行应用内的各种功能。例如,装置110包括辅助应用,所述辅助应用被配置成将合成播放音频154(还称为合成语音154)传送到用户10以帮助用户10完成各种任务。
装置110进一步包括音频子系统,所述音频子系统具有:音频捕获装置(例如,麦克风)116,用于捕获语音环境100内的音频数据14并且将所述音频数据14转换成电信号;以及语音输出装置(例如,扬声器)118,用于传送可听音频信号(例如来自装置110的合成播放信号154)。虽然装置110在所示实例中实施单个音频捕获装置116,但是装置110可以在不偏离本公开的范围的情况下实施音频捕获装置116的阵列,由此阵列中的一个或更多个音频捕获装置116可以物理上不驻存在装置110上,而是与音频子系统(例如,装置110的外围设备)通信。例如,装置110可以对应于利用位于整个车辆中的麦克风阵列的车辆信息娱乐系统。
此外,装置110被配置成经由网络120与远程系统130通信。远程系统130可以包括远程资源132,例如远程数据处理硬件134(例如,远程服务器或CPU)和/或远程存储器硬件136(例如,远程数据库或其它存储硬件)。装置110可以利用远程资源132来执行与语音处理和/或合成播放通信相关的各种功能。例如,装置110被配置成使用语音识别系统140执行语音识别和/或使用TTS系统150(例如,使用TTS模型200)执行文本到语音的转换。这些系统140、150、200可以驻存在装置110上(称为装置上系统)或远程地驻存(例如,驻存在远程系统130上),但是与装置110通信。在一些实例中,这些系统140、150、200中的一些系统在本地或在装置上驻存,而另一些则远程地驻存。换句话说,这些系统140、150、200中的任一个可以按任意组合为本地的或远程的。例如,当系统140、150、200的大小或处理要求相当大时,系统140、150、200可以驻存在远程系统130中。然而,当装置110可以支持一个或更多个系统140、150、200的大小或处理要求时,所述一个或更多个系统140、150、200可以使用数据处理硬件112和/或存储器硬件114驻存在装置110上。可选地,系统140、150、200中的所述一个或更多个可以本地/在装置上和远程地驻存。例如,当在装置110与远程系统130之间与网络120的连接可用时,系统140、150、200中的一个或更多个系统可以默认在远程系统130上执行,但当连接丢失或网络120不可用时,则系统140、150、200替代地在装置110上本地执行。
语音识别系统140接收音频数据14作为输入,并且将所述音频信号转录为转录142作为输出。一般来说,通过将音频数据14转换为转录142,语音识别系统140允许装置110识别来自用户10的口头话语12何时对应于查询、命令或某种其它形式的音频通信。转录142是指装置110随后可以用于生成对查询或命令的响应的文本序列。例如,如果用户10向装置110询问问题“今天天气怎么样”,则装置110将与问题“今天天气怎么样(what will theweather be like today)”对应的音频数据14传递到语音识别系统140。语音识别系统140将音频数据14转换成包括文本“今天天气怎么样?”的转录。装置110随后可以使用文本或文本的部分确定对查询的响应。例如,为了确定当天(即,今天)的天气,装置110将文本(例如,“今天天气怎么样?”)或文本的标识部分(例如,“天气(weather)”和“今天(today)”)传递到搜索引擎。搜索引擎然后可以返回一个或更多个搜索结果,装置110解释所述搜索结果以生成对用户10的响应。
在一些实施方案中,装置110或与装置110相关联的系统标识装置110将传送到用户10的文本152(也称为文本152序列或输入文本152),作为对口头话语12的查询的响应。装置110然后可以使用TTS系统150将文本152转换成对应合成播放音频154,以便装置110传送到用户10(例如,可听地传送到用户10),作为对口头话语12的查询的响应。换句话说,TTS系统150接收文本152作为输入,并且将文本152转换成合成播放音频154的输出(例如,通过一系列神经网络),其中合成播放音频154是定义文本152的可听再现的音频信号。例如,播放音频154是输入文本152的言语化或叙述。在一些实例中,输入文本152指代特定自然语言(例如,英语、西班牙语或法语)中的文本或字符序列。字符序列可以包括字母、数字、标点符号和/或其它特殊字符。当TTS系统150生成播放音频154时,播放音频154是合成语音,因为它近似于人类将如何用言语表达定义输入文本152的字符序列。
TTS系统150(或其它语音合成系统)包括TTS模型200(例如,图2的TTS模型200),所述TTS模型200利用深度神经网络以生成合成播放音频154。TTS模型200处理作为语音特征(例如,输入文本152的特征)的编码表示的嵌入,以生成音频波形(例如,定义音频信号随时间的幅度的时域音频波形)。一旦生成,TTS系统150就将合成播放音频154传送到装置110以允许装置110输出合成播放音频154。例如,装置110在装置110的扬声器118处输出合成播放音频154“今天是晴天”。此处,TTS系统150的TTS模型200被配置成控制合成语音154的语音相关属性。换句话说,TTS模型200被配置成在自然度方面模拟人类说话者的语音,同时还能够通过对细粒度的潜在特征进行建模来生成不同的合成语音。尽管图1在辅助应用的场境中描绘TTS系统150的示例,但是TTS系统150(例如,使用TTS模型200)可应用于其它文本到语音场景,例如,导航或阅读文档。
参考图2A到图2C,TTS模型200包括增强编码器202、适配器204和解码器206。增强编码器202接收文本152作为输入,将所述文本152转换为输入嵌入210以供变换器(transformer)220编码为场境向量Vc。一般来说,编码器-解码器架构使用适配器204,因为解码器206的输入序列和输出序列的长度不同。因此,适配器204用作处理输入序列如何对应于输出序列的机制。例如,多少音频帧对应于场境向量Vc的词元。如图2A中所示,有适配器204、204a-b的两个选项。对于第一选项,第一适配器204a使用注意力(通常称为基于注意力的TTS模型)来以兼容形式提供场境向量Vc,以供解码器206解码为合成语音154(例如,声谱图或波形)。对于第二选项,第二适配器204b执行基于持续时间的上采样(称为基于持续时间的TTS模型)而不是关于场境向量Vc的注意力,从而以兼容形式提供场境向量Vc,以供解码器206解码为合成语音154。
为了形成输入嵌入210,TTS模型200的功能类似于前面描述的BERT模型在于:输入嵌入210是表示输入文本152的嵌入E的组合。在一些实施方案中,输入嵌入210对应于表示为多个词元212、212a–n或词元212的序列的单词序列(例如,一个句子或多个句子)。所述多个词元212包括表示文本输入152的第一组音素词元212、212P
在一些实例中,与使用三种类型的嵌入(例如,词元嵌入、片段嵌入和位置嵌入)的组合来形成输入嵌入的原始BERT不一样,增强编码器202从四种类型的嵌入E形成输入嵌入210。例如,增强编码器202使用四种类型的嵌入E而不是三种类型的嵌入E来为增强编码器202提供对齐场境,以除了音素之外还包含字素。参考图2B,输入嵌入210表示位置嵌入E、Ep、单词位置嵌入E、Ewp、片段嵌入E、Es和词元嵌入E、Et的总和。此处,单词位置嵌入Ewp与位置嵌入Ep的不同之处在于:位置嵌入是所述多个词元212的位置的总体索引。然而,单词位置嵌入Ewp表示在子词级别的位置(即,在片段的单词中在哪里出现词元)。通过包括单词位置嵌入Ewp,输入嵌入210能够表示例如句子中的第二音素对应于第一单词的第二词块(即,单词位置)中的第一单词,同时还表示该同一句子的第二字素对应于句子中的第二单词。这意味着在输入嵌入210中表示在音素与字素之间的对齐。
图2B说明围绕输入嵌入210的每一个个别词元212的竖直虚线框(即,输入嵌入210的词元化步骤),以描绘输入嵌入210的每一个词元212是位置嵌入E、Ep、单词位置嵌入E、Ewp、片段嵌入E、Es和词元嵌入E、Et的组合。此处,位置嵌入Ep指代词元步骤相对于输入嵌入210(例如,整个当前输入嵌入210)的总体或全局位置。在图2B中,从零的索引开始有九个位置或词元化步骤。单词位置嵌入Ewp指代词元212对应于来自输入文本152的单词序列中的哪个单词。图2B具有三个单词的输入文本152。片段嵌入Es识别哪个短语或句子对应于词元212。在增强编码器202具有与字素及音素对应的输入的情况下,输入文本152包括用于输入文本152的每一个单个片段的至少两个片段。换句话说,将输入文本152的每一个片段重复两次,一次作为音素片段(在图2B中示为片段A)和一次作为字素片段(在图2B中示为片段B)。因此,如果输入文本152是两个或四个句子(意味着传统BERT的两个或四个片段),则用于增强编码器202的输入嵌入210将分别是四个片段或八个片段(即,每一个句子一次表示为字素并且一次表示为音素)。另外,形成输入嵌入210的词元嵌入Et对应于片段(或句子)的单词的子单元表示。如前所述,音素词元可以是单独的IPA音素,而字素词元是词块子词。
继续参考图2B,输入嵌入210的每一个词元212以垂直虚线框示出,以说明相应词元212是多个嵌入E的组合。输入嵌入210的第一词元212a是CLS词元的第一词元嵌入Et、Et1、第一片段嵌入Es、EsA、第一单词位置嵌入Ewp、Ewp0和第一位置嵌入Ep、Ep0的组合。与输入嵌入210的音素词元212P的集合中的第一音素词元212p1对应的第二词元212b是音素词元P1的第二词元嵌入Et、Et2、第一片段嵌入Es、EsA、第二单词位置嵌入Ewp、Ewp1和第二位置嵌入Ep、Ep1的组合。与输入嵌入210的音素词元212P的集合中的第二音素词元212p2对应的第三词元212c是音素词元P2的第三词元嵌入Et、Et3、第一片段嵌入Es、EsA、第二单词位置嵌入Ewp、Ewp1和第三位置嵌入Ep、Ep2的组合。与输入嵌入210的音素词元212P的集合中的第n音素词元212pn对应的第四词元212d是音素词元Pn的第n词元嵌入Et、Et4、第一片段嵌入Es、EsA、第三单词位置嵌入Ewp、Ewp2和第四位置嵌入Ep、Ep3的组合。与输入嵌入210的SEP词元212SEP对应的第五词元212e是SEP词元SEP的第五词元嵌入Et、Et5、第一片段嵌入Es、EsA、第三单词位置嵌入Ewp、Ewp3和第五位置嵌入Ep、Ep4的组合。与输入嵌入210的第二组字素词元212G中的第一字素词元212G1对应的第六词元212f是字素词元G1的第六词元嵌入Et、Et6、第二片段嵌入Es、EsB、第一单词位置嵌入Ewp、Ewp1和第六位置嵌入Ep、Ep4的组合。与输入嵌入210的第二组字素词元212G中的第二字素词元212G2对应的第七词元212g是字素词元G2的第七词元嵌入Et、Et7、第二片段嵌入Es、EsB、第二单词位置嵌入Ewp、Ewp2和第七位置嵌入Ep、Ep7的组合。与输入嵌入210的第二组字素词元212G中的第n字素词元212Gn对应的第八词元212h是字素词元Gn的第八词元嵌入Et、Et7、第二片段嵌入Es、EsB、第二单词位置嵌入Ewp、Ewp2和第八位置嵌入Ep、Ep8的组合。与输入嵌入210的第二SEP词元212SEP(例如,指示第二片段的结束)对应的第九词元212i是CEP词元的第九词元嵌入Et、Et9、第二片段嵌入Es、EsB、第三单词位置嵌入Ewp、Ewp3和第九位置嵌入Ep、Ep9的组合。此处,由于片段A和片段B用于相同句子,因此表示输入嵌入210的音素词元212P的第一单词位置(例如,第一单词位置嵌入Ewp1)的嵌入E与表示字素词元212G的第一单词位置(例如,第一单词位置嵌入Ewp1)的嵌入E相同;指示字素和音素词元212出现在相同的词块级别。
在一些实例中,增强编码器202的变换器220接收输入编码器嵌入210,并且生成场境向量Vc作为增强编码器202的输出(也称为输出编码器嵌入(Vc))。与输入编码器嵌入210非常像,输出编码器嵌入或场境向量Vc也可以是基于输入词元212的输出词元序列(例如,示为V1-V9)。参考图2C,在一些实施方案中,变换器220被配置成:接收输入编码器嵌入210,并且基于在输入编码器嵌入210的音素词元212P与字素词元212G之间的关系生成输出编码器嵌入V
在一些配置中,变换器220通过将特定输入词元212表示为它与所有其它输入词元212的关系来生成场境向量Vc的每一个词元V。例如,图2C示出对于输入词元212P1的当前词元步骤,变换器220的输出词元V2解释第一音素词元与所有其它输入词元212的关系。在一些实施方案中,变换器220可以被配置成加权或定性地表示对每一个其它输入词元212的当前词元步骤(例如,第一音素词元212P)的强度,使得每一个其它输入词元212对输出词元V2具有一些影响。此处,由于第一音素词元212P1与第一字素词元212G1具有强关系(例如,在单词位置级别的共享嵌入E),因此变换器220可以生成具有这种关系的某种表示的输出词元V2。
生成场境向量Vc的每一个词元V作为特定输入词元与所有其它输入词元212的关系的表示对于不同类型的TTS模型可能是有益的。也就是说,通常存在一些TTS情况,这些TTS情况已经在历史上需要专门的TTS模型或具有特定架构的TTS模型来适应它们的特定TTS任务。多语言TTS模型或多重音TTS模型已经通常都是如此。多语言TTS模型指代一种TTS模型,这种TTS模型可以适应来自各种语言的输入文本152并且相应地以这些各种语言生成合成语音154。这与单语言(或单个语言)TTS模型形成对比。多语言TTS模型往往是有问题的,因为这些TTS模型传统上采用基于音素的TTS模型。音素对于多语言模型来说呈现挑战,因为音素在不同语言之间可能具有很大的重叠。因此,由于导致语言歧义的这种重叠,传统的多语言模型必须包含模型的额外语言输入才有效。但是,当发生代码切换时,使用额外语言输入可能有一些困难。代码切换指代当单个句子包括多种语言时。在代码切换情况下,与文本输入组合的语言输入可能无法识别多种语言或哪些特定词元对应于哪些语言。换句话说,难以获得句子中的每一个词元的准确语言标识符。然而,增强编码器202可以解决这些问题,因为场境向量Vc的每一个词元V是特定输入词元与所有其它输入词元212的关系的表示。因此,如果用于输入编码器嵌入210的一个输入词元212包括语言标识符,则将该语言信息载送到输出编码器嵌入Vc的相应词元V。例如,图2C说明一个专业词元212CLS包括语言标识符214,然后将该语言标识符214转换成场境向量Vc的第二词元V2。尽管图2C描绘与专业词元212CLS相关联的语言标识符214,但是输入编码器嵌入210可以被配置成使得其它输入词元212包括语言标识符214。另外或替代地,对于多重音TTS模型,标识符214可以替代地为语言区域或重音标识符214。
除了多语言TTS模型之外,增强编码器202还可以合并到多重音TTS模型中。多重音TTS模型在历史上也已经具有一些挑战。例如,类似于多语言TTS模型的多重音TTS模型倾向于使用基于音素的TTS模型。这可能归因于在编码器输入的音素与字素之间的对齐问题尚未被解决的事实。然而,使用增强编码器202的当前技术,多重音TTS模型现在能够利用字素来识别输入文本152的语言区域或重音。通过这些对齐改进来表示在音素与字素之间的关系,增强编码器202可以用于各种TTS模型中,例如单语言TTS模型、单语言区域TTS模型、多语言TTS模型、多重音TTS模型、基于注意力的TTS和基于持续时间的TTS模型中,而无需进行太多(如果有的话)重大修改。因此,增强编码器202可以取代TTS系统中使用的编码器,而不会干扰这些TTS系统的其它架构。
参考图3,与传统BERT非常像,增强编码器202经历预训练过程300。仅在此处,与预训练过程仅使用字素的传统BERT不一样,增强编码器202的预训练过程300使用音素和字素两者。在预训练过程期间,增强编码器202在纯文本语料库302上预训练。在一些实施方案中,当在纯文本语料库302上训练时,预训练过程300使用字素到音素(G2P)转换系统获得音素,并且使用子词文本词元器获得字素。在一些实例中,预训练过程300可以取决于将并入增强编码器202的TTS模型200的类型而变化。例如,当针对单语言或单语言区域TTS模型对增强编码器202进行预训练时,预训练过程200仅使用单个目标320或掩蔽语言建模(MLM)目标320、320a。一般来说,当用MLM目标320、320a进行训练时,为了预测掩蔽的输入词元312M,随机掩蔽一些百分比的输入词元312、312a–n。这种掩蔽预测允许右场境和左场境两者(即,双向场境)。然而,对于增强编码器202,与单词序列(即,一个或若干个句子)对应的每一个训练示例310的输入内容304被表示两次——一次作为训练音素词元312、312b–d的序列,并且一次作为训练字素词元312、312f–h的序列。此处,如果MLM目标320a将掩蔽随机应用于这些训练词元312,则在训练音素词元312b–d中掩蔽的训练词元312可以使它的对应物存在(即,未掩蔽)于训练字素词元312f–h中;对预训练的词元预测过程进行偏置。出于此原因,具有MLM目标320a的预训练过程300替代地在单词级别应用随机掩蔽,但确保它在音素与字素片段之间一致。也就是说,如果掩蔽单词的音素,则也掩蔽对应字素。例如,图3描绘片段A的第一单词的两个掩蔽音素312、312M
对于其它TTS模型200,例如多语言TTS模型和多重音TTS模型,预训练过程300另外使用分类目标320、320b。此处,使用分类目标320b的预训练过程300训练增强编码器202的输出以预测语言区域或语言。例如,如先前所描述,例如CLS词元的特殊词元可以携载语言或语言区域标识符214。此处,当预训练时,增强编码器202学习预测语言或语言区域,并且将语言或语言区域指示为与词元(例如,CLS词元)相关联的标识符。在一些实例中,语言分类可能相对于重音分类更容易。在这些实例中,分类目标320b的分类损失可以使用较低的权重(例如,0.1)。
由于预训练过程300对TTS模型200的增强编码器202进行预训练,以学习如何预测输入编码器嵌入210,因此微调过程随后针对特定任务训练被并入完整TTS模型200中的增强编码器202。微调过程初始化来自预训练模型的权重,然后在TTS模型训练期间继续对这些权重进行进一步调整。在一些实例中,微调冻结变换器220的嵌入和较低层,同时微调变换器220的较高层,以便防止退化并且促进经过训练的TTS模型200的泛化。否则可能发生退化,因为微调过程使用较小的训练数据集。微调过程可以仅将隐藏状态从音素词元212P上的最终变换器层向下游传递到TTS组件(例如,适配器204和解码器206)。即使这些隐藏状态仅指代音素位置,这些隐藏状态仍然携载来自字素以及基于训练增强编码器202的方式的语言(或语言区域)的信息。在一些配置中,微调过程关闭MLM目标320a,但是对于多语言或多重音TTS模型保持分类目标320b活动。例如,通过在微调过程期间保持分类目标320b活动,可以将语言信息维持在编码表示中。
图4是使用音素和字素两者生成输出编码器嵌入Vc的方法400的操作的示例布置的流程图。在操作402处,方法400在语音合成模型200的编码器202处接收文本输入152,该文本输入152包括表示为输入编码器嵌入210的单词序列。输入编码器嵌入210包括多个词元212,其中所述多个词元212包括将文本输入152表示为相应字素的第一组字素词元212、212G以及将文本输入152表示为相应音素的第二组音素词元212、212P。方法400对第二组音素词元212P中的每一个相应音素词元212P执行操作404和406。在操作404处,方法400识别与相应音素词元212P对应的单词序列中的相应单词。在操作406处,方法400确定相应字素词元212G,该相应字素词元212G表示与相应音素词元212P对应的单词序列中的相应单词。在操作408处,方法400基于在每一个相应音素词元212P与确定为表示与相应音素词元212P相同的相应单词的对应字素词元212G之间的关系生成输出编码器嵌入Vc。
图5是可以用于实施在本文档中描述的系统(例如,TTS系统150、TTS模型200和/或增强编码器202)和方法(例如,方法400)的示例计算装置500的示意图。计算装置500意图表示各种形式的数字计算机,例如,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它合适的计算机。此处所示的组件、组件的连接和关系以及组件的功能意味着仅仅是示例的,且并不意味着限制本文档中描述和/或要求保护的发明的实施。
计算装置500包括处理器510(例如,数据处理硬件)、存储器520(例如,存储器硬件)、存储装置530、连接到存储器520和高速扩展端口550的高速接口/控制器540以及连接到低速总线570和存储装置530的低速接口/控制器560。组件510、520、530、540、550和560中的每一个使用各种总线互连,并且可以被安装在通用母板上或视情况以其它方式安装。处理器510能够处理用于在计算装置500内执行的指令,包括存储于存储器520中或存储装置530上以将图形用户界面(GUI)的图形信息显示在外部输入/输出装置例如耦合到高速接口540的显示器580上的指令。在其它实施方案中,多个处理器和/或多个总线可以视情况与多个存储器以及多种类型的存储器一起使用。而且,可以连接多个计算装置500,其中每一个装置提供必要操作的部分(例如,作为服务器组、刀片服务器群组或多处理器系统)。
存储器520将信息非暂时性地存储在计算装置500内。存储器520可以是计算机可读介质、易失性存储器单元,或非易失性存储器单元。非暂时性存储器520可以是用于临时地或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算装置500使用的物理装置。非易失性存储器的实例包括但不限于快闪存储器和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电子可擦除可编程只读存储器(EEPROM)(例如,通常用于固件如引导程序)。易失性存储器的实例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储装置530能够为计算装置500提供大容量存储。在一些实施方案中,存储装置530是计算机可读介质。在各种不同实施方案中,存储装置530可以是软盘装置、硬盘装置、光盘装置或磁带装置、快闪存储器或其它类似的固态存储器装置或装置的阵列,包括存储区域网络或其它配置中的装置。在附加实施方案中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,所述指令在执行时执行一个或更多个方法,例如,上述那些方法。信息载体是计算机或机器可读介质,例如,存储器520、存储装置530或处理器510上的存储器。
高速控制器540管理计算装置500的带宽密集型操作,而低速控制器560管理较低的带宽密集型操作。这种职责分配仅仅是示例的。在一些实施方案中,高速控制器540耦合到存储器520、显示器580(例如,通过图形处理器或加速计),并耦合到可以接受各种扩展卡(未示出)的高速扩展端口550。在一些实施方案中,低速控制器560耦合到存储装置530和低速扩展端口590。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口590可以例如通过网络适配器耦合到一个或更多个输入/输出装置,例如,键盘、指向装置、扫描仪或例如交换机或路由器的联网装置。
如附图中所示,计算装置500可以以多种不同形式实施。例如,它可以被实施为标准服务器500a,或多次实施于一组此类服务器500a中、实施为膝上型计算机500b,或实施为机架服务器系统500c的一部分。
本文描述的系统和技术的各种实施方案可以在数字电子和/或光学电路系统、集成电路系统、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或它们的组合中实现。这些各种实施方案可以包括在一个或更多个计算机程序中的实施方案,所述计算机程序能够在包括至少一个可编程处理器的可编程系统上执行和/或解释,所述可编程处理器可以用于专用或通用目的,且耦合以从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令,并将数据和指令传输到存储系统、至少一个输入装置和至少一个输出装置。
这些计算机程序(还称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级程序化和/或面向对象的编程语言和/或用汇编/机器语言实施。如本文所使用,术语“机器可读介质”和“计算机可读介质”指代用于将机器指令和/或数据提供到可编程处理器的任何计算机程序产品、非暂时性计算机可读介质、设备和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指代用于将机器指令和/或数据提供到可编程处理器的任何信号。
本说明书中描述的过程和逻辑流可以由执行一个或更多个计算机程序的一个或更多个可编程处理器执行,以通过在输入数据上操作并且生成输出来执行功能。过程和逻辑流还可以通过专用逻辑电路系统例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)执行。举例来说,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者以及任何种类的数字计算机的任何一个或更多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或更多个存储器装置。通常,计算机还将包括用于存储数据的一个或更多个大容量存储装置(例如,磁盘、磁光盘或光盘),或可操作地耦合以从所述一个或更多个大容量存储装置接收数据或将数据传递到所述一个或更多个大容量存储装置,或这两者。然而,计算机不需要具有此类装置。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,包括例如,半导体存储器装置,例如EPROM、EEPROM和快闪存储器装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路系统补充或并入专用逻辑电路系统中。
为了提供与用户的交互,本公开的一个或更多个方面可以在具有显示装置(例如,CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏)以将信息显示给用户以及可选地键盘和指向装置(例如,鼠标或轨迹球)的计算机上实施,用户能够通过所述键盘和所述指向装置将输入提供到计算机。其它种类的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式(包括声音、语音或触觉输入)被接收。另外,通过将文档发送到用户使用的装置以及从所述装置接收文档;例如,通过响应于从web浏览器接收的请求而将web页发送到用户的客户端装置上的web浏览器,计算机能够与用户交互。
已经描述多个实施方案。然而,将理解,在不偏离本公开的精神和范围的情况下可以作出各种修改。因此,其它实施方案在所附权利要求书的范围内。
- 一种语音深度神经网络模型输出音素概率的方法
- 一种语音深度神经网络模型输出音素概率的方法