CN116235247A - 使用持续时间预测的文本到语音 - Google Patents
使用持续时间预测的文本到语音 Download PDFInfo
- Publication number
- CN116235247A CN116235247A CN202180063748.4A CN202180063748A CN116235247A CN 116235247 A CN116235247 A CN 116235247A CN 202180063748 A CN202180063748 A CN 202180063748A CN 116235247 A CN116235247 A CN 116235247A
- Authority
- CN
- China
- Prior art keywords
- sequence
- neural network
- mel
- representation
- generate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 claims abstract description 421
- 238000000034 method Methods 0.000 claims abstract description 179
- 238000012545 processing Methods 0.000 claims abstract description 113
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 143
- 238000009826 distribution Methods 0.000 claims description 66
- 238000013527 convolutional neural network Methods 0.000 claims description 20
- 230000004048 modification Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 10
- 230000001143 conditioned effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 abstract description 19
- 230000002194 synthesizing effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 72
- 238000001228 spectrum Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 9
- 239000003550 marker Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000001149 cognitive effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000000877 morphologic effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002028 premature Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 241000009334 Singa Species 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
- G10L13/10—Prosody rules derived from text; Stress or intonation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/027—Concept to speech synthesisers; Generation of natural phrases from machine-based concepts
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/04—Details of speech synthesis systems, e.g. synthesiser structure or memory management
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
- G10L25/30—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
- G10L13/10—Prosody rules derived from text; Stress or intonation
- G10L2013/105—Duration
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Signal Processing (AREA)
- Machine Translation (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
使用持续时间预测从文本数据合成音频数据的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。所述方法中的一个包括:使用第一神经网络在多个输入时间步长的每一个处处理包括相应文本元素的输入文本序列,以生成修改的输入序列,对于每个输入时间步长,该序列包括输入文本序列中的相应文本元素的表示;使用第二神经网络处理修改的输入序列,以针对每个输入时间步长生成输出音频序列中对应文本元素的预测持续时间;根据预测持续时间对修改的输入序列进行上采样,以生成中间序列,该中间序列包括多个中间时间步长中的每一个的相应中间元素;并且,使用中间序列生成输出音频序列。
Description
背景技术
本说明书涉及使用神经网络执行文本到语音。
神经网络是机器学习模型,其采用一层或多层非线性单元来对于接收到的输入预测输出。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作对于在网络中下一层——即下一个隐藏层或输出层——的输入。网络的每一层根据相应参数集的当前值从接收到的输入生成输出。
发明内容
本说明书描述了一种在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统执行神经网络系统,该神经网络系统被配置为处理表示文本样本的输入文本序列,并生成表示表征说出文本样本的说话者的音频数据的输出音频序列。本说明书还描述了在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统训练神经网络系统。神经网络系统可以使用持续时间预测神经网络生成输出音频序列,持续时间预测神经网络针对输入文本序列中的每个文本元素预测在输出音频序列中的文本元素的相应持续时间。
本说明书中描述的主题可以在特定实施例中实施以实现以下优点中的一个或多个。
一些现有技术使用自回归神经网络从文本输入生成音频输出,其中,神经网络迭代生成新的输出元素,直到网络例如通过生成“停止”标记确定停止。这种自回归神经网络可能不如传统的非深度手段稳健,因为临时确定何时停止生成输出标记可能会导致诸如提前中断或根本无法停止的问题。使用本说明书中描述的技术,配置为执行文本到语音的神经网络可以使用持续时间预测神经网络来对于每个输入标记预测在输出序列中的输入标记的持续时间,例如,与输入标记相对应的输出标记的数量或输入标记表示的时间长度。因此,神经网络可以在生成音频输出之前确定音频输出的长度,从而消除或显著降低提前切断或无法停止的风险。
此外,现有的自回归神经网络几乎没有或没有施加任何约束来防止重复或跳过输出标记。如本说明书中所述,通过直接对每个输入标记的持续时间进行建模,被配置为执行文本到语音的深度神经网络可以确定输入序列和输出序列之间的精确对应关系,从而使重复或跳过输出标记的风险最小化。
惯例上,非自回归系统通过简单地将输入序列中的每个输入标记重复N次来对输入序列进行上采样以生成中间序列。使用本说明书中描述的技术,系统可以充分利用每个输入标记的预测持续时间,以及可选地充分利用预测输入标记重要性的范围参数,以更复杂的方式对序列进行上采样,从而为中间序列生成改进的先验。特别地,在本说明书中描述的一些实施方式中,系统可以为输入序列中的每个输入标记确定中间序列上的分布,例如高斯分布,其对于输入标记的影响范围建模。然后,系统可以根据输入标记相应的影响的组合确定中间序列中的每个中间标记的值,例如,在输入标记的相应分布中的中间标记值的加权和。
使用本说明书中描述的技术,训练系统可以以无监督(或半监督)方式训练作为文本到语音神经网络的组件的持续时间预测神经网络。也就是说,训练系统可以使用训练输入序列例如与文本到语音神经网络的一个或多个其他子网并发训练持续时间预测神经网络,而无需具有对在训练输入序列中的每个输入标记的真实值持续时间的访问。文本语料库中每个文本元素的真实值持续时间可能很少;例如,在一些情况下,用户必须手动调整计算上昂贵的单独模型才能生成真实值持续时间。通过对持续时间预测神经网络进行无监督训练,训练系统可以避免执行该劳动密集型过程的需要。
在本说明书中描述的一些实施方式中,系统可以通过下述方式来控制每个单词或每个音素级别上的合成音频的步速:修改由持续时间预测神经网络确定的每个单词或音素的预测持续时间,同时仍然保持合成语音的自然度。
本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。从描述、附图和权利要求中,该主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是示例神经网络系统的图。
图2是示例持续时间预测神经网络的图。
图3是示例训练系统的图。
图4是用于使用神经网络系统处理输入文本序列以生成输出音频序列的示例过程的流程图。
各种附图中相同的附图标记和名称指示相同的元件。
具体实施方式
图1是示例神经网络系统100的图。神经网络系统100是其中可以实现下文描述的系统、组件和技术的、在一个或多个位置的一个或多个计算机上实现为计算机程序的系统的示例。
神经网络系统100被配置为处理表示文本样本的输入文本序列102并生成表示说出文本样本的说话者的音频数据的输出音频序列142。换言之,输出音频序列142以输入文本序列102“为条件”。
输入文本序列102可以在多个输入时间步长中的每一个处包括相应的文本元素。例如,每个文本元素可以表示字符、单词或音素。作为另一个例子,每个文本元素可以包括已经从输入文本导出并且与相应的输入时间步长相对应的语言特征。作为特定示例,对于输入文本中的每个单词或子单词,语言特征可以包括:该单词或子单词的一个或多个形态学引理;单词或子单词的一个或多个其他形态学特征,例如大小写、数字、性别、人称和/或时态;单词或子单词的词性标记;标识该单词或子单词所依赖的不同单词的依赖标签;或者,子单词是否占据对应单词的开头、内部或结尾的标识。在一些实施方式中,输入文本序列102包括用于词边界、标点符号和/或序列结束标记的相应文本元素。
输出音频序列142可以包括时域音频波形的样本。也就是说,输出音频序列142可以包括在输出时间步长序列中的每一个处的音频波的相应样本。例如,在给定输出时间步长处的音频样本可以是音频波的振幅值、压缩振幅值或压缩扩展振幅值。输出音频序列因此可以表示与输入文本序列相对应的合成语音。
神经网络系统100包括编码器神经网络110、持续时间预测神经网络120、解码器神经网络130和声码器系统140。
编码器神经网络110被配置为处理输入文本序列102并生成修改的输入序列112,其在多个输入时间步长的每一个处包括在输入文本序列102中的对应文本元素的表示。在修改的输入序列112中的每个表示可以是在输入文本序列102的对应文本元素的嵌入。在本说明书中,嵌入是表示在特定嵌入空间中的输入的有序数值集合。例如,嵌入可以是浮点向量或具有固定维度的其他数值。
对于输入文本序列102中的每个文本元素,编码器神经网络110可以获得该文本元素的预定嵌入。例如,如果文本元素是音素的标识,则编码器神经网络110可以获得在输入文本序列102中标识的每个音素的嵌入。文本元素的预定嵌入可以是机器学习的。例如,可以与神经网络系统100中的一个或多个神经网络并发训练嵌入。作为另一个例子,可以使用不同的神经网络对嵌入进行预训练以执行文本处理机器学习任务,例如,语言建模机器学习任务。
在一些实施方式中,编码器神经网络110可以直接从预定嵌入组成修改的输入序列112,其中,与每个文本元素相对应的修改的输入序列112中的表示等于文本元素的嵌入。也就是说,编码器神经网络110可以是不包括任何神经网络层的编码器系统。
在一些其他实施方式中,编码器神经网络110可以使用一个或多个神经网络层来处理在输入文本序列102中的文本元素的嵌入,以生成修改的输入序列112中的文本元素的表示。例如,编码器神经网络110可以使用一个或多个卷积神经网络层和/或一个或多个长短期记忆(LSTM)神经网络层——例如,双向LSTM神经网络层——来处理嵌入的序列。作为另一示例,编码器神经网络110可以使用一个或多个自注意力神经网络层来处理嵌入的序列。
在一些实施方式中,编码器神经网络110可以使用一个或多个神经网络层来处理文本元素的嵌入以生成每个文本元素的相应初始表示。然后,对于与相应文本元素相对应的每个初始表示,编码器神经网络110可以组合i)初始表示和ii)输出音频序列142应该属于的类的标识,以生成在修改的输入序列112中的文本元素的表示。例如,类可以识别由输出音频序列142表示的音频数据应该听起来像的特定说话者。识别的类可以是输出音频序列142可以属于的预定数量的可能的类中的一个。
持续时间预测神经网络120被配置为处理修改的输入序列112并为修改的输入序列中的每个表示生成在输出音频序列142中对应文本元素的预测持续时间。也就是说,对于在修改的输入序列112中的每个表示,表示的预测持续时间表示与表示相对应的文本元素将在由输出音频序列表示的音频数据中说出所花费的时间长度。
在持续时间预测神经网络120为修改的输入序列112中的每个表示生成相应的预测持续时间之后,持续时间预测神经网络120可以根据预测持续时间对修改的输入序列112进行上采样以生成中间序列122,该中间序列122包括在多个中间时间步长中每一个处的相应中间元素。通常,在中间序列122中存在的中间时间步长比输入文本序列102中的输入时间步长多。
例如,每个预测持续时间可以是浮点值,其表示对应文本元素将花费的秒数或毫秒数。作为另一个例子,每个预测持续时间可以是整数,其表示对应的文本元素将花费的输出时间步长的数量。
在一些实施方式中,持续时间预测神经网络被配置为处理修改的输入序列112并且为修改的输入序列112中的每个表示生成表示预测持续时间的相应单个值。作为特定示例,持续时间预测神经网络120可以使用一个或多个双向LSTM神经网络层来处理修改的输入序列112。持续时间预测神经网络112还可以包括输出投影神经网络层,例如前馈神经网络层,其被配置为接收在修改的输入序列112中每个表示的相应层输入并生成在修改的输入序列112中的每个表示的预测持续时间。
在一些其他实施方式中,持续时间预测神经网络120被配置为针对修改的输入序列112中的每个表示生成中间序列122的中间元素上的相应分布,该分布对于对中间序列122中每个中间元素的表示的影响进行建模。即,对于修改的输入序列112中的每个表示,对应的分布可以包括中间序列122中的每个中间元素的值,其表示对中间元素的表示的影响。下面参考图2更详细地描述该过程。
在一些实施方式中,在为在修改的输入序列112中的每个表示生成初始预测持续时间(例如,使用一个或多个神经网络层,如下面参考图2所述)之后,持续时间预测神经网络120可以试探性地更新一个或多个初始预测持续时间以生成最终预测持续时间。
例如,持续时间预测神经网络120可以通过相同的缩放因子(例如,0.8和1.25之间的缩放因子)来缩放每个初始预测持续时间。这在为具有不同语音模式的说话者——例如,说话比平均速度慢或快的说话者——合成音频数据时非常有用。
作为特定示例,神经网络系统100可以通过下述方式确定比例因子:比较(i)与输出音频序列142中要表征的特定说话者相对应的音频数据中的单词/音素持续时间的分布和(ii)与更广泛人群相对应的音频数据中的单词/音素持续时间的分布。例如,比例因子可以被确定为与两个分布的均值的比率成正比。
作为另一个特定示例,持续时间预测神经网络120可以为修改的输入序列112中的每个表示生成(i)与特定说话者相对应的预测持续时间(例如,使用与特定说话者相对应的类的标识,如上所述)和(ii)与一个或多个其他说话者(例如,专业说话者)相对应的相应预测持续时间。持续时间预测神经网络120然后可以为每个表示组合与相应说话者相对应的预测持续时间以生成表示的最终预测持续时间,例如通过确定预测持续时间的平均值(例如,几何平均值)。执行该技术可以改进输出音频序列142的可理解性。例如,特定说话者可能具有难以理解的独特语音模式。因此,持续时间预测神经网络120可以根据特定说话者(使得输出音频序列142表征特定说话者的独特语音模式)和一个或多个专业说话者(使得输出音频序列142对听众来说更容易理解)两者确定最终预测持续时间。
作为另一个示例,持续时间预测神经网络120可以识别修改的输入序列112中的一个或多个特定表示,其初始预测持续时间应当被修改。作为特定示例,持续时间预测神经网络120可以识别一个或多个表示,其在输入文本序列102中的对应文本元素表示应该强调的单词或音素。例如,持续时间预测神经网络120可以从外部自然语言机器学习模型获得文本元素的标识,该外部自然语言机器学习模型被配置为处理输入文本序列102(或表征与输入文本序列102相同的输入文本的模型输入)并识别应在对应的合成音频数据中强调的一个或多个文本元素。
在已经确定修改的输入序列112中每个表示的预测持续时间后,持续时间预测神经网络120可以根据预测持续时间对修改的输入序列112进行上采样以生成中间序列122。
例如,在其中持续时间预测神经网络120生成表示修改的输入序列112中每个表示的预测持续时间的相应单个值的实施方式中,持续时间预测神经网络120可以针对修改的输入序列112中的每个表示将中间序列122中的表示重复由预测持续时间标识的次数。
作为另一个示例,在持续时间预测神经网络120生成中间序列122上的分布的实施方式中,持续时间预测神经网络120可以针对中间序列122中的每个中间元素,通过根据其相应的分布组合修改的输入序列112中的表示对中间元素的相应影响来确定中间元素的值。下面参考图2更详细地描述该过程。
在一些实施方式中,中间时间步长与输出时间步长相同;也就是说,中间序列122中的每个中间元素可以与输出音频序列142中的相应音频样本相对应。在一些其他实施方式中,存在的中间时间步长比输出时间步长少,并且中间时间步长可以进一步被上采样以例如通过声码器系统140生成输出音频序列142,如下文更详细描述的。
在一些实施方式中,在对修改的输入序列112进行上采样以生成包括在每个中间时间步长处的相应上采样表示的上采样序列之后,持续时间预测神经网络120针对与每个中间时间步长相对应的上采样表示,来组合i)上采样表示和ii)上采样表示的位置嵌入,以生成与中间序列122中的中间时间步长相对应的中间元素。
上采样表示的位置嵌入表示上采样序列中上采样表示的位置。每个位置嵌入可以例如与编码器神经网络110、持续时间预测神经网络120或解码器神经网络130中的一个或多个并发地是机器学习的。作为特定示例,位置嵌入可以是正弦位置嵌入。
在一些实施方式中,上采样表示的位置嵌入表示上采样序列中上采样表示的全局位置,即中间时间步长当中的上采样表示的位置。
在一些其他实施方式中,上采样表示的位置嵌入表示上采样序列中上采样表示的局部位置。例如,位置嵌入可以表示上采样表示在与修改的输入序列中的相同表示相对应(即,与输入文本序列102中的相同文本元素相对应)的上采样表示的子序列中的位置。也就是说,每个上采样表示可以与修改的输入序列112中的特定表示——即上采样表示位于其预测持续时间中的修改的输入序列112中的表示——相对应。每个子序列中的第一上采样表示可以具有相同的位置嵌入,每个子序列中的第二上采样表示可以具有相同的位置嵌入,等等。
在一些其他实施方式中,在对修改的输入序列112进行上采样之前,持续时间预测神经网络120可以向修改的输入序列112添加位置嵌入(例如,其中,修改的输入序列112中的每个表示的位置嵌入表示修改的输入序列112内的表示的位置),以生成中间序列122。下面将参考图2更详细地描述该过程。
在一些实施方式中,在将一个或多个下游神经网络训练到持续时间预测神经网络120(例如,解码器神经网络130和/或声码器系统140的声码器神经网络)期间,训练系统可以当使用预测持续时间对修改的输入序列112进行上采样时执行“教师强制”。也就是说,代替根据由持续时间预测神经网络120实际生成的预测持续时间对修改的输入序列112进行上采样来生成中间序列122,训练系统可以根据表示持续时间预测神经网络120响应于处理修改的输入序列112而应该生成的输出的“真实值”持续时间对修改的输入序列112进行上采样。将在下面更详细地讨论用于训练持续时间预测神经网络120的示例技术。
解码器神经网络130被配置为处理中间序列122并生成音频特征序列,该音频特征序列包括中间序列122中每个中间时间步长的相应音频特征集合。特定中间时间步长的音频特征集合表示与特定中间时间步长相对应的一个或多个输出时间步长处的输出音频序列142。
例如,音频特征序列可以表示输出音频序列142的频谱表示。作为特定示例,解码器神经网络130可以被配置为针对每个中间时间步长生成相应的梅尔频率倒谱系数(MFCC)特征表示。
作为另一个特定示例,解码器神经网络130可以被配置为生成与输出音频序列142相对应的梅尔频谱图132,即表示与输出音频序列142相同的音频数据的梅尔频谱图132。梅尔频谱图132可以包括在中间序列122的每个中间时间步长处的相应频谱图帧。与每个中间时间步长相对应的频谱图帧表示在与中间时间步长相对应的一个或多个输出时间步长处的输出音频序列142的音频频率的预测分布。
尽管下面的描述涉及解码器神经网络130生成梅尔频谱图132的实现方式,但是应该理解,下面描述的技术可以用于实现解码器神经网络130,该解码器神经网络130生成与输出音频序列142相对应的任何适当的音频特征集合。
在一些实施方式中,解码器神经网络130自回归地生成梅尔频谱图132的频谱图帧。例如,在处理时间步长序列中的第一处理时间步长处,解码器神经网络130可以处理中间序列122中的第一中间元素以生成梅尔频谱图132的第一帧。然后,在处理时间步长序列中的每个后续的处理时间步长,解码器神经网络130可以处理:i)中间序列122中的后续中间元素,以及ii)在前一处理时间步长中生成的梅尔频谱图132的先前帧,以生成梅尔频谱图132的后续帧。也就是说,每个处理时间步长可以与中间序列122中的相应中间时间步长相对应,并且在每个处理时间步长中,解码器神经网络130生成与相应中间时间步长相对应的梅尔频谱图132的频谱图帧。
在一些实施方式中,在解码器神经网络130的训练期间,训练系统可以在自回归处理先前的频谱图帧以生成新的频谱图帧时执行教师强制。即,代替处理由解码器神经网络130在先前处理时间步长实际生成的频谱图帧,训练系统可以处理表示解码器神经网络130响应于处理中间序列122而应该生成的输出的“真实值”梅尔频谱图的对应频谱图帧。下面更详细地讨论用于训练解码器神经网络130的示例技术。
在一些实施方式中,解码器神经网络130包括“前网”子网,其在每个处理时间步长处理梅尔频谱图132的先前帧以生成先前帧的嵌入。解码器神经网络130然后可以处理:i)与当前处理时间步长相对应的中间序列122的中间元素和ii)先前频谱图帧的嵌入,以生成梅尔频谱图132的后续频谱图帧。作为具体示例,前网子网可以包括一个或多个前馈神经网络层。
在一些这样的实施方式中,解码器神经网络130连结i)与当前处理时间步长相对应的中间序列122的中间元素和ii)先前频谱图帧的嵌入,以生成第一连结表示,并且然后使用解码器神经网络130的第一子网处理第一连结表示以生成第一连结表示的嵌入。例如,第一子网可以包括一个或多个单向LSTM神经网络层。
解码器神经网络130然后可以连结i)与当前处理时间步长相对应的中间序列122的中间元素和ii)第一连结表示的嵌入,以生成第二连结表示,并且然后使用解码器神经网络130的第二子网处理第二连结表示以生成梅尔频谱图132的后续帧。例如,第二子网可以包括输出投影神经网络层,例如前馈神经网络层,其被配置为生成梅尔频谱图的后续帧。
在一些实施方式中,在生成如上所述的一系列频谱图帧之后,解码器神经网络130被配置为进一步处理梅尔频谱图帧以生成最终的梅尔频谱图132。即,例如由第二子网所生成的梅尔频谱图可以是“初始”梅尔频谱图,并且解码器神经网络130可以处理初始梅尔频谱图以生成最终梅尔频谱图132。例如,解码器神经网络130可以使用“后网”子网处理初始梅尔频谱图以生成最终梅尔频谱图132。作为特定示例,后网子网可以包括一个或多个卷积神经网络层,每个卷积神经网络层都配置为将卷积滤波器应用于初始梅尔频谱图的频谱图帧(或频谱图帧的处理版本)。
声码器系统140被配置为处理梅尔频谱图132以生成输出音频序列142。声码器系统140可以使用任何适当的技术从梅尔频谱图132生成输出音频序列142。例如,声码器系统140可以包括被配置为处理梅尔频谱图132以生成输出音频序列的声码器神经网络。
在一些实施方式中,声码器系统140进一步对梅尔频谱图进行上采样,使得在输出音频序列142中存在的输出时间步长多于梅尔频谱图132中的中间时间步长。例如,声码器系统140可以被配置为从包括每个中间时间步长的相应初始音频样本的梅尔频谱图132生成初始输出音频序列,然后通过使用被配置为提炼初始输出音频序列的神经网络——例如卷积神经网络——处理初始输出音频序列来生成输出音频序列142。
在一些实施方式中,神经网络系统100不包括声码器系统140,而是代替地输出梅尔频谱图132。也就是说,神经网络系统100可以被配置为生成表示输出音频序列的梅尔频谱图而代替被配置为自己生成输出音频序列。
在一些实施方式中,可以并发训练神经网络系统100的多个神经网络。例如,可以并发训练以下部分中的一个或多个:编码器神经网络110;持续时间预测神经网络120;解码器神经网络130;或者,可选地,声码器系统140的声码器神经网络。例如,训练系统可以确定输出音频序列142中的错误并通过神经网络系统100反向传播错误以例如使用随机梯度下降来确定一个或多个神经网络的参数更新。
在一些这样的实施方式中,可以使用监督学习并发训练编码器神经网络110、持续时间预测神经网络120和解码器神经网络130。也就是说,训练系统可以使用训练示例集合来确定神经网络的参数更新,每个训练示例包括i)训练输入文本序列,ii)真实值梅尔频谱图,以及iii)与训练输入文本序列中的每个文本输入相对应的真实值持续时间。
训练系统可以使用神经网络系统100处理每个训练输入文本序列以生成预测的梅尔频谱图132,并且然后计算表示预测的梅尔频谱图132中的错误的损失函数。
例如,损失函数可以包括第一项,其表征修改的输入序列112中的表示的、由持续时间预测神经网络120生成的预测持续时间中的错误。作为特定示例,第一项可以是(或成正比于):
其中,N是修改的输入序列112中的表示的数量,d表示预测持续时间,d*表示真实值持续时间,并且||·||2是L2损失。
作为另一个例子,损失函数可以包括表征生成的梅尔频谱图132中的错误的第二项。作为一个特定的例子,第二项可以是(或成正比于):
其中,T是在梅尔频谱图中中间时间步长的数量,K是在梅尔频谱图中表示的频率的数量,yt是在中间时间步长t处的预测的梅尔频谱图的值,yt*是在中间时间步长t处的真实值梅尔频谱图的值,||·||1是L1损失,并且||·||2是L2损失。
在一些实施方式中,如上所述,解码器神经网络130首先生成初始梅尔频谱图,并且然后处理初始梅尔频谱图以生成最终预测的梅尔频谱图132。在一些这样的实施方式中,损失函数的第二项可以包括与初始梅尔频谱图和最终梅尔频谱图132相对应的相应项。也就是说,训练系统可以使用真实值梅尔频谱图确定在初始梅尔频谱图和最终梅尔频谱图132两者中的错误。作为一个特定的例子,第二项可以是(或成正比于):
其中,yt’是在中间时间步长t处的初始梅尔频谱图的值,yt是在中间时间步长t处的最终梅尔频谱图的值,并且yt*是在中间时间步长t处的真实值梅尔频谱图的值。
在一些其他实施方式中,可以使用半监督或无监督学习来并发训练编码器神经网络110、持续时间预测神经网络120和解码器神经网络130。也就是说,当包括真实值持续时间和/或真实值梅尔频谱图的训练示例稀缺或不可用时,训练系统可以确定神经网络的参数更新。在下面参考图3描述用于使用无监督或半监督学习来训练神经网络系统100的示例技术。
神经网络系统100可以被部署在任何适当的设置中。例如,神经网络系统100可以被部署在例如移动电话、平板电脑、智能扬声器的边缘设备上,或者被部署在车辆中嵌入的设备上。例如,神经网络系统100可以被配置为生成表示要为用户播放的音频数据的输出音频序列142。作为特定示例,可以由移动电话或平板电脑的扬声器例如响应于由用户提供的查询而播放音频数据。作为另一个特定示例,音频数据可以由车辆的扬声器播放,例如以向驾驶员或车辆中的另一个用户提供警报或指令。
作为另一个示例,神经网络系统100可以被部署在云上,例如,在与一个或多个边缘设备通信连接的数据中心中。边缘设备可以向神经网络系统100提供文本数据以及对于合成表征文本数据的音频的请求。神经网络系统100可以处理与文本数据相对应的输入文本序列102并生成输出音频序列142,并且然后响应于请求将输出音频序列142(或表征输出音频序列142的其他数据)提供回边缘设备。
图2是示例持续时间预测神经网络200的图。持续时间预测神经网络200是其中可以实现下面描述的系统、组件和技术的在一个或多个位置的一个或多个计算机上实现为计算机程序的系统的示例。
持续时间预测神经网络200被配置为获得表示文本数据的输入文本序列的嵌入202。输入文本序列可以包括在多个输入时间步长中的每一个处的相应文本元素,并且嵌入的输入序列202可以包括与相应输入时间步长相对应的每个文本元素的相应表示。
持续时间预测神经网络200被配置为处理输入文本序列102并生成表示与输入文本序列102相同的文本数据的上采样序列232。上采样序列232在多个中间时间步长处的每一个处包括相应的中间元素,其中,中间时间步长的数量大于嵌入的输入序列202中输入时间步长的数量。
持续时间预测神经网络200被配置为通过针对由嵌入的输入序列202表示的每个文本元素预测如果文本数据被说出的情况下文本元素的相应持续时间来生成上采样序列232。也就是说,如果从嵌入的输入序列202生成音频数据,则文本元素的持续时间表示将用于说出由文本元素表示的文本的时间量。
例如,持续时间预测神经网络200可以是神经网络系统的组件,其被配置为处理输入文本序列并生成表征说出输入文本序列的说话者的输出音频序列。作为特定示例,持续时间预测神经网络200可以是上面参考图1描述的神经网络系统100的持续时间预测神经网络120。
持续时间预测神经网络200包括持续时间预测子网210、范围预测子网220和上采样系统230。
持续时间预测神经网络200被配置为针对嵌入的输入序列202中的每个表示确定上采样序列232的中间元素上的相应分布,该分布对于对上采样序列232中每个中间元素的表示的影响进行建模。对于嵌入的输入序列202中的每个表示,对应的分布可以为上采样序列232中的每个中间元素定义一个值,其表示该表示对中间元素的影响。
对于嵌入的输入序列202中的每个表示,可以通过以下部分对分布进行参数化:(i)由持续时间预测子网确定的表示的预测持续时间212和(ii)由范围预测子网220确定的表示的范围参数222。如下文更详细描述的,分布的中心可以由相应的预测持续时间212定义,而分布的方差可以由相应的范围参数222定义。特定表示的范围参数222可以表示该表示的重要性,例如,它对输出音频序列的相对影响。
具体而言,持续时间预测子网210被配置为处理嵌入的输入序列202并为嵌入的输入序列202中的每个表示生成相应的预测持续时间212。例如,每个预测持续时间212可以是表示在上采样序列232中的中间时间步长数量的整数。
作为特定示例,持续时间预测子网210可以使用一个或多个双向LSTM神经网络层来处理嵌入的输入序列202。持续时间预测子网210还可以包括输出投影神经网络层,例如前馈神经网络层,其被配置为接收嵌入的输入序列202中每个表示的相应层输入并为嵌入的输入序列202中的每个表示生成预测持续时间212。
范围预测子网220被配置为处理嵌入的输入序列202并且可选地处理由持续时间预测子网210生成的预测持续时间212,并为嵌入的输入序列202中的每个表示生成相应的范围参数222。例如,对于嵌入的输入序列202中的每个表示,范围预测子网220可以例如使用连结组合:i)该表示和ii)该表示的预测持续时间212。范围预测子网220然后可以处理组合表示以生成对应的范围参数222。作为特定示例,范围预测子网220可以包括一个或多个双向LSTM神经网络层。范围预测子网220还可以包括输出投影神经网络层,例如前馈神经网络层,其被配置为接收嵌入的输入序列202中的每个表示的相应层输入并为嵌入的输入序列202中的每个表示生成范围参数222。
上采样系统230被配置为根据嵌入的输入序列202的表示的相应预测持续时间212和范围参数222从嵌入的输入序列202生成上采样序列232。对于上采样序列232中的每个中间元素,上采样系统230可以然后通过组合嵌入的输入序列202中的每个表示对中间元素的相应影响来确定中间元素的值,如由预测持续时间212和范围参数222所定义的。
例如,对于上采样序列232的每个中间元素,上采样系统230可以确定嵌入的输入序列202中每个表示的相应分布中的中间元素的值的加权和。在一些实施方式中,可以使用每个分布中中间元素的相应值的和来归一化与上采样输入序列232中的每个表示相对应的权重。
作为特定示例,每个表示的上采样序列232上的分布可以是高斯分布。在该示例中,上采样序列232中的中间元素t的值ut可以通过计算下式来确定:
其中,hi是在嵌入的输入序列202中的表示i的值,wti是在计算中间元素t的值ut时的表示i的权重,N是在嵌入的输入序列202中的表示的数量,并且是在与表示i相对应的中间元素上的分布中中间元素t的值。
每个表示i在中间元素上的分布可以具有使用该表示的预测持续时间212确定的中心ci。中心ci可以与上采样序列232中的预测持续时间212的中心相对应。例如,上采样系统230可以通过计算下式来确定与表示i相对应的分布的中心ci:
其中,di是表示i的预测持续时间,并且每个dj是嵌入的输入序列202中表示i之前的相应表示的预测持续时间。
每个表示i在中间元素上的分布可以具有使用所述表示的范围参数222确定的方差在一些实施方式中,上采样系统230确定为表示i生成的范围参数222等于对应分布的方差/>在一些其他实施方式中,上采样系统230确定生成的范围参数222等于对应分布的标准偏差σi。
在一些实施方式中,根据上采样序列232上的相应分布进行上采样是完全可微分的,从而允许持续时间预测神经网络200与一个或多个下游神经网络(例如解码器神经网络,例如在上面参考图1描述的解码器神经网络130)进行端到端训练。当真实值持续时间不可用并且因此不能使用真实值持续时间以监督方式训练持续时间预测神经网络200时,该可区分性可能特别重要。
如上文参考图1所述,在一些实施方式中,持续时间预测神经网络200将上采样序列232中的每个中间元素与相应的位置嵌入组合。
在一些其他实施方式中,持续时间预测神经网络200在对嵌入的输入序列202进行上采样以生成上采样序列232之前,将位置嵌入合并到嵌入的输入序列202中的表示中(例如,通过将位置嵌入附加到表示)。因为上采样序列232中的每个中间元素可以是嵌入的输入序列202中所述表示的线性组合(其中,根据上述分布确定线性组合),因此附加到所述表示的位置嵌入也可以线性组合以为上采样序列232中的每个中间元素生成相应不同的位置嵌入。换句话说,持续时间预测神经网络200可以通过计算下式来确定上采样序列232中每个中间元素的相应位置嵌入pt:
其中,qi是嵌入的输入序列202中第i个表示的位置嵌入,并且wti被如上定义。
在一些实施方式中,持续时间预测子网210和范围预测子网220与一个或多个其他神经网络并发被训练,一个或多个其他神经网络例如是以下的一个或多个:编码器神经网络(例如,上文参考图1描述的编码器神经网络110),其被配置为从输入序列生成嵌入的输入序列202;解码器神经网络(例如,上文参考图1描述的解码器神经网络130),其被配置为从上采样序列232生成音频特征集合;或者,声码器神经网络(例如,作为上文参考图1描述的声码器系统140的组件的声码器神经网络),其被配置为从上采样序列232生成的音频特征集合生成输出音频序列。
例如,如上文参考图1所述,可以使用嵌入的输入序列202中的每个表示的真实值持续时间来训练持续时间预测子网210和范围预测子网220。
作为另一个示例,可以在不具有对包括真实值持续时间的任何训练示例的访问或具有对非常少的包括真实值持续时间的训练示例的访问的情况下训练持续时间预测子网210和范围预测子网220。将在下面参考图3更详细地描述使用无监督或半监督学习来训练持续时间预测神经网络200的示例技术。
图3是示例训练系统300的图。训练系统300是其中可以实现以下描述的系统、组件和技术的在一个或多个位置的一个或多个计算机上实现为计算机程序的系统的示例。
训练系统300被配置为生成用于神经网络的机器学习参数,该神经网络被配置为处理输入文本序列302并生成表征正在说出的输入文本序列302的音频数据的梅尔频谱图352。例如,神经网络可以是神经网络系统(例如,上文参考图1描述的神经网络系统100)的组件,其被配置为使用声码器系统(例如,上面参考图1描述的声码器系统140)从梅尔频谱图352生成输出音频序列。
神经网络包括编码器神经网络310、方向预测神经网络340和解码器神经网络350。
训练系统300被配置为使用在训练数据存储库301中存储的训练数据集来训练神经网络。训练数据集包括多个训练示例,每个训练示例包括(i)训练输入文本序列302和(ii)表示表征说出训练输入文本序列302的说话者的音频数据的真实值音频特征304集合。然而,这些训练示例不包括训练输入文本序列302的文本元素的真实值持续时间。
为了在不具有对真实值持续时间的访问的情况下训练神经网络,训练系统300可以修改神经网络的架构以添加(i)音频特征嵌入神经网络320和(ii)基于注意力的神经网络330。
音频特征嵌入神经网络320和基于注意力的神经网络330被配置为处理真实值音频特征304并从真实值音频特征304中提取潜伏特征332,以指导没有真实值持续时间的神经网络的训练。例如,音频特征嵌入神经网络320和基于注意力的神经网络330可以充分利用隐式编码到真实值音频特征304中的持续时间信息。
训练输入文本序列302包括用于多个输入时间步长中的每一个的相应文本元素。
真实值音频特征304包括用于多个中间时间步长中的每一个的相应音频特征集合,其中,中间时间步长的数量大于输入时间步长的数量。真实值音频特征304可以包括表征输出音频序列的任何适当特征。例如,真实值音频特征304可以包括例如从说出训练输入文本序列302的说话者的真实值输出音频序列生成的输出音频序列的梅尔频谱图。代替地或附加地,真实值音频特征可以包括从真实值输出音频序列生成的对数频谱图、真实值输出音频序列的波形特征或真实值输出音频序列的音高轮廓特征。代替地或附加地,真实值音频特征可以包括被配置为合成输出音频序列的声码器的声码器参数。
对于每个训练示例,训练系统100可以使用编码器神经网络310处理训练输入文本序列302以生成修改的输入序列312,其包括训练文本序列302的每个文本元素的相应表示。例如,编码器神经网络310可以类似于上文参考图1描述的编码器神经网络110来配置。
训练系统300可以使用音频特征嵌入神经网络320处理真实值音频特征304以生成嵌入的音频特征集合,其对于由真实值音频特征304表示的每个中间时间步长包括对应的音频特征304的嵌入。在真实值音频特征304包括梅尔频谱图的实施方式中,音频特征嵌入神经网络320有时被称为频谱图嵌入神经网络。例如,音频特征嵌入神经网络320可以包括一个或多个卷积神经网络层,其被配置为将卷积核应用于真实值音频特征304的序列(或其处理版本)以生成嵌入音频特征322的序列。作为另一个示例,音频特征嵌入神经网络320可以包括一个或多个递归神经网络层,例如,一个或多个双向LSTM神经网络层,其被配置为递归地处理真实值音频特征304的序列以生成嵌入音频特征的序列。
训练系统300然后可以使用基于注意力的神经网络330处理(i)修改的输入序列312和(ii)嵌入的音频特征322以生成输出音频序列的潜伏特征332集合。该潜伏特征332集合包括与每个输入时间步长相对应——即与修改的输入序列312的每个表示相对应——的相应特征集。因为基于注意力的神经网络330“组合”了修改的输入序列312和嵌入音频特征322以生成潜伏特征332,基于注意力的神经网络330有时被称为组合神经网络。
基于注意力的神经网络330可以使用一个或多个注意力神经网络层来处理修改的输入序列312和嵌入的音频特征322以对齐两个输入。具体而言,对于修改的输入序列312中的每个表示,基于注意力的神经网络可以通过在与每个中间时间步长相对应的相应嵌入音频特征322上应用注意力机制来生成相应的注意力输出。也就是说,基于注意力的神经网络330可以为每个输入时间步长i确定:
ci=Attn(hi,fspec(Y*))
其中,ci是输入时间步长i的注意力输出;Attn是一种注意力机制,例如点积注意力或缩放点积注意力;hi是与输入时间步长i相对应的修改的输入序列312中的表示,并用作对于注意力机制的查询;Y*是真实值音频特征304集合;并且fspec表示音频特征嵌入神经网络320的输出,并且用作注意力机制的值。
在一些实施方式中,一个或多个注意力神经网络层可以是多头注意力神经网络层,其接收层输入,将多个不同的注意力机制应用于层输入以生成相应的注意力输出集合,并组合相应的注意力输出以生成最终的注意力输出集合。例如,多头注意力神经网络层可以并行应用多个不同的注意力机制。
基于注意力的神经网络330然后可以处理(i)修改的输入序列312和(ii)与修改的输入序列312中的相应表示相对应的生成的注意力输出,以生成潜伏特征332。例如,基于注意力的神经网络330可以使用变分自动编码器处理两个输入。作为特定示例,变分自动编码器可以是条件变分自动编码器,其以修改的输入序列312为条件。变分自动编码器可以具有高斯先验,例如N(0,1)。
例如,基于注意力的神经网络330可以使用证据下限(ELBO)优化变分自动编码器:
其中,H是修改的输入序列312,Z是后验潜伏特征332,第一项是先验和后验之间的KL散度,并且第二项可以通过从后验抽取样本来近似。
然后,训练系统300可以例如通过连结来组合(i)修改的输入序列312和(ii)真实值音频特征304的潜伏特征332(以及可选地,输出音频序列应该属于的类的标识,如上所述),以生成对于持续时间预测神经网络340的输入,其可以被称为训练修改输入序列。
持续时间预测神经网络340然后可以处理训练修改输入序列以生成修改的输入序列312中每个表示的预测持续时间,并根据预测持续时间对修改的输入序列312进行上采样以生成中间序列342,其包括每个中间时间步长的相应的中间元素。例如,可以类似于上文参考图1描述的持续时间预测神经网络120或上文参考图2描述的持续时间预测神经网络200来配置持续时间预测神经网络340。
因此,即使没有真实值持续时间来指导训练,训练系统300也可以使用真实值音频特征304来向持续时间预测神经网络340提供信息以帮助训练持续时间预测神经网络340。
在一些实施方式中,训练系统300可以关于中间序列342的中间元素的总持续时间执行“教师强制”。尽管对于输入文本序列302中的每个文本元素真实值持续时间不可用,但是输出音频序列的总持续时间可以是已知的,并且训练系统300可以强制中间序列342的持续时间匹配输出音频序列的真实值总持续时间。如果由持续时间预测神经网络340确定的修改的输入序列312中的表示的预测持续时间的总和与中间序列342的所需的总持续时间不同,则持续时间神经网络340可以修改在上采样前的表示的相应的预测持续时间。例如,持续时间预测神经网络340可以根据中间序列342的所需持续时间与预测持续时间的总和之间的比率来缩放每个表示的预测持续时间。因此,训练系统300可以强制由神经网络生成的梅尔频谱图352与对应的真实值梅尔频谱图具有相同的大小,这在确定梅尔频谱图352的错误时是有帮助的。
因为在推理时音频特征304的真实值集合不可用,所以在这些实施方式中,在推理时,神经网络可以通过下述方式生成持续时间预测神经网络340的输入:组合——例如连结——(i)修改的输入序列312和(ii)根据潜伏特征332的先验分布确定的特征集合。先验分布可以是例如上述变分自动编码器的先验,例如高斯先验。
例如,特征集可以是先验分布的模式,或者也可以是从先验分布中随机采样的。作为特定示例,先验分布的模式可以是零向量。
解码器神经网络350可以处理中间序列以生成表征输出音频序列的梅尔频谱图352。例如,可以与上面参考图1描述的解码器神经网络130类似地配置解码器神经网络350。如上所述,尽管在图3中描绘为生成梅尔频谱图352,但是通常解码器神经网络350可以被配置为处理中间序列342以生成任何适当的音频特征集合的对应序列。
训练引擎360可以确定对以下中的一个或多个中的每一个的参数更新362:编码器神经网络310、音频特征嵌入神经网络320、基于注意力的神经网络330、持续时间预测神经网络340或解码器神经网络350。在一些实施方式中,训练引擎360确定每个神经网络的参数更新362。在一些其他实施方式中,一个或多个神经网络已经被预训练,并且训练系统300在其他神经网络的训练期间冻结它们的参数值。
训练引擎360可以使用损失函数来确定参数更新,该损失函数包括表征预测的梅尔频谱图(以及可选地,初始梅尔频谱图)中的错误的第一项。作为特定示例,第一项可以是(或成正比于)上文参考图1标识的项中的一个。作为另一个特定示例,第一项可以是(或成正比于)上面识别的ELBO表达式的第二项,即,
作为替代或补充,损失函数可以包括表征输出音频序列的总预测持续时间(即,所有预测持续时间的总和)中的错误的第二项。即,尽管输入文本序列302中的每个文本元素的真实值持续时间不可用,但是输出音频序列的总持续时间可以是已知的并且可以与例如梅尔频谱图352的总持续时间进行比较。作为特定的例子,第二项可以是(或成正比于):
其中,N是修改的输入序列312中表示的数量,T是中间时间步长数量,di表示修改的输入序列中表示i的预测持续时间,并且||·||2是L2损失。
作为替代或补充,损失函数可以包括表征在基于注意力的神经网络330中的变分自动编码器的KL散度损失的第三项。作为特定示例,第三项可以是(或成正比于)上面标识的ELBO表达式的第一项,即
在一些实施方式中,训练数据存储库301除了包括没有真实值持续时间的训练示例之外,还包括一个或多个包括真实值持续时间的标记训练示例。在这些实施方式中,当处理标记的训练示例时,训练系统300可以确定损失函数,该损失函数至少包括表征由持续时间预测神经网络340生成的预测持续时间中的错误的第四项,例如,上面参考图1标识的项。
在训练系统300已经训练了神经网络之后,可以将神经网络部署在任何适当的设置中,例如,在数据中心中或边缘设备上,如上文参考图1所述。
图4是用于使用神经网络系统处理输入文本序列以生成输出音频序列的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的神经网络系统,例如图1中描绘的神经网络系统100,可以执行过程400。
系统获得输入文本序列(步骤402)。输入文本序列可以在多个输入时间步长中的每一个处包括相应的文本元素。例如,每个文本元素表示字符、音素或词。作为替代或补充,每个文本元素可以包括从由输入文本序列表示的文本数据导出的语言特征集合。
系统使用第一神经网络处理输入文本序列以生成修改的输入序列(步骤404)。对于多个输入时间步长中的每一个,修改的输入序列可以包括输入文本序列中对应文本元素的表示。例如,第一神经网络可以是上面参考图1描述的编码器神经网络110。作为另一个示例,第一神经网络可以包括上面参考图3描述的编码器神经网络310、音频特征嵌入神经网络320和基于注意力的神经网络330。
例如,对于输入文本序列中的每个文本元素,系统可以获得该文本元素的预定嵌入。然后系统可以使用第一神经网络处理文本元素的预定嵌入以生成修改的输入序列。
在一些实施方式中,第一神经网络包括以下的一个或多个:一个或多个卷积神经网络层、一个或多个单向LSTM神经网络层或一个或多个双向LSTM神经网络层。
在一些实施方式中,系统可以使用第一神经网络来处理输入文本序列以生成初始修改输入序列,其包括在每个输入时间步长处的相应初始表示。然后系统可以例如通过将初始表示与类的标识连结起来而针对每个初始表示将初始表示与输出音频序列应该属于的类的标识相组合。例如,每个类都可以对应于输出音频序列听起来应该像的扬声器。
系统使用第二神经网络处理修改的输入序列以针对每个输入时间步长生成输出音频序列中对应文本元素的预测持续时间(步骤406)。
例如,第二神经网络可以是上面参考图1描述的持续时间神经网络120;上文参考图2描述的持续时间神经网络200;或上文参考图3描述的持续时间预测神经网络340。
例如,第二神经网络可以包括以下的一个或多个:一个或多个卷积神经网络层;一个或多个单向LSTM神经网络层;一个或多个双向LSTM神经网络层;或,输出投影层,其被配置为接收针对修改的输入序列中的每个表示的相应层输入,并为修改的输入序列中的每个表示生成预测持续时间。
系统根据预测持续时间对修改的输入序列进行上采样以生成中间序列(步骤408)。中间序列可以在多个中间时间步长中的每一个处包括相应的中间元素。
在一些实施方式中,系统可以针对修改的输入序列中的每个表示,根据该表示的预测持续时间来确定中间序列上的分布。然后,系统可以通过确定所述表示的加权和来生成中间序列中的每个中间元素,其中,根据在与所述表示相对应的中间序列上的分布中的中间元素的值来加权每个表示。例如,每个相应表示的分布可以是高斯分布,其中,高斯分布的中心与所述表示的预测持续时间的中心相对应。
在一些这样的实施方式中,可以通过使用第四神经网络——例如,上文参考图2描述的持续时间预测神经网络200的范围预测子网220——处理修改的输入序列来生成每个相应表示的高斯分布的方差。例如,系统可以将修改的输入序列中的每个表示与该表示的预测持续时间相组合以生成相应的组合表示。该系统可以使用第四神经网络处理组合表示以生成每个表示的高斯分布的相应方差。作为特定示例,第四神经网络可以包括以下的一个或多个:一个或多个卷积神经网络层;一个或多个单向LSTM神经网络层;一个或多个双向LSTM神经网络层;或,输出投影层,其被配置为针对修改的输入序列中的每个表示接收相应的层输入,并为修改的输入序列中的每个表示生成高斯分布的相应方差。
在一些实施方式中,系统可以对修改的输入序列进行上采样以生成包括在每个中间时间步长处的相应上采样表示的上采样序列。通过对于上采样文本序列中的每个上采样表示将上采样表示与上采样表示中的位置嵌入组合,系统可以从上采样序列生成中间序列。例如,上采样表示的位置嵌入可以识别在与修改的输入序列中的相同表示相对应的上采样表示的子序列中的上采样表示的位置。
系统使用中间序列生成输出音频序列(步骤410)。输出音频序列可以包括在多个输出时间步长中的每一个处的相应音频样本。在一些实施方式中,输出时间步长与中间时间步长相同。
例如,系统可以使用第三神经网络处理中间序列以生成梅尔频谱图,该梅尔频谱图包括在每个中间时间步长处的相应谱图帧。然后系统可以处理梅尔频谱图以生成输出音频序列。例如,第三神经网络可以是上面参考图1描述的解码器神经网络130或上面参考图3描述的解码器神经网络350。
在第一处理时间步长,系统可以使用第三神经网络处理中间序列中的第一中间元素以生成梅尔频谱图的第一帧。在多个后续处理时间步长中的每一个处,系统可以使用第三神经网络处理i)中间序列中相应的后续中间元素和ii)在先前处理时间步长中生成的梅尔频谱图的先前帧,以生成梅尔频谱图的后续帧。作为特定示例,第三神经网络可以包括以下的一个或多个:一个或多个卷积神经网络层;一个或多个单向LSTM神经网络层;一个或多个双向LSTM神经网络层;或,输出投影层,其被配置为接收层输入并生成梅尔频谱图的后续帧。
例如,系统可以使用一个或多个完全连接的神经网络层来处理先前的频谱图帧,以生成先前帧的嵌入,例如,在上面参考图3描述的解码器神经网络130的“前网”的一个或多个完全连接的神经网络层。然后系统可以使用第三神经网络处理i)中间序列中的后续中间元素和ii)先前帧的嵌入,以生成梅尔频谱图的后续帧。
作为特定示例,系统可以连结i)中间序列中的后续中间元素和ii)先前帧的嵌入,以生成第一连结表示;以及使用第三神经网络的第一子网处理第一连结表示以生成第一连结表示的嵌入。例如,第一子网可以包括一个或多个单向LSTM神经网络层。然后系统可以连结i)中间序列中的后续中间元素和ii)第一连结表示的嵌入,以生成第二连结表示;以及使用第三神经网络的第二子网处理第二连结表示,以生成梅尔频谱图的后续帧。例如,第二子网可以包括输出投影神经网络层,例如前馈神经网络层,其被配置为生成梅尔频谱图的后续帧。
在一些实施方式中,为了生成梅尔频谱图,系统可以使用第三神经网络的第三子网处理中间序列以生成初始梅尔频谱图。例如,第三子网可以包括第一子网和第二子网。系统然后可以使用第三神经网络的第四子网来处理初始梅尔频谱图以生成梅尔频谱图。例如,第四子网可以包括一个或多个卷积神经网络层,例如,上文参考图3描述的解码器神经网络130的“后网”的一个或多个卷积神经网络层。
在一些实施方式中,第一神经网络、第二神经网络和第三神经网络已经被并发训练。在一些这样的实施方式中,可以在没有修改的输入序列中的表示的任何真实值持续时间的情况下训练神经网络。
例如,训练系统可以获得训练输入文本序列,其包括在多个训练输入时间步长中的每一个处的相应训练文本元素。训练系统可以使用第一神经网络的第一子网(例如,上文参考图3描述的编码器神经网络310)来处理训练输入文本序列以生成训练输入文本序列的嵌入。训练系统可以获得与训练输入文本序列相对应的真实值梅尔频谱图。训练系统可以使用第一神经网络的第二子网(例如,上面参考图3描述的音频特征嵌入神经网络320)来处理真实值梅尔频谱图以生成真实值梅尔频谱图的嵌入。训练系统可以组合i)训练输入文本序列的嵌入和ii)真实值梅尔频谱图的嵌入,以生成训练修改输入序列,对于每个训练输入时间步长,所述练修改输入序列包括训练输入文本序列中对应训练文本元素的表示。训练系统然后可以使用第二神经网络(例如,持续时间预测神经网络340)处理训练修改输入序列以针对训练修改输入序列中的每个表示生成该表示的预测持续时间。
作为特定示例,训练系统可以通过使用第一神经网络——例如,上文参考图3描述的基于注意力的神经网络330——的第三子网处理两个嵌入i)训练输入文本序列的嵌入和ii)真实值梅尔频谱图的嵌入,来将所述两个嵌入组合。
本说明书结合系统和计算机程序组件使用术语“被配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使得系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
本说明书中描述的主题和功能操作的实施例可以被实现在数字电子电路系统中、在有形地实施的计算机软件或固件中、在计算机硬件中——包括本说明书中公开的结构及其结构等同物——或在它们的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即在有形非暂时性存储介质上编码的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。替代地或补充地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”指代数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。所述装置也可以是或进一步包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,所述装置还可以可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序,其也可以被称为或被描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码,可以以任何形式的编程语言编写,该任何形式的编程语言包括编译或解释语言或者声明性或过程语言;并且该计算机程序可以以任何形式部署,包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。程序可以但不需要与文件系统中的文件相对应。程序可以被存储在保存其他程序或数据的文件的一部分中,例如在标记语言文档中存储的一个或多个脚本中,在专用于所涉及的程序的单个文件中,或者在多个协同文件中,例如在存储一个或多个模块、子程序或代码部分的文件中。计算机程序可以被部署为在一个计算机上或在位于一个站点或跨多个地点分布并通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广泛用于指代任何数据集合:数据不需要以任何特定方式进行结构化,或者根本不需要结构化,并且它可以被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。
类似地,在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为在一个或多个位置中安装的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在相同的一个或多个计算机上安装和运行多个引擎
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路系统——例如FPGA或ASIC——或专用逻辑电路系统和一个或多个可编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于实施或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路系统补充或并入专用逻辑电路系统中。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,所述一个或多个大容量存储设备用于存储数据,例如是磁盘、磁光盘或光盘。然而,计算机不需要这样的设备。此外,计算机可以被嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,此处仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及,CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备——例如,CRT(阴极射线管)或LCD(液晶显示器)监视器——和用户可以通过其向计算机提供输入的键盘以及指点设备——例如,鼠标或轨迹球——的计算机上实现。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过下述方式来与用户交互:向由用户使用的设备发送文档和从由用户使用的设备接收文档;例如,响应于从Web浏览器接收的请求将网页发送到用户设备上的Web浏览器。此外,计算机可以通过向个人设备——例如,正在运行消息收发应用的智能电话——发送文本消息或其他形式的消息并且从用户接收响应消息作为回报来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集部分,即推断、工作负载。
可以使用机器学习框架——例如,TensorFlow框架、Microsoft认知工具包(Microsoft Cognitive Toolkit)框架、Apache Singa框架或Apache MXNet框架——来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以被实现在计算系统中,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面、Web浏览器或应用的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信——例如,通信网络——互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据——例如,HTML页面——发送到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从用户接收用户输入的目的。可以在服务器处从所述设备接收在用户设备处生成的数据,例如,用户交互的结果。
除上述实施例外,以下实施例也具有创新性:
实施例1是一种用于从输入文本序列生成输出音频序列的方法,其中,所述输入文本序列包括多个输入时间步长中的每一个处的相应文本元素,并且所述输出音频序列包括多个输出时间步长中的每一个处的相应音频样本,所述方法包括:
使用第一神经网络处理所述输入文本序列以生成修改的输入序列,对于所述多个输入时间步长中的每一个,所述输入序列包括所述输入文本序列中的所述对应文本元素的表示;
使用第二神经网络处理所述修改的输入序列,以针对每个输入时间步长生成在所述输出音频序列中所述对应文本元素的预测持续时间;
根据所述预测持续时间对所述修改的输入序列进行上采样,以生成中间序列,所述中间序列包括多个中间时间步长中的每一个处的相应中间元素;以及
使用所述中间序列生成所述输出音频序列。
实施例2是实施例1的方法,其中,使用所述第一神经网络处理所述输入文本序列以生成所述修改的输入序列包括:
为所述输入文本序列中的每个文本元素获取所述文本元素的预定嵌入;以及
使用所述第一神经网络处理所述多个文本元素的所述预定嵌入以生成所述修改的输入序列。
实施例3是实施例1或2中任一项的方法,其中,所述第一神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;或者
一个或多个双向LSTM神经网络层。
实施例4是实施例1至3中任一项的方法,其中,使用第一神经网络处理所述输入文本序列以生成所述修改的输入序列包括:
使用所述第一神经网络处理所述输入文本序列以生成初始修改输入序列,所述初始修改输入序列包括所述多个输入时间步长中的每一个处的相应初始表示;以及
从所述初始修改输入序列生成所述修改的输入序列,包括针对所述初始修改输入序列中的每个初始表示,将所述初始表示与所述输出音频序列应该属于的类的标识相组合。
实施例5是实施例4的方法,其中,每个类与所述输出音频序列听起来应该像的说话者相对应。
实施例6是实施例1至5中任一项的方法,其中,所述第二神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;
一个或多个双向LSTM神经网络层;或者
输出投影层,其被配置为针对所述修改的输入序列中的每个表示接收相应的层输入,并为所述修改的输入序列中的每个表示生成所述预测持续时间。
实施例7是实施例1至6中任一项的方法,其中,根据所述预测持续时间对所述修改的输入序列进行上采样以生成中间序列包括:
根据所述表示的所述预测持续时间,为所述修改的输入序列中的每个表示确定在所述中间序列上的分布;以及
对于在所述中间序列中的每个中间元素,通过确定所述表示的加权和来生成所述中间元素,其中,根据在与所述表示相对应的所述中间序列上的所述分布中的所述中间元素的值来加权每个表示。
实施例8是实施例7的方法,其中,每个相应表示的所述分布是高斯分布,其中,所述高斯分布的中心与所述表示的所述预测持续时间的中心相对应。
实施例9是实施例8的方法,其中,特定表示的所述高斯分布的所述中心是:
其中,ci是所述特定表示的所述高斯分布的所述中心,di是所述特定表示的所述预测持续时间,并且每个dj是所述修改的输入序列中的所述特定表示之前的相应表示的所述预测持续时间。
实施例10是实施例8或9中任一项的方法,其中,通过使用第四神经网络处理所述修改的输入序列来生成每个相应表示的所述高斯分布的方差。
实施例11是实施例10的方法,其中,使用所述第四神经网络处理所述修改的输入序列包括:
对于所述修改的输入序列中的每个表示,将所述表示与所述表示的所述预测持续时间相组合以生成相应的组合表示;以及
使用所述第四神经网络处理所述组合表示,以为每个表示生成所述高斯分布的所述相应方差。
实施例12是实施例10或11中任一项的方法,其中,所述第四神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;
一个或多个双向LSTM神经网络层;或者
输出投影层,其被配置为针对所述修改的输入序列中的每个表示接收相应的层输入,并为所述修改的输入序列中的每个表示生成所述高斯分布的所述相应方差。
实施例13为实施例1至12中任一项的方法,其中,对所述修改的输入序列进行上采样以生成中间序列包括:
对所述修改的输入序列进行上采样以生成包括在所述多个中间时间步长中的每一个处的相应上采样表示的上采样序列;以及
从所述上采样序列生成所述中间序列,包括针对所述上采样文本序列中的每个上采样表示将所述上采样表示与所述上采样表示的位置嵌入组合。
实施例14是实施例13的方法,其中,上采样表示的所述位置嵌入识别所述上采样表示在与所述修改的输入序列中的所述相同表示相对应的上采样表示的子序列中的位置。
实施例15是实施例1至14中任一项的方法,其中,所述第一神经网络和所述第二神经网络已经被并发训练。
实施例16是实施例1至15中任一项的方法,其中,使用所述中间序列生成所述输出音频序列包括:
使用第三神经网络处理所述中间序列以生成梅尔频谱图,所述梅尔频谱图包括所述多个中间时间步长中的每一个处的相应谱图帧;以及
处理所述梅尔频谱图以生成所述输出音频序列。
实施例17是实施例16的方法,其中,使用第三神经网络处理所述中间序列以生成梅尔频谱图包括:
在处理时间步长序列中的第一处理时间步长处,使用所述第三神经网络处理在所述中间序列中的第一中间元素以生成所述梅尔频谱图的第一帧;以及
在处理时间步长的所述序列中的每个后续处理时间步长处使用第三神经网络处理i)所述中间序列中的后续中间元素和ii)在先前处理时间步长中生成的所述梅尔频谱图的先前帧,以生成所述梅尔频谱图的后续帧。
实施例18是实施例17的方法,其中,所述第三神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;
一个或多个双向LSTM神经网络层;或者
输出投影层,其被配置为接收层输入并生成所述梅尔频谱图的所述后续帧。
实施例19是实施例17或18中任一项的方法,其中,使用所述第三神经网络处理i)所述中间序列中的所述后续中间元素和ii)所述梅尔频谱图的所述先前帧包括:
使用一个或多个全连接神经网络层处理所述先前帧以生成所述先前帧的嵌入;以及
使用所述第三神经网络处理i)所述中间序列中的所述后续中间元素和ii)所述先前帧的所述嵌入,以生成所述梅尔频谱图的所述后续帧。
实施例20是实施例19的方法,其中,使用所述第三神经网络处理i)所述中间序列中的所述后续中间元素和ii)所述先前帧的所述嵌入包括:
连结i)所述中间序列中的所述后续中间元素和ii)所述先前帧的所述嵌入,以生成第一连结表示;
使用所述第三神经网络的第一子网处理所述第一连结表示以生成所述第一连结表示的嵌入;
连结i)所述中间序列中的所述后续中间元素和ii)所述第一连结表示的所述嵌入以生成第二连结表示;以及
使用所述第三神经网络的第二子网处理所述第二连结表示以生成所述梅尔频谱图的所述后续帧。
实施例21,是实施例16至20中任一项的方法,其中,使用所述第三神经网络处理所述中间序列以生成所述梅尔频谱图包括:
使用所述第三神经网络的第三子网处理所述中间序列以生成初始梅尔频谱图;以及
使用所述第三神经网络的第四子网处理所述初始梅尔频谱图以生成所述梅尔频谱图。
实施例22是实施例21的方法,其中,所述第三神经网络的所述第四子网包括一个或多个卷积神经网络层。
实施例23是实施例16至22中任一项的方法,其中,所述第一神经网络、所述第二神经网络和所述第三神经网络已经被并发训练。
实施例24是实施例23的方法,其中,使用包括以下中的一个或多个的损失项来训练所述神经网络:
第一项,表征所述修改的输入序列中的所述表示的所述预测持续时间中的错误;或者
第二项,表征所生成的梅尔频谱图中的错误。
实施例25是实施例24的方法,其中,所述第一项是:
其中,N是所述修改的输入序列中的表示的数量,d表示所述预测持续时间,d*表示真实值持续时间,并且||·||2是L2损失。
实施例26是实施例24或25中任一项的方法,其中,所述第二项是:
其中,T是中间时间步长的数量,K是在所述梅尔频谱图中表示的频率的数量,yt是所述生成的梅尔频谱图,yt*是真实值的梅尔频谱图,||·||1是L1损失,||·||2是L2损失。
实施例27是实施例24或25中任一项的方法,其中,所述第二项表征以下两者中的错误:i)所述生成的梅尔频谱图和ii)由所述第三神经网络生成的初始梅尔频谱图,其中,通过使用所述第三神经网络的第四子网处理所述初始梅尔频谱图生成所述梅尔频谱图。
实施例28是实施例27的方法,其中,所述第二项是:
其中,T是中间时间步长的数量,K是所述梅尔频谱图中表示的频率的数量,yt’是所述初始梅尔频谱图,yt是所述生成的梅尔频谱图,yt*是真实值梅尔频谱图,‖·‖1是L1损失,并且‖·‖2是L2损失。
实施例29是实施例23至28中任一项的方法,其中,所述训练包括教师强制使用所述修改的输入序列中的每个表示的真实值持续时间。
实施例30是实施例23的方法,其中,所述训练包括训练所述神经网络,而没有针对所述修改的输入序列中的表示的任何真实值持续时间。
实施例31是实施例30的方法,其中,所述训练包括:
在多个训练输入时间步长中的每一个处获得包括相应训练文本元素的训练输入文本序列;
使用所述第一神经网络的第一子网处理所述训练输入文本序列以生成所述训练输入文本序列的嵌入;
获得与所述训练输入文本序列相对应的真实值梅尔频谱图;
使用所述第一神经网络的第二子网处理所述真实值梅尔频谱图以生成所述真实值梅尔频谱图的嵌入;
组合i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入,以生成训练修改输入序列,对于所述多个训练输入时间步长中的每一个,所述训练修改输入序列包括在所述训练输入文本序列中的所述对应训练文本元素的表示;以及
使用所述第二神经网络处理所述训练修改输入序列以针对在所述训练修改输入序列中的每个表示生成所述表示的预测持续时间。
实施例32是实施例31的方法,其中,组合i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入包括:使用所述第一神经网络的第三子网处理i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入。
实施例33是实施例32的方法,其中,使用所述第一神经网络的所述第三子网处理i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入包括:
使用一个或多个注意神经网络层对齐i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入;
使用变分自动编码器处理所述真实值梅尔频谱图的所述对齐嵌入,以生成所述真实值梅尔频谱图的对齐潜伏特征;以及
连结i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述对齐潜伏特征。
实施例34是实施例33的方法,其中,所述变分自动编码器是以所述训练输入文本序列的所述嵌入为条件的条件变分自动编码器。
实施例35是实施例31至34中任一项的方法,其中,在推理时,生成所述修改的输入序列包括:
使用所述第一神经网络的所述第一子网处理所述输入文本序列以生成所述输入文本序列的嵌入;以及
组合i)所述输入文本序列的所述嵌入和ii)梅尔频谱图的先验分布的模式以生成所述修改的输入序列。
实施例36是实施例35的方法,其中,所述梅尔频谱图的所述先验分布的所述模式是零向量。
实施例37是实施例31至36中任一项的方法,其中,使用包括以下中的一个或多个的损失项来训练所述神经网络:
第一项,表征所述生成的梅尔频谱图中的错误;
第二项,表征所述输出音频序列的总预测持续时间中的错误;或者
第三项,表征所述第一神经网络的第三子网的变分自动编码器的KL散度损失。
实施例38是实施例37的方法,其中,所述第一项是:
其中,T是中间时间步长的数量,K是在所述梅尔频谱图中表示的频率的数量,yt是所述生成的梅尔频谱图,yt*是真实值的梅尔频谱图,‖·‖1是L1损失,并且‖·‖2是L2损失。
实施例39是实施例37的方法,其中,所述第一项表征以下两者中的错误:i)所述生成的梅尔频谱图和ii)由所述第三神经网络生成的初始梅尔频谱图,其中,通过使用所述第三神经网络的第四子网处理所述初始梅尔频谱图生成所述梅尔频谱图。
实施例40是实施例39的方法,其中,所述第一项是:
其中,T是中间时间步长的数量,K是在所述梅尔频谱图中表示的频率的数量,yt’是所述初始梅尔频谱图,yt是所述生成的梅尔频谱图,yt*是真实值的梅尔频谱图,‖·‖1是L1损失,并且‖·‖2是L2损失。
实施例41是实施例37至40中任一项的方法,其中,所述第二项是:
其中,N是所述修改的输入序列中的表示的数量,T是中间时间步长的数量,di表示所述修改的输入序列中表示i的所述预测持续时间,并且‖·‖2是L2损失。
实施例42是实施例1至41中任一项的方法,其中,所述多个中间时间步长与所述多个输出时间步长相同。
实施例43是实施例1至42中任一项的方法,其中:
每个文本元素表示字符;
每个文本元素表示音素;
每个文本元素表示词;或者
每个文本元素包括从输入文本得出的多个语言特征。
实施例44是一种系统,包括一个或多个计算机和一个或多个存储指令的存储设备,当由所述一个或多个计算机执行指令时,使所述一个或多个计算机执行实施例1至实施例43中任一项的方法。
实施例45是用计算机程序编码的一个或多个非暂时性计算机存储介质,所述程序包括指令,所述指令当由数据处理装置执行时可操作以使所述数据处理装置执行实施例1至实施例43中任一项的方法。
虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对任何发明的范围或可以要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从所要求保护的组合中切除来自所述组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中描绘了操作并且以特定次序在权利要求中叙述了操作,但是这不应该被理解为要求以所示的特定次序或按次序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在权利要求中记载的动作可以以不同的次序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或连续次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
Claims (45)
1.一种用于从输入文本序列生成输出音频序列的方法,其中,所述输入文本序列包括多个输入时间步长中的每一个处的相应文本元素,并且所述输出音频序列包括多个输出时间步长中的每一个处的相应音频样本,所述方法包括:
使用第一神经网络处理所述输入文本序列以生成修改的输入序列,对于所述多个输入时间步长中的每一个,所述修改的输入序列包括所述输入文本序列中的对应文本元素的表示;
使用第二神经网络处理所述修改的输入序列,以针对每个输入时间步长生成在所述输出音频序列中的所述对应文本元素的预测持续时间;
根据所述预测持续时间对所述修改的输入序列进行上采样,以生成中间序列,所述中间序列包括多个中间时间步长中的每一个处的相应中间元素;以及
使用所述中间序列生成所述输出音频序列。
2.根据权利要求1所述的方法,其中,使用所述第一神经网络处理所述输入文本序列以生成所述修改的输入序列包括:
针对所述输入文本序列中的每个文本元素获取所述文本元素的预定嵌入;以及
使用所述第一神经网络处理所述多个文本元素的所述预定嵌入以生成所述修改的输入序列。
3.根据权利要求1或2中任一项所述的方法,其中,所述第一神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;或者
一个或多个双向LSTM神经网络层。
4.根据权利要求1至3中任一项所述的方法,其中,使用第一神经网络处理所述输入文本序列以生成所述修改的输入序列包括:
使用所述第一神经网络处理所述输入文本序列以生成初始修改输入序列,所述初始修改输入序列包括所述多个输入时间步长中的每一个处的相应初始表示;以及
从所述初始修改输入序列生成所述修改的输入序列,包括:针对所述初始修改输入序列中的每个初始表示,将所述初始表示与所述输出音频序列应该属于的类的标识相组合。
5.根据权利要求4所述的方法,其中,每个类与所述输出音频序列听起来应该像的说话者相对应。
6.根据权利要求1至5中任一项所述的方法,其中,所述第二神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;
一个或多个双向LSTM神经网络层;或者
输出投影层,所述输出投影层被配置为针对所述修改的输入序列中的每个表示来接收相应的层输入,并针对所述修改的输入序列中的每个表示来生成所述预测持续时间。
7.根据权利要求1至6中任一项所述的方法,其中,根据所述预测持续时间对所述修改的输入序列进行上采样以生成中间序列包括:
根据所述表示的所述预测持续时间,针对所述修改的输入序列中的每个表示,确定在所述中间序列上的分布;以及
对于在所述中间序列中的每个中间元素,通过确定所述表示的加权和来生成所述中间元素,其中,根据在与所述表示相对应的所述中间序列上的所述分布中的所述中间元素的值来加权每个表示。
8.根据权利要求7所述的方法,其中,每个相应表示的所述分布是高斯分布,其中,所述高斯分布的中心与所述表示的所述预测持续时间的中心相对应。
10.根据权利要求8或9中任一项所述的方法,其中,通过使用第四神经网络处理所述修改的输入序列来生成每个相应表示的所述高斯分布的方差。
11.根据权利要求10所述的方法,其中,使用所述第四神经网络处理所述修改的输入序列包括:
对于所述修改的输入序列中的每个表示,将所述表示与所述表示的所述预测持续时间相组合以生成相应的组合表示;以及
使用所述第四神经网络处理所述组合表示,以针对每个表示来生成所述高斯分布的所述相应方差。
12.根据权利要求10或11中任一项所述的方法,其中,所述第四神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;
一个或多个双向LSTM神经网络层;或者
输出投影层,所述输出投影层被配置为针对所述修改的输入序列中的每个表示来接收相应的层输入,并针对所述修改的输入序列中的每个表示来生成所述高斯分布的所述相应方差。
13.根据权利要求1至12中任一项所述的方法,其中,对所述修改的输入序列进行上采样以生成中间序列包括:
对所述修改的输入序列进行上采样,以生成包括在所述多个中间时间步长中的每一个处的相应上采样表示的上采样序列;以及
从所述上采样序列生成所述中间序列,包括:针对所述上采样文本序列中的每个上采样表示,将所述上采样表示与所述上采样表示的位置嵌入相组合。
14.根据权利要求13所述的方法,其中,上采样表示的所述位置嵌入识别在与所述修改的输入序列中的所述相同表示相对应的上采样表示的子序列中的所述上采样表示的位置。
15.根据权利要求1至14中任一项所述的方法,其中,所述第一神经网络和所述第二神经网络已经被并发地训练。
16.根据权利要求1至15中任一项所述的方法,其中,使用所述中间序列生成所述输出音频序列包括:
使用第三神经网络处理所述中间序列以生成梅尔频谱图,所述梅尔频谱图包括所述多个中间时间步长中的每一个处的相应频谱图帧;以及
处理所述梅尔频谱图以生成所述输出音频序列。
17.根据权利要求16所述的方法,其中,使用第三神经网络处理所述中间序列以生成梅尔频谱图包括:
在处理时间步长序列中的第一处理时间步长处,使用所述第三神经网络处理在所述中间序列中的第一中间元素,以生成所述梅尔频谱图的第一帧;以及
在处理时间步长的所述序列中的每个后续处理时间步长处,使用第三神经网络处理i)所述中间序列中的后续中间元素和ii)在先前处理时间步长中生成的所述梅尔频谱图的先前帧,以生成所述梅尔频谱图的后续帧。
18.根据权利要求17所述的方法,其中,所述第三神经网络包括以下中的一个或多个:
一个或多个卷积神经网络层;
一个或多个单向LSTM神经网络层;
一个或多个双向LSTM神经网络层;或者
输出投影层,所述输出投影层被配置为接收层输入并生成所述梅尔频谱图的所述后续帧。
19.根据权利要求17或18中任一项所述的方法,其中,使用所述第三神经网络处理i)所述中间序列中的所述后续中间元素和ii)所述梅尔频谱图的所述先前帧包括:
使用一个或多个全连接神经网络层处理所述先前帧,以生成所述先前帧的嵌入;以及
使用所述第三神经网络处理i)所述中间序列中的所述后续中间元素和ii)所述先前帧的所述嵌入,以生成所述梅尔频谱图的所述后续帧。
20.根据权利要求19所述的方法,其中,使用所述第三神经网络处理i)所述中间序列中的所述后续中间元素和ii)所述先前帧的所述嵌入包括:
连结i)所述中间序列中的所述后续中间元素和ii)所述先前帧的所述嵌入,以生成第一连结表示;
使用所述第三神经网络的第一子网处理所述第一连结表示,以生成所述第一连结表示的嵌入;
连结i)所述中间序列中的所述后续中间元素和ii)所述第一连结表示的所述嵌入,以生成第二连结表示;以及
使用所述第三神经网络的第二子网处理所述第二连结表示,以生成所述梅尔频谱图的所述后续帧。
21.根据权利要求16至20中任一项所述的方法,其中,使用所述第三神经网络处理所述中间序列以生成所述梅尔频谱图包括:
使用所述第三神经网络的第三子网处理所述中间序列,以生成初始梅尔频谱图;以及
使用所述第三神经网络的第四子网处理所述初始梅尔频谱图,以生成所述梅尔频谱图。
22.根据权利要求21所述的方法,其中,所述第三神经网络的所述第四子网包括一个或多个卷积神经网络层。
23.根据权利要求16至22中任一项所述的方法,其中,所述第一神经网络、所述第二神经网络和所述第三神经网络已经被并发地训练。
24.根据权利要求23所述的方法,其中,使用包括以下中的一个或多个的损失项来训练所述神经网络:
第一项,表征所述修改的输入序列中的所述表示的所述预测持续时间中的错误;或者
第二项,表征生成的梅尔频谱图中的错误。
27.根据权利要求24或25中任一项所述的方法,其中,所述第二项表征以下两者中的错误:i)所述生成的梅尔频谱图和ii)由所述第三神经网络生成的初始梅尔频谱图,其中,通过使用所述第三神经网络的第四子网处理所述初始梅尔频谱图来生成所述梅尔频谱图。
29.根据权利要求23至28中任一项所述的方法,其中,所述训练包括:教师强制使用所述修改的输入序列中的每个表示的真实值持续时间。
30.根据权利要求23所述的方法,其中,所述训练包括:在没有针对所述修改的输入序列中的表示的任何真实值持续时间的情况下,训练所述神经网络。
31.根据权利要求30所述的方法,其中,所述训练包括:
在多个训练输入时间步长中的每一个处获得包括相应训练文本元素的训练输入文本序列;
使用所述第一神经网络的第一子网处理所述训练输入文本序列以生成所述训练输入文本序列的嵌入;
获得与所述训练输入文本序列相对应的真实值梅尔频谱图;
使用所述第一神经网络的第二子网处理所述真实值梅尔频谱图以生成所述真实值梅尔频谱图的嵌入;
组合i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入,以生成训练修改输入序列,对于所述多个训练输入时间步长中的每一个,所述训练修改输入序列包括在所述训练输入文本序列中的对应训练文本元素的表示;以及
使用所述第二神经网络处理所述训练修改输入序列,以针对在所述训练修改输入序列中的每个表示生成所述表示的预测持续时间。
32.根据权利要求31所述的方法,其中,组合i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入包括:使用所述第一神经网络的第三子网来处理i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入。
33.根据权利要求32所述的方法,其中,使用所述第一神经网络的所述第三子网来处理i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入包括:
使用一个或多个注意力神经网络层,来对齐i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述嵌入;
使用变分自动编码器处理所述真实值梅尔频谱图的所对齐的嵌入,以生成所述真实值梅尔频谱图的对齐潜伏特征;以及
连结i)所述训练输入文本序列的所述嵌入和ii)所述真实值梅尔频谱图的所述对齐潜伏特征。
34.根据权利要求33所述的方法,其中,所述变分自动编码器是以所述训练输入文本序列的所述嵌入为条件的条件变分自动编码器。
35.根据权利要求31至34中任一项所述的方法,其中,在推理时,生成所述修改的输入序列包括:
使用所述第一神经网络的所述第一子网处理所述输入文本序列以生成所述输入文本序列的嵌入;以及
组合i)所述输入文本序列的所述嵌入和ii)梅尔频谱图的先验分布的模式,以生成所述修改的输入序列。
36.根据权利要求35所述的方法,其中,梅尔频谱图的所述先验分布的模式是零向量。
37.根据权利要求31至36中任一项所述的方法,其中,使用包括以下中的一个或多个的损失项来训练所述神经网络:
第一项,表征生成的梅尔频谱图中的错误;
第二项,表征所述输出音频序列的总预测持续时间中的错误;或者
第三项,表征所述第一神经网络的第三子网的变分自动编码器的KL散度损失。
39.根据权利要求37所述的方法,其中,所述第一项表征以下两者中的错误:i)所述生成的梅尔频谱图和ii)由所述第三神经网络生成的初始梅尔频谱图,其中,通过使用所述第三神经网络的第四子网处理所述初始梅尔频谱图来生成所述梅尔频谱图。
42.根据权利要求1至41中任一项所述的方法,其中,所述多个中间时间步长与所述多个输出时间步长相同。
43.根据权利要求1至42中任一项所述的方法,其中:
每个文本元素表示字符;
每个文本元素表示音素;
每个文本元素表示词;或者
每个文本元素包括从输入文本得出的多个语言特征。
44.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令当由所述一个或多个计算机执行时,使所述一个或多个计算机执行权利要求1至43中任一项所述的相应方法的操作。
45.存储指令的一个或多个非暂时性计算机存储介质,所述指令当由一个或多个计算机执行时使所述一个或多个计算机执行权利要求1至43中任一项所述的相应方法的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063087162P | 2020-10-02 | 2020-10-02 | |
US63/087,162 | 2020-10-02 | ||
PCT/US2021/053417 WO2022072936A2 (en) | 2020-10-02 | 2021-10-04 | Text-to-speech using duration prediction |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116235247A true CN116235247A (zh) | 2023-06-06 |
Family
ID=78463954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180063748.4A Pending CN116235247A (zh) | 2020-10-02 | 2021-10-04 | 使用持续时间预测的文本到语音 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220108680A1 (zh) |
EP (1) | EP4189671A2 (zh) |
CN (1) | CN116235247A (zh) |
WO (1) | WO2022072936A2 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11902811B2 (en) * | 2021-03-08 | 2024-02-13 | Mitsubishi Electric Research Laboratories, Inc. | Multi-band Wi-Fi fusion for WLAN sensing |
US20240119922A1 (en) * | 2022-09-27 | 2024-04-11 | Tencent America LLC | Text to speech synthesis without using parallel text-audio data |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10872598B2 (en) * | 2017-02-24 | 2020-12-22 | Baidu Usa Llc | Systems and methods for real-time neural text-to-speech |
US11017761B2 (en) * | 2017-10-19 | 2021-05-25 | Baidu Usa Llc | Parallel neural text-to-speech |
US10872596B2 (en) * | 2017-10-19 | 2020-12-22 | Baidu Usa Llc | Systems and methods for parallel wave generation in end-to-end text-to-speech |
US10741169B1 (en) * | 2018-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Text-to-speech (TTS) processing |
US11017763B1 (en) * | 2019-12-12 | 2021-05-25 | Amazon Technologies, Inc. | Synthetic speech processing |
-
2021
- 2021-10-01 US US17/492,543 patent/US20220108680A1/en active Pending
- 2021-10-04 EP EP21801332.4A patent/EP4189671A2/en active Pending
- 2021-10-04 WO PCT/US2021/053417 patent/WO2022072936A2/en unknown
- 2021-10-04 CN CN202180063748.4A patent/CN116235247A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220108680A1 (en) | 2022-04-07 |
EP4189671A2 (en) | 2023-06-07 |
WO2022072936A3 (en) | 2022-05-12 |
WO2022072936A2 (en) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11929059B2 (en) | Method, device, and computer readable storage medium for text-to-speech synthesis using machine learning on basis of sequential prosody feature | |
CN108597492B (zh) | 语音合成方法和装置 | |
EP3857543B1 (en) | Conversational agent pipeline trained on synthetic data | |
US11080591B2 (en) | Processing sequences using convolutional neural networks | |
US11450313B2 (en) | Determining phonetic relationships | |
WO2018151125A1 (ja) | 単語ベクトル化モデル学習装置、単語ベクトル化装置、音声合成装置、それらの方法、及びプログラム | |
KR20220000391A (ko) | 순차적 운율 특징을 기초로 기계학습을 이용한 텍스트-음성 합성 방법, 장치 및 컴퓨터 판독가능한 저장매체 | |
Gutkin et al. | TTS for low resource languages: A Bangla synthesizer | |
US20230009613A1 (en) | Training Speech Synthesis to Generate Distinct Speech Sounds | |
CN114207706A (zh) | 使用组合的韵律信息经由神经网络生成声学序列 | |
CN112634866B (zh) | 语音合成模型训练和语音合成方法、装置、设备及介质 | |
CN116235247A (zh) | 使用持续时间预测的文本到语音 | |
US11322133B2 (en) | Expressive text-to-speech utilizing contextual word-level style tokens | |
EP4035085A1 (en) | Training neural networks to generate structured embeddings | |
US20170352344A1 (en) | Latent-segmentation intonation model | |
US11830475B2 (en) | Predicting spectral representations for training speech synthesis neural networks | |
US20230252974A1 (en) | End-to-end speech waveform generation through data density gradient estimation | |
Chowdhury | A soft computing approach for on-line automatic speech recognition in highly non-stationary acoustic environments | |
Van Niekerk et al. | A target approximation intonation model for Yorubá TTS | |
Yu | Statistical Models for Dealing with Discontinuity of Fundamental Frequency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |