使用对抗神经网络的联合自动语音识别和文本到语音转换的制作方法

文档序号:29035154发布日期:2022-02-25 18:08阅读:113来源:国知局
使用对抗神经网络的联合自动语音识别和文本到语音转换的制作方法

1.本公开总体上涉及计算语言学,并且更具体地涉及自动语音识别和文本到语音转换。


背景技术:

2.计算语言学中的两种常见且广泛部署的技术是自动语音识别(asr)和文本到语音(tts)转换。然而,没有公共系统用于同时训练和/或部署两个系统。当前的基于端对端深度学习的asr和tts系统需要成对(文本和音频)样本,但难以大量获得所述成对样本来适当训练任一系统。


技术实现要素:

3.在一些实施例中,本文公开了使用基于端对端深度学习的系统对上述问题的解决方案,所述基于端对端深度学习的系统可以使用未配对的文本和音频样本来联合解决asr和tts问题两者。所述系统包括对抗训练方法以生成可以单独或同时部署的更稳健的独立tts神经网络和asr神经网络。
4.一个或多个计算机的系统可以被配置为通过将软件、固件、硬件或它们的组合安装在系统上来执行特定操作或动作,所述软件、固件、硬件或它们的组合在操作中使系统执行所述动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,所述指令在由数据处理设备执行时使所述设备执行所述动作。一个总体方面包括一种用于训练文本到语音(tts)神经网络和自动语音识别(asr)神经网络的方法。所述方法可以包括接收第一文本样本作为所述tts神经网络的输入,以及使用所述tts神经网络生成表示所述第一文本样本的第一音频样本。由所述tts神经网络输出的所述第一音频样本可以被馈送到所述asr神经网络中,所述asr神经网络可以生成表示所述第一音频样本的第二文本样本。计算基于第一文本样本(馈送到tts神经网络中)与第二文本样本(由asr神经网络输出)之间的差值的损失。将第二音频样本输入到所述asr神经网络,并且通过所述asr神经网络生成表示所述第二音频样本的第三文本样本。由所述asr神经网络生成的所述第三音频样本被输入到所述tts神经网络中,所述tts神经网络生成表示所述第三文本样本的第三音频样本。计算基于第二音频样本(输入到asr神经网络中)与第三音频样本(由tts神经网络输出)之间的差值的第二损失。通过基于计算的损失调整每个神经网络的参数来训练tts神经网络和asr神经网络。该方面的其他实施例包括对应的计算机系统、设备和被记录在一个或多个计算机存储装置上的计算机程序,每个计算机程序被配置为执行所述方法的动作。
5.各实现方式可以包括以下一个或多个特征。在一些实施例中,所述tts神经网络包括文本编码器和音频解码器,并且训练tts神经网络包括调整文本编码器的一个或多个参数或者音频解码器的一个或多个参数。在一些实施例中,所述asr神经网络包括音频编码器和文本解码器,并且训练asr神经网络包括调整音频编码器的一个或多个参数或者文本解码器的一个或多个参数。
6.在一些实施例中,asr神经网络可以生成第四文本样本,所述第四文本样本表示被接收作为asr神经网络的输入的第四音频样本。由asr输出的第四文本样本和来自文本源的第五文本样本被提供给文本鉴别器。文本鉴别器可以基于第四文本样本和第五文本样本生成第三损失。可以至少部分地基于由文本鉴别器计算的第三损失来训练asr和/或tts神经网络。在一些实施例中,文本鉴别器输出假文本样本(通过asr神经网络从音频样本生成)的第一值,并且输出真实文本样本(从文本源生成)的第二值。
7.在一些实施例中,tts神经网络可以生成第四音频样本,所述第四音频样本表示被接收作为tts神经网络的输入的第四文本样本。由tts神经网络输出的第四音频样本和来自音频源的第五音频样本被提供给音频鉴别器。音频鉴别器可以基于第四音频样本和第五音频样本生成第三损失。可以至少部分地基于第三损失来训练asr和/或tts神经网络。在一些实施例中,音频鉴别器被训练以输出假文本音频(通过tts神经网络从文本样本生成)的第一值,并且输出真音频样本(从音频源生成)的第二值。
8.在一些实施例中,独立于训练后的asr神经网络部署训练后的tts神经网络。在一些实施例中,训练后的tts和asr神经网络被一起部署到单个装置。所描述技术的实现方式可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。
附图说明
9.通过参考以下附图,可以实现对各种实施例的性质和优点的进一步理解。在附图中,类似的部件或特征可以具有相同的附图标记。此外,相同类型的各种部件可以通过在附图标记之后加上破折号和区分类似部件之间的第二标记来区分。如果在说明书中仅使用第一附图标记,则所述描述适用于具有相同第一附图标记的类似部件中的任一者,而与第二附图标记无关。
10.图1示出了根据一些实施例的训练系统。
11.图2示出了根据一些实施例的具有部署的tts神经网络的用户装置。
12.图3示出了根据一些实施例的具有部署的asr神经网络的用户装置。
13.图4示出了根据一些实施例的在训练的第一循环期间的训练系统。
14.图5示出了根据一些实施例的在训练的第二循环期间的训练系统。
15.图6示出了根据一些实施例的在训练的第三循环期间的训练系统。
16.图7示出了根据一些实施例的在训练的第四循环期间的训练系统。
17.图8示出了根据一些实施例的用于同时对抗性地训练asr和tts神经网络的方法。
18.图9示出了根据一些实施例的计算机系统。
19.图10示出了根据一些实施例的云计算系统。
具体实施方式
20.如上文所讨论的,本文公开了一种用于联合训练文本到语音(tts)系统(例如,神经网络)和自动语音识别(asr)系统(例如,神经网络)的系统和方法。所述系统不需要成对的文本和音频样本来进行训练,并且结果是可以联合或单独部署的稳健的asr和tts系统。用于训练的过程包括四个循环以训练总共6个部件(即,文本编码器、文本解码器、音频编码器、音频解码器、文本鉴别器和音频鉴别器)。使用生成式对抗网络技术,来自asr的输出和
来自tts系统的输出可以用作彼此和鉴别器的输入,以教导asr和tts神经网络在不需要成对样本的情况下稳健地执行。
21.现在转向图1,描绘了训练系统100。训练系统100包括文本语料库105、音频语料库110、文本嵌入器115、音频嵌入器120、tts神经网络125、asr神经网络130、音频鉴别器135、文本鉴别器140、文本损失循环1子系统145、音频gan损失子系统150、文本gan损失子系统155和音频损失循环2子系统160。尽管描绘和描述了训练系统100内的某些部件,但是训练系统100中可以存在更多或更少的部件(诸如例如处理器和存储器)来执行操作。为了便于描述,省略了这些部件。此外,在不脱离本公开的范围的情况下,一些部件可以被合并或分离成更多部件。
22.文本语料库105包括从文本源获取的文本样本。例如,可以包括部分或整本书,诸如例如列夫
·
托尔斯泰的《战争与和平》和丹
·
布朗的《天使与魔鬼》。这些样本的文学类型可以包括所有体裁类型和写作类型。此外,可以包括具有互联网站点上的帖子的文本样本,并且可以包括其他现代文本交际。
23.音频语料库110包括从音频源获取的音频样本。例如,可以包括部分或整本有声读物,诸如例如列夫
·
托尔斯泰的《安娜
·
卡列尼娜》和丹
·
布朗的《起源》。音频样本可以包括音乐样本,然而口头样本可能是优选的。
24.文本嵌入器115接收文本样本并将文本样本嵌入已知的矢量空间中,使得文本嵌入器115的输出是文本嵌入。例如,文本嵌入可以是表示已知的矢量空间中的文本样本的矢量。
25.音频嵌入器120接收音频样本并将音频样本嵌入已知的矢量空间中,使得音频嵌入器120的输出是音频嵌入。音频嵌入可以是表示音频样本的梅尔谱图(mel spectrogram)。
26.tts神经网络125是文本到语音网络,所述文本到语音网络接收文本嵌入作为输入并输出表示文本嵌入的解码后的梅尔谱图。tts神经网络125包括如将参考图2进一步解释的文本编码器和音频解码器。
27.asr神经网络130是自动语音识别网络(也称为自动声音识别系统),所述自动语音识别网络接收音频嵌入(例如,梅尔谱图)作为输入并输出表示音频嵌入的解码后文本嵌入。asr神经网络130包括如将参考图3进一步解释的音频编码器和文本解码器。
28.音频鉴别器135是采用梅尔谱图作为输入的鉴别系统。它被训练以输出从音频样本生成的梅尔谱图的第一值(例如,“真”、“1”等)。音频鉴别器135被进一步训练以输出经由tts神经网络125从文本生成的梅尔谱图的第二值(例如,“假”、“0”等)。
29.文本鉴别器140是采用文本嵌入作为输入的鉴别系统。它被训练以输出从文本样本生成的文本嵌入的第一值(例如,“真”、“1”等)。文本鉴别器140被进一步训练以输出经由asr神经网络130从音频生成的文本嵌入的第二值(例如,“假”、“0”等)。
30.文本损失循环1子系统145是在第一训练循环中使用的第一损失计算子系统。如关于图4更详细地描述的,文本损失循环1子系统145接收来自由文本嵌入器115生成的文本样本的文本嵌入以及在将文本样本传递通过文本嵌入器115、tts神经网络125和asr神经网络130之后从文本样本生成的文本嵌入。文本损失循环1子系统145计算文本嵌入之间的损失,并使用结果来训练tts神经网络125和asr神经网络130的部件。关于图4更详细地描述该过
程。
31.音频损失循环2子系统160是在第二训练循环中使用的第二损失计算子系统。如关于图5更详细地描述的,音频损失循环2子系统160接收来自由音频嵌入器120生成的音频样本的梅尔谱图以及在将音频样本传递通过音频嵌入器120、asr神经网络130和tts神经网络125之后从音频样本生成的梅尔谱图。音频损失循环2子系统160计算梅尔谱图之间的损失,并使用结果来训练tts神经网络125和asr神经网络130的部件。关于图5更详细地描述该过程。
32.文本gan损失子系统155是在第三训练循环中使用的第三损失计算子系统。如关于图6更详细地描述的,文本gan丢失子系统155接收来自文本鉴别器140的输出和来自文本嵌入器115的文本嵌入,所述文本嵌入是“真”文本嵌入。然后,文本gan损失子系统155使用文本鉴别器140结果与文本嵌入之间的差值来生成用于训练文本鉴别器140和asr神经网络130部件的损失。
33.音频gan损失子系统150是在第四训练循环中使用的第四损失计算子系统。如关于图7更详细地描述的,音频gan损失子系统150接收来自音频鉴别器135的输出和来自音频嵌入器120的梅尔谱图,所述梅尔谱图是“真”梅尔谱图。然后,音频gan损失子系统150使用音频鉴别器135结果与梅尔谱图之间的差值来生成用于训练音频鉴别器135和tts神经网络125部件的损失。
34.在对以下附图的描述中提供了如何一起使用训练系统100的所有部件的更详细描述。
35.图2示出了示例性用户装置200。用户装置200可以是用户的计算机、智能电话、平板计算机等。用户装置200可以是如关于图9所描述的计算装置900。用户装置200包括在训练之后已经被部署来提供文本转语音功能性的tts神经网络125。用户装置200包括文本输入子系统205、ui子系统210、扬声器225、文本嵌入器115和tts神经网络125。
36.文本输入子系统205可以是任何输入装置,包括例如键盘、基于屏幕的键盘等。另外,用户可以从文本源中选择文本以经由文本输入子系统205提供作为输入。ui子系统210为用户提供界面以提供和接收来自tts神经网络125的信息。扬声器225可以是用户可以从其中听到声音的任何合适的音频输出装置。
37.tts神经网络125包括文本编码器215,所述文本编码器将文本嵌入作为输入并输出文本隐藏代码(text latent code)。tts神经网络125还包括音频解码器220,所述音频解码器将文本隐藏代码作为输入并输出解码后的梅尔谱图。尽管在tts神经网络125内描述了文本编码器215和音频解码器220的两个部件,但是tts神经网络125可以包括在其中包括文本编码器215和音频解码器220的许多层,包括隐藏层。例如,tts神经网络125可以包括输入层、输出层和一个或多个隐藏层。在所描述的配置中,tts神经网络125接收文本嵌入作为输入并输出表示文本嵌入的解码后的梅尔谱图作为输出。
38.因此,用户可以将文本输入到文本输入子系统205中。ui子系统210可以接收文本输入并将其提供给文本嵌入器115。文本嵌入器115可以生成文本嵌入并将文本嵌入作为输入提供给tts神经网络125。文本编码器215从文本嵌入生成文本隐藏代码,并且音频解码器220从文本隐藏代码生成解码后的梅尔谱图。解码后的梅尔谱图被输出到ui子系统210,所述ui子系统将解码后的梅尔谱图转换成可以由扬声器225输出以供用户收听的音频样本。
在一些实施例中,转换机构(未示出)将解码后的梅尔谱图转换为由ui子系统210使用的音频样本以使用扬声器225进行输出。
39.图3示出了示例性用户装置300。在一些示例中,用户装置300可以与用户装置200相同,并且用户装置200或300可以包括asr神经网络130和tts神经网络125两者。用户装置300可以是用户的计算机、智能电话、平板计算机等。用户装置300可以是如关于图9所描述的计算装置900。用户装置300包括在训练之后已经被部署来提供自动语音识别功能性的asr神经网络130。用户装置300包括音频输入子系统305、ui子系统310、显示器325、音频嵌入器120和asr神经网络130。
40.音频输入子系统305可以是任何输入装置,包括例如传声器、音频选择系统等。例如,用户可以从音频源中选择音频以经由音频输入子系统305提供作为输入。ui子系统310为用户提供界面以提供和接收来自asr神经网络130的信息。显示器325可以是用户可以在其上查看文本的任何合适的文本输出装置。
41.asr神经网络130包括音频编码器315,所述音频编码器采用梅尔谱图作为输入并输出音频隐藏代码。asr神经网络130还包括文本解码器320,所述文本解码器将音频隐藏代码作为输入并输出解码后的文本嵌入。尽管在asr神经网络130内描述了音频编码器315和文本解码器320的两个部件,但是asr神经网络130可以包括在其中包括音频编码器315和文本解码器320的许多层,包括隐藏层。例如,asr神经网络130可以包括输入层、输出层和一个或多个隐藏层。在所描述的配置中,asr神经网络130接收梅尔谱图作为输入并输出表示梅尔谱图的解码后的文本嵌入作为输出。
42.因此,用户可以将音频输入到音频输入子系统305中。ui子系统310可以接收音频输入并将其提供给音频嵌入器120。音频嵌入器120可以生成梅尔谱图并将梅尔谱图作为输入提供给asr神经网络130。音频编码器315从梅尔谱图生成音频隐藏代码,并且文本解码器320从音频隐藏代码生成解码后的文本嵌入。解码后的文本嵌入被输出到ui子系统310,所述ui子系统将解码后的文本嵌入转换成可以由显示器325输出以供用户查看的文本样本。在一些实施例中,转换机构(未示出)用于将文本嵌入转换为文本样本,所述文本样本被提供给ui子系统310以供显示器325输出。
43.在尽管图2和图3中asr神经网络130被示出为独立于tts神经网络125部署,但是asr神经网络130和tts神经网络125可以被部署到单个装置上以同时使用来提供tts服务和asr服务两者。
44.图4示出了训练系统100中的tts神经网络125和asr神经网络130的训练的第一循环。从文本语料库105中选择文本样本,并且文本嵌入器115生成表示文本样本的文本嵌入。文本嵌入被提供给文本损失循环1子系统145和tts神经网络125。
45.第一训练循环的第一部分将由tts神经网络125生成表示文本嵌入的解码后的梅尔谱图。文本编码器215从文本嵌入生成文本隐藏代码,并且音频解码器220从文本隐藏代码生成解码后的梅尔谱图。
46.第一训练循环的第二部分将由asr神经网络130生成表示解码后的梅尔谱图的解码后的文本嵌入。这是通过将tts神经网络125的输出馈送到asr神经网络130的输入中来完成的。因此,来自tts神经网络125的解码后的梅尔谱图被馈送到asr神经网络130中。音频编码器315从解码后的梅尔谱图生成音频隐藏代码,并且文本解码器320从音频隐藏代码生成
解码后的文本嵌入。解码后的文本嵌入被馈送到文本损失循环1子系统145中。
47.如果tts神经网络125和asr神经网络130正常运行,则通过将文本样本传递通过tts神经网络125和asr神经网络130而生成的解码后的文本嵌入将与来自文本嵌入器115的文本嵌入匹配。然而,结果有点像青少年的“电话游戏”。在通过在正排队的下一个人的耳边低声说出相同信息而将所述信息从一个人传递到下一个人之后,一些细节可能会丢失,并且最终结果可能是乱码的无意义句子。因此,文本损失循环1子系统将解码后的文本嵌入与来自文本嵌入器115的文本嵌入进行比较以生成第一循环损失。可以在训练期间多次执行该循环。第一循环损失可以是:
48.l
cycle1
=e[|x
text-p
text
|]
[0049]
在上面的等式中,x
文本
是来自文本源的样本,诸如来自文本语料库105的文本样本。p
文本
是在通过包括tts神经网络125和asr神经网络130的系统的整个循环处理x
文本
之后获得的输出。
[0050]
图5示出了训练系统100中的tts神经网络125和asr神经网络130的训练的第二循环。第二循环与第一循环非常类似,但是相反地从音频样本开始。从音频语料库110中选择音频样本,并且音频嵌入器120生成表示音频样本的梅尔谱图。梅尔谱图被提供给音频损失循环2子系统160和asr神经网络130。
[0051]
第二训练循环的第一部分将由asr神经网络130生成表示梅尔谱图的解码后的文本嵌入。音频编码器315从梅尔谱图生成音频隐藏代码,并且文本解码器320从音频隐藏代码生成解码后的文本嵌入。
[0052]
第二训练循环的第二部分将由tts神经网络125生成表示解码后的文本嵌入的解码后的梅尔谱图。这是通过将asr神经网络130的输出馈送到tts神经网络125的输入中来完成的。因此,来自asr神经网络130的解码后的文本嵌入被馈送到tts神经网络125中。文本编码器215从解码后的文本嵌入生成文本隐藏代码,并且音频解码器220从文本隐藏代码生成解码后的梅尔谱图。解码后的梅尔谱图被馈送到音频损失循环2子系统160。
[0053]
如果tts神经网络125和asr神经网络130正常运行,则通过将音频样本传递通过asr神经网络130和tts神经网络125而生成的解码后的梅尔谱图将与来自音频嵌入器120的梅尔谱图匹配。然而,如在循环1中那样,最终结果可能是乱码的无意义样本。因此,音频损失循环2子系统160将解码后的梅尔谱图与来自音频嵌入器120的梅尔谱图进行比较以生成第二循环损失。还可以在训练期间多次执行该循环。第二循环损失可以是:
[0054]
l
cycle2
=e[|x
audio-p
audio
|]
[0055]
在上面的等式中,x
音频
是来自音频源的样本,诸如来自音频语料库110的音频样本。p
音频
是在通过包括asr神经网络130和tts神经网络125的系统的整个循环处理x
音频
之后获得的输出。
[0056]
图6示出了训练系统100中的tts神经网络125和asr神经网络130的训练的第三循环。在第三循环中,选择来自文本语料库105的文本样本和来自音频语料库110的音频样本。样本不需要彼此相关。
[0057]
音频样本被提供给音频嵌入器120以生成梅尔谱图以便输入给asr神经网络130。音频编码器315生成表示梅尔谱图的音频隐藏代码,并且文本解码器320从音频隐藏代码生成解码后的文本嵌入。解码后的文本嵌入被馈送到文本鉴别器140中。
[0058]
来自文本语料库105的文本样本被提供给文本嵌入器115。文本嵌入器115生成文本嵌入,并将文本嵌入提供给文本鉴别器140和文本gan损失子系统155。
[0059]
文本鉴别器140被训练以输出从文本源中的文本嵌入器115生成的文本嵌入的第一值(例如,“真”、“1”等)。文本鉴别器140还被训练以输出由asr神经网络130生成的解码后的文本嵌入的第二值(例如,“假”、“0”等)。文本鉴别器140生成与来自文本嵌入器115的文本嵌入相关联的并且用于解码后的文本嵌入的输出值。输出值被提供给文本gan损失子系统155。
[0060]
文本gan损失子系统155使用来自文本嵌入器115的文本嵌入信息来确定哪个文本嵌入为“真”(即,来自文本嵌入器115)和哪个文本嵌入为“假”(即,来自asr神经网络130)。文本gan丢失子系统155可以确定文本鉴别器140是否做出正确的确定。由文本gan损失子系统155计算的损失可以用于训练文本鉴别器140和asr神经网络130。
[0061]
文本鉴别器140的第一损失用于训练文本鉴别器140。第一损失可以被描述为:
[0062]
l
text discriminator
=-e
real
[log d(x
realtext
)]-e
fake
[log(1-d(x
fake text
))]
[0063]
在上面的等式中,x
真文本
是来自文本源的样本,诸如来自文本语料库105的文本样本。x
假文本
是在通过asr神经网络130处理(例如,来自音频语料库110的)音频样本之后获得的输出。
[0064]
由文本gan损失子系统155计算的第二损失用于训练asr神经网络130。第二损失可以被描述为:
[0065]
l
text generator
=e
fake
[log(1-d(x
fake text
))]
[0066]
图7示出了训练系统100中的tts神经网络125和asr神经网络130的训练的第四循环。在第四循环中,选择来自文本语料库105的文本样本和来自音频语料库110的音频样本。样本不需要彼此相关。
[0067]
音频样本被提供给音频嵌入器120以生成梅尔谱图以便输入给音频鉴别器135和音频gan损失子系统150。
[0068]
来自文本语料库105的文本样本被提供给文本嵌入器115。文本嵌入器115生成文本嵌入并将文本嵌入提供给tts神经网络125。文本编码器215生成表示文本嵌入的文本隐藏代码,并且音频解码器220从文本隐藏代码生成解码后的梅尔谱图。解码后的梅尔谱图被馈送到音频鉴别器135中。
[0069]
音频鉴别器135被训练以输出从音频源中的音频嵌入器120生成的梅尔谱图的第一值(例如,“真”、“1”等)。音频鉴别器135还被训练以输出由tts神经网络125生成的解码后的梅尔谱图的第二值(例如,“假”、“0”等)。音频鉴别器135生成与来自音频嵌入器120的梅尔谱图相关联的并且用于解码后的梅尔谱图的输出值。输出值被提供给音频gan损失子系统150。
[0070]
音频gan损失子系统150使用来自音频嵌入器120的梅尔谱图信息来确定哪个梅尔谱图为“真”(即,来自音频嵌入器120)以及哪个梅尔谱图为“假”(即,来自tts神经网络125)。音频gan丢失子系统150可以确定音频鉴别器135是否做出正确的确定。由音频gan丢失子系统150计算的损失可以用于训练音频鉴别器135和tts神经网络125。
[0071]
音频鉴别器135的第一损失用于训练音频鉴别器135。第一损失可以被描述为:
[0072]
l
audio discriminator
=-e
real
[log d(x
realaudio
)]-e
fake
[log(1-d(x
fake audio
))]
[0073]
在上面的等式中,x
真音频
是来自音频源的样本,诸如来自音频语料库110的音频样本。x
假音频
是在通过tts神经网络125处理(例如,来自文本语料库105的)文本样本之后获得的输出。
[0074]
由音频gan损失子系统150计算的第二损失用于训练tts神经网络125。第二损失可以被描述为:
[0075]
l
audio generator
=e
fake
[log(1-d(x
fake audio
))]
[0076]
通过将l
文本鉴别器
损失函数最小化来训练文本鉴别器140。通过将损失值提供给文本鉴别器140中并基于损失值调整文本鉴别器140的输出参数来将损失函数最小化,使得在未来执行文本鉴别器140时损失函数最小化。同样地,通过将l
音频鉴别器
损失函数最小化来训练音频鉴别器135。通过将损失值提供到音频鉴别器135中并基于损失值调整音频鉴别器135的输出参数来使得音频鉴别器135的损失函数最小化,使得在未来执行音频鉴别器135时损失函数最小化。通过将总生成损失和循环损失最小化来训练文本编码器215、文本解码器320、音频编码器315和音频解码器220:
[0077]
l
total
=l
cycle1
+l
cycle2
+l
text generator
+l
audio generator
[0078]
总生成损失和循环损失通过将损失值反馈到相应的神经网络中来最小化并且用于调整输出参数,使得神经网络的未来执行将损失值最小化。例如,l
循环1
和l
循环2
被提供给tts神经网络125(即,文本编码器215和音频解码器220)和asr神经网络130(即,音频编码器315和文本解码器320)以调整每个神经网络的输出参数以将神经网络的未来执行中的损失最小化。l
文本生成器
也被反馈到asr神经网络130中,并且l
音频生成器
被反馈到tts神经网络125中以调整输出参数以将损失最小化。
[0079]
gan损失有助于提高文本编码器215、音频编码器315、文本解码器320和音频解码器220的总体生成能力。这是因为tts神经网络125和asr神经网络130不仅必须产生逼真的文本嵌入和梅尔谱图,而且它们还一定会试图欺骗如在损失函数中构造的相应鉴别器。因此,我们不仅依赖于循环损失,而且依赖于生成损失(l
文本生成器
和l
音频生成器
)来训练文本编码器215、音频编码器315、文本解码器320和音频解码器220。这提高了asr神经网络130和tts神经网络125两者的总体输出质量。
[0080]
图8示出了用于训练tts神经网络和asr神经网络的方法800。方法800可以由诸如关于图1描述的训练系统100的计算系统来执行。方法800在步骤805处开始,其中训练系统接收第一文本样本作为tts神经网络的输入。例如,可以从文本语料库105获得文本样本。文本嵌入器115可以生成文本样本的文本嵌入并将文本嵌入提供给tts神经网络125。
[0081]
在步骤810处,tts神经网络可以生成表示第一文本样本的第一音频样本。例如,tts神经网络125可以从文本嵌入器115接收文本样本。tts神经网络125的文本编码器215可以从文本嵌入生成文本隐藏代码,并且音频解码器220可以从文本隐藏代码生成解码后的梅尔谱图。解码后的梅尔谱图可以是表示文本样本的音频样本。
[0082]
在步骤815处,asr神经网络可以生成表示第一音频样本的第二文本样本。例如,来自tts神经网络125的解码后的梅尔谱图可以被提供给asr神经网络130。音频编码器315可以从梅尔谱图生成音频隐藏代码,并且文本解码器320可以从音频隐藏代码生成解码后的文本嵌入。解码后的文本嵌入可以是第二文本样本。
[0083]
在步骤820处,训练系统可以基于第一文本样本与第二文本样本之间的差值来计
算第一损失。例如,文本损失循环1子系统可以基于由文本嵌入器115根据从文本语料库105获得的文本样本创建的文本嵌入与由asr神经网络130从由tts神经网络125根据原始文本样本生成的解码后的梅尔谱图生成的解码后的文本嵌入之间的差值来计算第一损失。
[0084]
在步骤825处,训练系统可以接收第二音频样本作为asr神经网络的输入。例如,可以从音频语料库110获得音频样本。音频嵌入器120可以生成音频样本的梅尔谱图并将梅尔谱图提供给asr神经网络130。
[0085]
在步骤830处,asr神经网络可以生成表示第二音频样本的第三文本样本。例如,音频编码器315可以使用来自音频嵌入器120的梅尔谱图来生成音频隐藏代码。文本解码器320可以生成音频隐藏代码的解码后的文本嵌入。解码后的文本嵌入可以是第三文本样本。
[0086]
在步骤835处,tts神经网络可以生成表示第三文本样本的第三音频样本。例如,可以将解码后的文本嵌入馈送到tts神经网络125中。文本编码器215可以从解码后的文本嵌入生成文本隐藏代码,并且音频解码器220可以从文本隐藏代码生成解码后的梅尔谱图。解码后的梅尔谱图可以是第三音频样本。
[0087]
在步骤840处,训练系统可以基于第二音频样本与第三音频样本之间的差值来计算第二损失。例如,音频损失循环2子系统160可以基于由音频嵌入器120根据从音频语料库110获得的音频样本创建的梅尔谱图与由tts神经网络125从由asr神经网络130根据原始音频样本生成的解码后的文本嵌入生成的解码后的梅尔谱图之间的差值来计算第二损失。
[0088]
在步骤845处,训练系统可以通过至少部分地基于第一损失和第二损失调整tts神经网络的参数来训练tts神经网络。例如,训练系统可以将第一损失和第二损失反馈到tts神经网络125中。tts神经网络125可以调整文本编码器215和音频解码器220的参数以将来自tts神经网络125的未来执行时的损失函数的损失值最小化。
[0089]
在步骤850处,训练系统可以通过至少部分地基于第一损失和第二损失调整asr神经网络的参数来训练asr神经网络。例如,训练系统可以将第一损失和第二损失反馈到asr神经网络130中。asr神经网络130可以调整音频编码器315和文本解码器320的参数以将来自asr神经网络130的未来执行时的损失函数的损失值最小化。
[0090]
用于实施某些实施例的计算环境的示例
[0091]
任何合适的计算系统或计算系统组可以用于执行本文描述的操作。例如,图10示出了云计算系统1000,通过所述云计算系统可以提供训练系统100的功能性的至少一部分。图9描绘了可以作为训练系统100的至少一部分的计算装置900的示例。计算装置900的实现方式可以用于在图1中描绘子系统中的一者或多者。在实施例中,具有与图9所描绘的那些装置(例如,处理器、存储器等)类似的装置的单个训练系统100组合在图1中被描绘为单独子系统的一个或多个操作和数据存储区。
[0092]
图9示出了计算机系统900的示例的框图。计算机系统900可以是本文描述的计算机中的任一者,包括例如训练系统100、用户装置200、用户装置300等。计算装置900可以是或包括例如集成计算机、膝上型计算机、台式计算机、平板计算机、服务器、智能电话或其他电子装置。
[0093]
计算装置900可以包括经由总线905与其他硬件对接的处理器940。可以包括任何合适的有形(和非暂时性)计算机可读介质(诸如ram、rom、eeprom等)的存储器910可以体现配置计算装置900的操作的程序部件(例如,程序代码915)。存储器910可以存储程序代码
915、程序数据917或两者。在一些示例中,计算装置900可以包括输入/输出(“i/o”)接口部件925(例如,用于与显示器945、键盘、鼠标等对接)和附加存储装置930。
[0094]
计算装置900执行程序代码915,所述程序代码将处理器940配置为执行本文描述的操作中的一者或多者。在各种实施例中,程序代码915的示例包括文本嵌入器115、tts神经网络125、音频鉴别器135、音频嵌入器120、asr神经网络130、文本鉴别器140、文本损失循环1子系统145、音频gan损失子系统150、文本gan损失子系统155、音频损失循环2子系统160或执行本文描述的一个或多个操作的任何其他合适的系统或子系统(例如,用于配置交互式用户界面的一个或多个开发系统)。程序代码915可以驻留在存储器910或任何合适的计算机可读介质中,并且可以由处理器940或任何其他合适的处理器执行。
[0095]
计算装置900可以通过执行程序代码915来生成或接收程序数据917。例如,文本样本、音频样本、文本语料库105中的数据、音频语料库110中的数据等等都是可以由计算装置900在程序代码915的执行期间使用的程序数据917的所有示例。
[0096]
计算装置900可以包括网络部件920。网络部件920可以表示促进网络连接的任何部件中的一者或多者。在一些示例中,网络部件920可促进无线连接,并且可包括无线接口诸如ieee 802.11、蓝牙或无线电接口用于访问蜂窝电话网络(例如,用于访问cdma、gsm、umts或其他移动通信网络的收发器/天线)。在其他示例中,网络部件920可以是有线的,并且可以包括诸如以太网、usb或ieee 1394的接口。
[0097]
尽管图9描绘了具有单个处理器940的单个计算装置900,但是所述系统可以包括任何数量的计算装置900和任何数量的处理器940。例如,多个计算装置900或多个处理器940可以通过有线或无线网络(例如,广域网、局域网或互联网)分布。多个计算装置900或多个处理器940可以单独地或彼此协调地执行本公开的任何步骤。
[0098]
在一些实施例中,由训练系统100提供的功能可以由云服务提供商作为云服务提供。例如,图10描绘了提供训练服务的云计算系统1000的示例,所述训练服务可以由跨数据网络1020使用用户装置1025a、1025b和1025c的多个用户订阅者使用。用户装置1025a、1025b和1025c可以是上述车辆105的示例。在该示例中,可在软件即服务(saas)模型下提供训练服务或训练后的tts或asr神经网络。一个或多个用户可以订阅训练服务、训练后的asr神经网络和/或tts神经网络,并且云计算系统执行处理以向订阅者提供训练服务、asr服务和/或tts服务。云计算系统可以包括一个或多个远程服务器计算机1005。
[0099]
远程服务器计算机1005包括用于存储由云计算系统1000使用来提供云服务的程序代码(例如,训练系统100)和程序数据1010或两者的任何合适的非暂时性计算机可读介质。计算机可读介质可以包括能够向处理器提供计算机可读指令或其他程序代码的任何电子、光学、磁性或其他存储装置。计算机可读介质的非限制性示例包括磁盘、存储器芯片、rom、ram、asic、光学存储装置、磁带或其他磁性存储装置、或者处理装置可以从中读取指令的任何其他介质。所述指令可包括由编译器或解译器从以任何合适的计算机程序设计语言(包括例如c、c++、c#、visual basic、java、python、perl、javascript和actionscript)编写的代码生成的处理器特定指令。在各种示例中,服务器计算机1005可以包括易失性存储器、非易失性存储器或它们的组合。
[0100]
服务器1005中的一者或多者执行程序代码1010,所述程序代码将服务器计算机1005的一个或多个处理器配置为执行提供训练服务、asr服务和/或tts服务的操作中的一
者或多者。如图10的实施例中所描绘,一个或多个服务器1005经由训练系统100、asr神经网络130和/或tts神经网络125提供服务。执行本文描述的一个或多个操作的任何其他合适的系统或子系统(例如,用于配置交互式用户界面的一个或多个开发系统)也可以由云计算系统1000来实施。
[0101]
在一些实施例中,云计算系统1000可以通过执行程序代码和/或使用程序数据1010来实施服务,所述服务可以驻留在服务器计算机1005的存储器装置中或任何合适的计算机可读介质中并且可以由服务器计算机1005的处理器或任何其他合适的处理器执行。
[0102]
在一些实施例中,程序数据1010包括本文描述的一个或多个数据集和模型。这些数据集的示例包括文本语料库105和音频语料库110等等。在一些实施例中,数据集、模型和函数中的一者或多者存储在同一存储器装置中。在附加或替代实施例中,本文描述的程序、数据集、模型和功能中的一者或多者存储在可经由数据网络1015访问的不同存储器装置中。
[0103]
云计算系统1000还包括网络接口装置1015,所述网络接口装置实现往返于云计算系统1000的通信。在某些实施例中,网络接口装置1015包括适合于建立与数据网络1020的有线或无线数据连接的任何装置或装置组。网络接口装置1015的非限制性示例包括以太网网络适配器、调制解调器等。训练系统100能够使用网络接口装置1015经由数据网络1020与用户装置1025a、1025b和1025c通信。
[0104]
一般考虑因素
[0105]
尽管已关于本主题的特定方面对本主题进行了详细描述,但是应理解,本领域技术人员在理解前述内容后,可很容易对这些方面做出变更、变化和等效操作。本文阐述了许多具体细节,以提供对所要求保护的主题的透彻理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,未详细描述本领域普通技术人员已知的方法、设备或系统,以免模糊所要求保护的主题。因此,已出于示例而非限制的目的呈现了本公开,并且本公开不排除包括对本主题的此类修改、变化和/或添加,这对于本领域的普通技术人员来说是明显的。
[0106]
除非另有特别说明,否则应理解,在整个本说明书中,利用诸如“处理”、“计算(computing/calculating)”、“确定”和“识别”等术语进行的论述指代计算装置的动作或过程,所述计算装置诸如一个或多个计算机或一个或多个类似的电子计算装置,其操纵或变换表示为计算平台的存储器、寄存器或其他信息存储装置、传输装置或显示装置内的物理电子或磁性量的数据。本文使用的“适于”或“被配置为”意指开放和包容性语言,其不排除适于或被配置为执行附加任务或步骤的装置。另外,“基于”的使用意指开放且包容性的,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于超出所叙述条件或值的附加条件或值。本文包括的标题、列表和编号仅用于方便阐释,并且不意图进行限制。
[0107]
可在此类计算装置的操作中执行本文公开的方法的各方面。本文讨论的一个或多个系统不限于任何特定的硬件架构或配置。计算装置可以包括提供以一个或多个输入为条件的结果的任何合适的部件布置。合适的计算装置包括访问存储的软件的基于多用途微处理器的计算机系统,所述存储的软件将计算系统从通用计算设备编程或配置为实施本主题的一个或多个方面的专用计算设备。任何合适的编程、脚本或其他类型的语言或语言组合
可以用于在用于对计算装置进行编程或配置的软件中实施本文所包含的教导。在以上示例中呈现的框的顺序可以有所变化——例如,各框可以被重新排序、组合和/或分成子框。某些框或过程可以并行地执行。
[0108]
根据本发明,一种用于训练文本到语音(tts)神经网络和自动语音识别(asr)神经网络的方法包括:接收第一文本样本作为所述tts神经网络的输入;使用所述tts神经网络生成表示所述第一文本样本的第一音频样本;使用所述asr神经网络生成表示所述第一音频样本的第二文本样本;基于所述第一文本样本与所述第二文本样本之间的第一差值来计算第一损失;接收第二音频样本作为所述asr神经网络的输入;使用所述asr神经网络生成表示所述第二音频样本的第三文本样本;使用所述tts神经网络生成表示所述第三文本样本的第三音频样本;基于所述第二音频样本与所述第三音频样本之间的第二差值来计算第二损失;通过至少部分地基于所述第一损失和所述第二损失调整所述tts神经网络的参数来训练所述tts神经网络;以及通过至少部分地基于所述第一损失和所述第二损失调整所述asr神经网络的参数来训练所述asr神经网络。
[0109]
根据实施例,所述tts神经网络包括文本编码器和音频解码器,并且其中训练所述tts神经网络包括调整所述文本编码器的一个或多个参数或者所述音频解码器的一个或多个参数。
[0110]
根据实施例,所述asr神经网络包括音频编码器和文本解码器,并且其中训练所述asr神经网络包括调整所述音频编码器的一个或多个参数或者所述文本解码器的一个或多个参数。
[0111]
根据实施例,本发明的特征还在于:使用所述asr神经网络生成表示作为所述asr神经网络的输入接收的第四音频样本的第四文本样本;从文本源接收所述第四文本样本和第五文本样本作为文本鉴别器的输入;由所述文本鉴别器基于所述第四文本样本和所述第五文本样本生成第三损失;至少部分地基于所述第三损失来进一步训练所述tts神经网络;以及至少部分地基于所述第三损失来进一步训练所述asr神经网络。
[0112]
根据实施例,所述文本鉴别器被训练以输出假文本样本的第一值,其中所述假文本样本是从音频样本生成的,并且其中所述文本鉴别器被训练以输出真文本样本的第二值,其中所述真文本样本是从文本源生成的。
[0113]
根据实施例,本发明的特征还在于:使用所述tts神经网络生成表示作为所述tts神经网络的输入接收的第四文本样本的第四音频样本;从音频源接收所述第四音频样本和第五音频样本作为音频鉴别器的输入;由所述音频鉴别器基于所述第四音频样本和所述第五音频样本生成第三损失;至少部分地基于所述第三损失来进一步训练所述tts神经网络;以及至少部分地基于所述第三损失来进一步训练所述asr神经网络。
[0114]
根据实施例,所述音频鉴别器被训练以输出假音频样本的第一值,其中所述假音频样本是从文本样本生成的,并且其中所述音频鉴别器被训练以输出真音频样本的第二值,其中所述真音频样本是从音频源生成的。
[0115]
根据实施例,上述发明的特征还在于:部署所述训练后的tts神经网络。
[0116]
根据实施例,上述发明的特征还在于:部署所述训练后的asr神经网络。
[0117]
根据本发明,提供了一种系统,所述系统具有:文本到语音(tts)神经网络;自动语音识别(asr)神经网络;一个或多个处理器;以及存储器,所述存储器上存储有指令,所述指
令在由所述一个或多个处理器执行时使所述一个或多个处理器:提供第一文本样本作为所述tts神经网络的输入;从所述tts神经网络接收表示所述第一文本样本的第一音频样本;提供所述第一音频样本作为所述asr神经网络的输入;从所述asr神经网络接收表示所述第一音频样本的第二文本样本;基于所述第一文本样本与所述第二文本样本之间的第一差值来计算第一损失;提供第二音频样本作为所述asr神经网络的输入;从所述asr神经网络接收表示所述第二音频样本的第三文本样本;提供所述第三文本样本作为所述tts神经网络的输入;从所述tts神经网络接收表示所述第三文本样本的第三音频样本;基于所述第二音频样本与所述第三音频样本之间的第二差值来计算第二损失;通过至少部分地基于所述第一损失和所述第二损失调整所述tts神经网络的参数来训练所述tts神经网络;以及通过至少部分地基于所述第一损失和所述第二损失调整所述asr神经网络的参数来训练所述asr神经网络。
[0118]
根据实施例,所述tts神经网络包括文本编码器和音频解码器,并且其中用于训练所述tts神经网络的所述指令包括在由所述一个或多个处理器执行时使所述一个或多个处理器调整所述文本编码器的一个或多个参数或者所述音频解码器的一个或多个参数的指令。
[0119]
根据实施例,所述asr神经网络包括音频编码器和文本解码器,并且其中用于训练所述asr神经网络的所述指令包括在由所述一个或多个处理器执行时使所述一个或多个处理器调整所述音频编码器的一个或多个参数或者所述文本解码器的一个或多个参数的指令。
[0120]
根据实施例,所述指令包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的另外的指令:从所述asr神经网络接收表示作为所述asr神经网络的输入提供的第四音频样本的第四文本样本;从文本源提供所述第四文本样本和第五文本样本作为文本鉴别器的输入;从所述文本鉴别器接收基于所述第四文本样本和所述第五文本样本的第三损失;至少部分地基于所述第三损失来进一步训练所述tts神经网络;以及至少部分地基于所述第三损失来进一步训练所述asr神经网络。
[0121]
根据实施例,所述文本鉴别器被训练以输出假文本样本的第一值,其中所述假文本样本是从音频样本生成的,并且其中所述文本鉴别器被训练以输出真文本样本的第二值,其中所述真文本样本是从文本源生成的。
[0122]
根据实施例,所述指令包括在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作的另外的指令:从所述tts神经网络接收表示作为所述tts神经网络的输入提供的第四文本样本的第四音频样本;从音频源提供所述第四音频样本和第五音频样本作为音频鉴别器的输入;从所述音频鉴别器接收基于所述第四音频样本和所述第五音频样本的第三损失;至少部分地基于所述第三损失来进一步训练所述tts神经网络;以及至少部分地基于所述第三损失来进一步训练所述asr神经网络。
[0123]
根据实施例,所述音频鉴别器被训练以输出假音频样本的第一值,其中所述假音频样本是从文本样本生成的,并且其中所述音频鉴别器被训练以输出真音频样本的第二值,其中所述真音频样本是从音频源生成的。
[0124]
根据实施例,独立地部署所述训练后的asr神经网络和所述训练后的tts神经网络。
[0125]
根据实施例,部署所述训练后的asr神经网络和所述训练后的tts神经网络在单个装置上使用。
[0126]
根据本发明,提供了一种系统,所述系统具有:文本到语音(tts)神经网络;自动言语辨识(asr)神经网络;文本鉴别器;以及音频鉴别器,其中使用包括所述文本鉴别器和所述音频鉴别器的生成式对抗网络同时训练所述tts神经网络和所述asr神经网络。
[0127]
根据实施例,独立地部署所述asr神经网络和所述tts神经网络。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1