一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种合成语音的方法、装置、终端及存储介质与流程

2021-09-07 21:15:00 来源:中国专利 TAG:终端 合成 语音 装置 方法


1.本技术属于语音合成技术领域,尤其涉及一种合成语音的方法、装置、终端及存储介质。


背景技术:

2.随着深度学习的发展,目前端到端的语音合成技术已经可以产生高质量的语音。相比较参数语音合成与拼接语音合成这两种传统的语音合成方法,端到端的语音合成方法不需要对语音进行复杂的建模,同时可以产生更加自然的语音。
3.然而,现有的端到端的语音合成模型通常分为自回归式的模型和非自回归式的模型。其中,自回归式的模型是指模型的输出是一步一步的输出,即每一步的输出会依赖于之前的输出。因此,该模型无论是在训练过程中,还是实际使用过程中,都非常耗时,合成语音的效率低。非自回归式的模型是指模型的输出属于全并行的输出,这种模型虽然合成语音的速度快,但是由于该模型需要蒸馏,导致该模型最终合成的语音质量很低。
4.因此,急需一种无论是在训练过程中,还是实际使用过程中都耗时少、合成语音的效率高,且合成的语音质量高的端到端的语音合成模型。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种合成语音的方法、装置、终端及存储介质,实现了无论是在训练过程中,还是实际使用过程中都耗时少,且合成语音的效率高、合成的语音质量高。
6.本技术实施例的第一方面提供了一种合成语音的方法,该方法包括:
7.获取文本信息;
8.将所述文本信息输入到已训练的频谱生成模型中进行处理,得到所述文本信息对应的梅尔谱图,所述频谱生成模型为无需蒸馏的非自回归式的模型,所述频谱生成模型包括编码器、长度预测网络以及解码器,其中,所述解码器的训练过程和实际使用过程是逆运算的过程;
9.基于所述梅尔谱图,生成所述文本信息对应的语音信息。
10.可选地,所述解码器包括依次连接的正太分布函数层、split层、coupling block层、affine xform层、invertible linear层、reshape层。
11.可选地,所述将所述文本信息输入到已训练的频谱生成模型中进行处理,得到所述文本信息对应的梅尔谱图,包括:
12.通过所述编码器对所述文本信息进行编码,得到所述文本信息对应的文本向量;
13.通过所述长度预测网络对所述文本向量进行预测,得到所述文本向量对应的语音的频谱长度;
14.将所述文本向量以及所述频谱长度输入所述解码器进行解码处理,得到所述梅尔谱图。
15.可选地,所述将所述文本向量以及所述频谱长度输入所述解码器进行解码处理,得到所述梅尔谱图,包括:
16.通过所述正太分布函数层对所述频谱长度进行处理,得到正太分布的第一特征向量;
17.将所述第一特征向量输入所述split层进行处理,得到第二特征向量;
18.基于所述coupling block层、所述affine xform层以及所述invertible linear层,对所述文本向量以及所述第二特征向量进行可逆变换,得到第三特征向量;
19.通过所述reshape层对所述第三特征向量进行数据重组,得到所述梅尔谱图。
20.可选地,所述将所述文本信息输入到已训练的频谱生成模型中进行处理,得到所述文本信息对应的梅尔谱图之前,所述方法还包括:
21.获取样本训练集,所述样本训练集包括多个样本文本、每个样本文本对应的样本梅尔谱图以及每个样本梅尔谱图对应的样本频谱长度;
22.通过初始编码器对每个样本文本进行编码,得到每个样本文本对应的样本文本向量;
23.通过初始长度预测网络对每个样本文本向量进行预测,得到每个样本文本向量对应的语音的实际频谱长度;
24.将所述每个样本文本向量、所述每个样本文本向量对应的语音的实际频谱长度以及所述每个样本文本对应的样本梅尔谱图,输入到初始解码器中进行处理,得到每个样本文本对应的正太分布的样本特征向量;
25.根据预设的损失函数计算损失值;
26.当所述损失值不满足预设条件时,调整所述初始长度预测网络和/或所述初始解码器的参数,并基于所述样本训练集继续训练;
27.当所述损失值满足所述预设条件时,停止训练,并基于训练后的初始编码器、训练后的初始长度预测网络以及训练后的初始解码器生成所述频谱生成模型。
28.可选地,所述invertible linear层损失值包括第一损失值和第二损失值,所述第一损失值为每个样本文本向量对应的语音的实际频谱长度与每个样本文本向量对应的样本频谱长度之间的损失值,所述第二损失值基于每个样本文本对应的正太分布的样本特征向量确定。
29.可选地,所述基于所述梅尔谱图,生成所述文本信息对应的语音信息,包括:
30.将所述梅尔谱图输入到已训练的神经声码器中进行处理,得到所述语音信息。
31.本技术实施例的第二方面提供了一种合成语音的装置,包括:
32.获取单元,用于获取文本信息;
33.处理单元,用于将所述文本信息输入到已训练的频谱生成模型中进行处理,得到所述文本信息对应的梅尔谱图,所述频谱生成模型为无需蒸馏的非自回归式的模型,所述频谱生成模型包括编码器、长度预测网络以及解码器,其中,所述解码器的训练过程和实际使用过程是逆运算的过程;
34.生成单元,用于基于所述梅尔谱图,生成所述文本信息对应的语音信息。
35.本技术实施例的第三方面提供了一种合成语音的终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执
行所述计算机程序时实现如上述第一方面所述的合成语音的方法的步骤。
36.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的合成语音的方法的步骤。
37.本技术实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在合成语音的终端上运行时,使得该终端执行上述第一方面所述的合成语音的方法的步骤。
38.本技术实施例提供的一种合成语音的方法、装置、终端及存储介质,具有以下有益效果:
39.获取文本信息;将该文本信息输入到已训练的频谱生成模型中进行处理,得到该文本信息对应的梅尔谱图,该频谱生成模型为无需蒸馏的非自回归式的模型,该频谱生成模型包括编码器、长度预测网络以及解码器,其中,该解码器的训练过程和实际使用过程是逆运算的过程;基于该梅尔谱图,生成该文本信息对应的语音信息。上述方案中,将获取到的文本信息输入到已训练的频谱生成模型中进行处理,得到该文本信息对应的梅尔谱图,由于该生成模型为无需蒸馏的非自回归式的模型,即该频谱生成模型的输出属于全并行的输出,提升了该频谱生成模型生成梅尔谱图的速率,进而提升了语音合成的速度。进一步地,由于该频谱生成模型中的解码器的训练过程和实际使用过程是逆运算的过程,使解码器学习到了如何更准确、快速地提取文本信息对应的梅尔谱图,进而使得基于该梅尔谱图生成的语音质量高。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
41.图1是本技术一示例性实施例提供的合成语音的方法的示意性流程图;
42.图2是本技术一示例性实施例示出频谱生成模型的网络结构示意图;
43.图3是本技术一示例性实施例示出的合成语音的方法的步骤s102的具体流程图;
44.图4是本技术一示例性实施例示出的耦合层网络结构示意图;
45.图5为本技术的另一个实施例提供的一种合成语音的方法的示意流程图;
46.图6是本技术一实施例提供的一种合成语音的装置的示意图;
47.图7是本技术另一实施例提供的合成语音的终端的示意图。
具体实施方式
48.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
49.在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本技术
实施例的描述中,“多个”是指两个或多于两个。
50.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
51.随着深度学习的发展,目前端到端的语音合成技术已经可以产生高质量的语音。相比较参数语音合成与拼接语音合成这两种传统的语音合成方法,端到端的语音合成方法不需要对语音进行复杂的建模,同时可以产生更加自然的语音。
52.然而,现有的端到端的语音合成模型通常分为自回归式的模型和非自回归式的模型。其中,自回归式的模型是指模型的输出是一步一步的输出,即每一步的输出会依赖于之前的输出。因此,该模型无论是在训练过程中,还是实际使用过程中,都非常耗时,合成语音的效率低。非自回归式的模型是指模型的输出属于全并行的输出,这种模型虽然合成语音的速度快,但是由于该模型需要蒸馏,导致该模型最终合成语音的质量很低。
53.因此,急需一种无论是在训练过程中,还是实际使用过程中都耗时少、合成语音的效率高,且合成的语音质量高的端到端的语音合成模型。
54.有鉴于此,本技术提供一种合成语音的方法,获取文本信息;将该文本信息输入到已训练的频谱生成模型中进行处理,得到该文本信息对应的梅尔谱图,该频谱生成模型为无需蒸馏的非自回归式的模型,该频谱生成模型包括编码器、长度预测网络以及解码器,其中,该解码器的训练过程和实际使用过程是逆运算的过程;基于该梅尔谱图,生成该文本信息对应的语音信息。上述方案中,将获取到的文本信息输入到已训练的频谱生成模型中进行处理,得到该文本信息对应的梅尔谱图,由于该生成模型为无需蒸馏的非自回归式的模型,即该频谱生成模型的输出属于全并行的输出,提升了该频谱生成模型生成梅尔谱图的速率,进而提升了语音合成的速度。进一步地,由于该频谱生成模型中的解码器的训练过程和实际使用过程是逆运算的过程,使解码器学习到了如何更准确、快速地提取文本信息对应的梅尔谱图,进而使得基于该梅尔谱图生成的语音质量高。
55.请参见图1,图1是本技术一示例性实施例提供的合成语音的方法的示意性流程图。本技术提供的合成语音的方法的执行主体为合成语音的终端,其中,该终端包括但不限于智能手机、平板电脑、计算机、个人数字助理(personal digital assistant,pda)、台式电脑等移动终端,还可以包括各种类型的服务器。如图1所示的合成语音的方法可包括:s101~s103,具体如下:
56.s101:获取文本信息。
57.文本信息为待转换为语音的文字信息。文本信息可以包括文本数据,例如文本信息可以是字、词语、词组、短语、一个句子或多个句子的组合等。上述仅为示例性说明,对文本信息的格式以及内容不做限定。
58.处理文本信息的终端在检测到语音合成指令时,获取文本信息。语音合成指令指用于命令终端依据获取到的文本信息进行语音合成的指令。语音合成指令可以由用户触发,如用户点击所述终端中的语音合成选项。获取的文本信息可以是用户上传至该终端的文本信息,也可以是该终端根据语音合成指令中包含的文件标识,获取文件标识对应的文本文件,并提取该文本文件中的文本信息。
59.s102:将该文本信息输入到已训练的频谱生成模型中进行处理,得到该文本信息对应的梅尔谱图,该频谱生成模型为无需蒸馏的非自回归式的模型,该频谱生成模型包括编码器、长度预测网络以及解码器,其中,该解码器的训练过程和实际使用过程是逆运算的过程。
60.在本实施例中,终端中预先存储有预先训练好的频谱生成模型。该频谱生成模型是使用机器学习算法,基于样本训练集训练得到。其中,样本训练集包括多个样本文本、每个样本文本对应的样本梅尔谱图以及每个样本梅尔谱图对应的样本频谱长度。
61.可以理解的是,频谱生成模型可以由终端预先训练好,也可以由其他设备预先训练好后将频谱生成模型对应的文件移植至终端中。也就是说,训练该频谱生成模型的执行主体与使用该频谱生成模型进行语音合成的执行主体可以是相同的,也可以是不同的。
62.该频谱生成模型为无需蒸馏的非自回归式的模型。自回归式的模型是指模型的输出是一步一步的输出,即每一步的输出会依赖于之前的输出。而非自回归式的模型是指模型的输出属于全并行的输出,相较于自回归式的模型,非自回归式的模型大大地提高了处理数据的速度。然而,传统的非自回归式的模型在训练过程中需要蒸馏,这导致传统的非自回归式的模型最终合成的语音质量很低。本方案中的频谱生成模型无需蒸馏,且频谱生成模型中的解码器的训练过程和实际使用过程是逆运算的过程,使解码器学习到了如何更准确、快速地提取文本信息对应的梅尔谱图,进而使得基于该梅尔谱图生成的语音质量高。
63.请参见图2,图2是本技术一示例性实施例示出频谱生成模型的网络结构示意图。如图2所示,其中,encoder表示频谱生成模型中的编码器,length predictor表示频谱生成模型中的长度预测网络,图2右边整个方框内的各个网络层构成频谱生成模型中的解码器。
64.该解码器包括依次连接的正太分布函数层、split层、coupling block层、affine xform层、invertible linear层、reshape层。如图2所示,方框内最下方的z表示正太分布函数层,split层表示解码器中的分离层,coupling block层表示解码器中的耦合层,affine xform层表示解码器中的变换层,invertible linear层表示解码器中的可逆线性变换层,reshape层表示解码器中的数据重组层。mie

spectrogram表示输出的梅尔谱图。
65.该解码器的训练过程和实际使用过程是逆运算的过程。示例性地,在该解码器的训练过程中,将数据输入reshape层,经过invertible linear层、affine xform层、coupling block层、split层处理后,由正太分布函数层输出数据。在该解码器的的实际使用过程中,是将数据输入正太分布函数层,经过split层、coupling block层、affine xform层、invertible linear层处理后,由reshape层输出数据。
66.传统的解码器的结构与本方案中设计的解码器的结构并不相同,且传统的解码器在训练过程中,与实际使用过程中都是将数据输入同一个网络层,经过若干个网络层处理后,都由最后一个网络层输出数据。这样需要解码器基于第一个网络层输入的数据去一步一步推理,最终由最后一个网络层输出,很容易出现推理错误,而且当一个网络层推理错误时,后面的网络层也会延续这种错误,最终导致输出的数据准确率很低。本方案中,解码器的结构特殊,且训练过程和实际使用过程是逆运算的过程,有效地避免了现有技术中存在的这种的问题,可以准确地学习到文本信息对应的语音特征,进而基于训练好的解码器可以准确、快速地提取文本信息对应的梅尔谱图。
67.将该文本信息输入到已训练的频谱生成模型中进行处理。示例性地,基于频谱生
成模型中的编码器、长度预测网络以及解码器对文本信息进行处理,得到该文本信息对应的梅尔谱图。
68.s103:基于该梅尔谱图,生成该文本信息对应的语音信息。
69.将文本信息对应的梅尔谱图转换为该文本信息对应的语音信息。示例性地,将该梅尔谱图输入到已训练的神经声码器中进行处理,得到该文本信息对应的语音信息。其中,语音信息包括该文本信息对应的音频。
70.示例性地,已训练的神经声码器可以为已训练的waveglow模型。waveglow是一个生成模型,通过从分布采样中生成音频。该waveglow模型在训练过程中以梅尔频谱图为条件的音频样本的分布进行建模,即以多个样本梅尔频谱图和每个样本梅尔频谱图对应样本语音为训练集进行训练,在训练过程中调整waveglow模型对应的网络参数,直至得到训练好的waveglow模型。
71.将梅尔谱图输入到已训练的waveglow模型中,通过waveglow模型中的放射层以及卷积层对梅尔谱图进行处理,将每个放射层以及卷积层处理得到的向量进行连接,最终输出该梅尔谱图对应的语音信息,即文本信息对应的语音信息。此处仅为示例性说明,对此不做限定。
72.采用waveglow模型将梅尔谱图转换最终的音频,提高了最终合成的语音的质量。且waveglow模型也是一种全并行的网络,事本方案实现了全并行的端到端的语音合成。
73.上述实施例中,终端获取文本信息;将该文本信息输入到已训练的频谱生成模型中进行处理,得到该文本信息对应的梅尔谱图,该频谱生成模型为无需蒸馏的非自回归式的模型,该频谱生成模型包括编码器、长度预测网络以及解码器,其中,该解码器的训练过程和实际使用过程是逆运算的过程;基于该梅尔谱图,生成该文本信息对应的语音信息。上述方案中,将获取到的文本信息输入到已训练的频谱生成模型中进行处理,得到该文本信息对应的梅尔谱图,由于该生成模型为无需蒸馏的非自回归式的模型,即该频谱生成模型的输出属于全并行的输出,提升了该频谱生成模型生成梅尔谱图的速率,进而提升了语音合成的速度。进一步地,由于该频谱生成模型中的解码器的训练过程和实际使用过程是逆运算的过程,使解码器学习到了如何更准确、快速地提取文本信息对应的梅尔谱图,进而使得基于该梅尔谱图生成的语音质量高。
74.请参见图3,图3是本技术一示例性实施例示出的合成语音的方法的步骤s102的具体流程图;在本技术一些可能的实现方式中,上述s102可包括s1021~s1023,具体如下:
75.s1021:通过该编码器对该文本信息进行编码,得到该文本信息对应的文本向量。
76.该编码器可以包括三层卷积神经网络(convolutional neural networks,cnn)、一层长短期记忆网络(long short term memory networks,lstm)。其中,每层cnn网络连接了一层激活函数层(rectified linear units,relu)、一层批正则化层以及一层dropout层。其中,lstm网络的作用在于捕捉文本信息中上下文之间的关系。
77.如图2中所示的input text即为输入的入口,将文本信息通过该入口先输入至编码器中,编码器中的cnn层、lstm层对文本信息进行编码,生成该文本信息对应的文本向量。该文本向量用于表征、概括该文本信息的内容。此处仅为示例性说明,对此不做限定。
78.s1022:通过该长度预测网络对该文本向量进行预测,得到该文本向量对应的语音的频谱长度。
79.长度预测网络用于生成文本信息中每个文字对应的音素所对应的频谱长度,将每个文字对应的频谱长度相加,得到的和即为文本向量对应的语音的频谱长度,也就是文本信息对应的语音的频谱长度。
80.可选地,文本向量可以包括文本信息中每个文字对应的文本向量。文本向量也可以包括文本信息中每个分词对应的文本向量。
81.例如,文本信息包括10个文字,这10个文字对应的语音的频谱长度可能是50帧。由于语音的长度和文字的长度不是等同的,在推断的时候只能获取到文本的长度,却不知道应该生成什么长度的语音,因此需要一个长度预测网络来预测最终合成的语音的长度。
82.示例性地,长度预测网络包括两层cnn层和一层累加层。其中,每一层cnn层都连接着一层relu层、一层批正则化层以及一层dropout层。其中,累加层的作用在于将所有音素对应的长度累加起来,得到最终该文本向量对应的语音的频谱长度。
83.例如,将文本信息对应的文本向量输入长度预测网络中,长度预测网络中的cnn层对文本向量进行处理,输出文本信息中每个分词对应的文本向量所对应的频谱长度。可以用序列的方式表示每个分词对应的文本向量所对应的频谱长度。
84.例如,输出为[1,2.1,3.2],通过累加层进行求和,这些序列之和即为最终该文本向量对应的语音的频谱长度。值得说明的是,在推断的时候由于频谱长度不可能是小数,因此可向上或向下取整。例如,输出为[1,2.1,3.2]时,该文本向量对应的语音的频谱长度为7。此处仅为示例性说明,对此不做限定。
[0085]
s1023:将该文本向量以及该频谱长度输入该解码器进行解码处理,得到该梅尔谱图。
[0086]
解码器的网络是一个基于流(flow)模型的生成网络。flow可以通过一系列可逆变换将一个简单的分布转换为一个复杂的分布,例如将正太分布的特征向量转换为梅尔谱图。由于它是可逆变换,因此训练的过程中,就是把梅尔谱图转换成正态分布的特征向量。
[0087]
基于编码器对文本信息进行编码得到的文本向量,以及基于长度预测网络文本向量进行预测得到的频谱长度,都作为该解码器的输入。
[0088]
解码器包括依次连接的正太分布函数层、split层、coupling block层、affine xform层、invertible linear层、reshape层。其中,coupling block层又包括多个网络层。请参见图4,图4是本技术一示例性实施例示出的耦合层网络结构示意图。如图4所示,coupling block层包括三层卷积神经网络(convnet,conv)和一层注意力层(attention)。
[0089]
在实际使用过程中,将文本向量以及该频谱长度输入正太分布函数层进行处理,最终由reshape层进行最后一次处理后,输出最后的处理结果,即输出梅尔谱图。此处仅为示例性说明,对此不做限定。
[0090]
可选地,在本技术一些可能的实现方式中,上述s1023可包括s10231~s10234,具体如下:
[0091]
s10231:通过该正太分布函数层对该频谱长度进行处理,得到正太分布的第一特征向量。
[0092]
将频谱长度输入正太分布函数层进行处理,该正太分布函数层输出符合正太分布的第一特征向量。
[0093]
示例性地,初始化z为一个符合正太分布的特征向量,例如正太分布(b,t2*10,8)。
其中,b表示批尺寸(batch size,b),t2表示频谱长度,即长度预测网络预测出的频谱长度,8表示通道(channel)上的维度。将b与t2的值代入即可得到符合正太分布的第一特征向量。值得说明的是,通道上的维度可根据实际情况进行设置、调整,此处仅为示例性说明,对此不做限定。
[0094]
s10232:将该第一特征向量输入该split层进行处理,得到第二特征向量。
[0095]
split层将正太分布函数层输出的第一特征向量沿通道维度上平均分为两部分,例如平均分为y
a
和y
b
。若原有维度是2d,那么前d维是y
a
,后d维是y
b
。split层对y
a
进行处理,得到第二特征向量。可选地,将y
b
输入后续的coupling block层进行处理。
[0096]
s10233:基于该coupling block层、该affine xform层以及所述invertible linear层,对文本向量以及第二特征向量进行可逆变换,得到第三特征向量。
[0097]
coupling block层的输出也在通道维度上平均分为两部分,记为log s和b。将coupling block层的输出输入affine xform层进行处理,将得到的处理结果输入invertible linear层进行可逆变换,得到第三特征向量。
[0098]
示例性地,将y
b
输入coupling block层进行处理,得到log s,t=nn(y
b
)。将文本向量输入coupling block层,该文本向量的维度为(b,t1,d)。其中,t1表示输入的文本信息的长度。将第二特征向量输入coupling block层,该第二特征向量的维度为(b,t2,d)。其中,t2表示频谱长度。在coupling block层中,文本向量经过一层cnn处理,输出其在通道维度上的张量。第二特征向量经过两层cnn处理,输出第二特征向量在通道维度上的张量。输出的文本向量对应的张量的维度与第二特征向量对应的张量维度相同。
[0099]
由于两个张量在时间维度上长度不同,这里采用注意力层即attention层来使它们对齐。注意力层将文本向量对应的张量作为key和value,将第二特征向量对应的张量作为query。之后,将注意力层的输出传送至一个1x1的cnn网络中,cnn网络的输出作为该coupling block层的输出。
[0100]
coupling block层的输出传入affine xform层。affine xform层具体的处理由下述公式实现:
[0101]
s=exp(logs),
ꢀꢀꢀꢀꢀ
(1)
[0102]
z
a
=(y
a

t)/s,
ꢀꢀꢀꢀꢀ
(2)
[0103]
z
b
=y
b

ꢀꢀꢀꢀ
(3)
[0104]
z=concat(z
a
,z
b
),
ꢀꢀꢀꢀ
(4)
[0105]
上述(4)中的z即为affine xform层的输出。将affine xform层的输出输入invertible linear层进行可逆变换。示例性地,对输入该invertible linear层的z乘以一个可逆矩阵,即进行一次可逆变换,得到第三特征向量。
[0106]
s10234:通过该reshape层对该第三特征向量进行数据重组,得到该梅尔谱图。
[0107]
示例性地,对第三特征向量进行数据重组,就是将第三特征向量对应的维度进行转换。例如,将第三特征向量的维度由(b,t2*10,8)变换为(b,t2,80)。其中,80表示第三特征向量的维度是80维。由于转换维度后得到的就是梅尔谱图,那么实际上第三特征向量的维度也就是梅尔谱图前期的维度。值得说明的是,维度的值可以根据实际情况进行设置、调整,对此不做限定。
[0108]
上述方式中,初始化时的维度小,最后经过reshape层进行升维处理,即将小维度
调整为大维度,是为了减小invertible linear层的计算量。
[0109]
请参见图5,图5为本技术的另一个实施例提供的一种合成语音的方法的示意流程图。主要涉及在执行如图1所示的合成语音的过程之前,获得频谱生成模型的过程。该方法包括:
[0110]
s201:获取样本训练集,该样本训练集包括多个样本文本、每个样本文本对应的样本梅尔谱图以及每个样本梅尔谱图对应的样本频谱长度。
[0111]
可在网络中采集多个样本文本以及每个样本文本对应的样本梅尔谱图,并确定每个样本文本对应的样本梅尔谱图的样本频谱长度。将样本训练集中预设数量的样本文本、每个样本文本对应的样本梅尔谱图以及每个样本梅尔谱图对应的样本频谱长度,作为训练集,样本训练集除过训练集剩余的数据作为测试集。
[0112]
s202:通过初始编码器对每个样本文本进行编码,得到每个样本文本对应的样本文本向量。
[0113]
示例性地,通过初始编码器对训练集中的每个样本文本进行编码,得到训练集中的每个样本文本对应的样本文本向量。
[0114]
初始编码器的网络结构与已训练好的频谱生成模型中的编码器的网络结构相同。初始编码器对样本文本进行编码的具体过程,可参考上述s1021中的具体过程,此处不再赘述。
[0115]
s203:通过初始长度预测网络对每个样本文本向量进行预测,得到每个样本文本向量对应的语音的实际频谱长度。
[0116]
初始长度预测网络的网络结构与已训练好的频谱生成模型中的长度预测网络的网络结构相同。初始长度预测网络对样本文本向量进行处理的具体过程,可参考上述s1022中的具体过程,此处不再赘述。
[0117]
s204:将每个样本文本向量、每个样本文本向量对应的语音的实际频谱长度以及每个样本文本对应的样本梅尔谱图,输入到初始解码器中进行处理,得到每个样本文本对应的正太分布的样本特征向量。
[0118]
解码器在训练的过程中,主要是学习如何将梅尔谱图转换成正态分布的特征向量。
[0119]
可选地,可以根据具体的可逆变换f
i
来得到梅尔谱图的概率密度函数的对数,如下式所示:
[0120][0121]
其中,p
y
(y)指梅尔谱图的概率密度函数,π(z)指高斯分布的概率密度函数,l指变换的次数,指变换f
i
的雅克比的行列式。
[0122]
为了减少计算,基于flow的模型通常将变换的雅克比矩阵设计为一个三角阵。之后,就可通过最大化上式来最大化梅尔谱图的概率密度函数,这样就可以训练整个模型。图3虚线框住的地方代表每一次的可逆变换f
i
,总共有k次变换。示例性地,k可以为12。此处仅为示例性说明,对此不做限定。
[0123]
示例性地,初始解码器的网络结构与已训练好的频谱生成模型中的解码器的网络
结构相同。只是在训练过程中,是将每个样本文本向量、每个样本文本向量对应的语音的实际频谱长度以及每个样本文本对应的样本梅尔谱图,首先输入到初始解码器中的reshape层,reshape层对样本梅尔谱图进行降维处理,基于split层、coupling block层、affine xform层以及invertible linear层依次对降维处理的结果以及样本文本向量处理后,得到的结果输入至正太分布函数层。正太分布函数层基于该结果以及样本文本向量对应的语音的实际频谱长度,确定样本文本对应的正太分布的样本特征向量。其中,split层、coupling block层、affine xform层以及invertible linear层的具体处理过程可参考s102中的具体描述,此处不再赘述。
[0124]
s205:根据预设的损失函数计算损失值。
[0125]
该损失值可以包括第一损失值和第二损失值,该第一损失值为每个样本文本向量对应的语音的实际频谱长度与每个样本文本向量对应的样本频谱长度之间的损失值,该第二损失值基于每个样本文本对应的正太分布的样本特征向量确定。
[0126]
示例性地,每个样本梅尔谱图对应的样本频谱长度,即为该样本梅尔谱图对应的样本文本向量的样本频谱长度。基于预设的损失函数计算每个样本文本向量对应的语音的实际频谱长度与每个样本文本向量对应的样本频谱长度之间的损失值,并将该损失值记为第一损失值。第二损失值为上述(5)式的值的负数,即第二损失值为logp
y
(y)的负数。
[0127]
s206:当该损失值不满足预设条件时,调整该初始长度预测网络和/或该初始解码器的参数,并基于该样本训练集继续训练。
[0128]
示例性地,当第一损失值不满足第一预设条件时,调整初始长度预测网络的权值和参数,并继续训练该初始长度预测网络。当第一损失值满足第一预设条件时,停止训练该初始长度预测网络,并将训练后的该初始长度预测网络作为最终训练好的频谱生成模型中的长度预测网络。假设第一预设条件为第一损失值小于或等于预设的第一损失值阈值。那么,当第一损失值大于第一损失值阈值时,调整初始长度预测网络的权值和参数,并继续训练该初始长度预测网络。当第一损失值小于或等于第一损失值阈值时,停止训练该初始长度预测网络,并将训练后的该初始长度预测网络作为最终训练好的频谱生成模型中的长度预测网络。此处仅为示例性说明,对此不做限定。
[0129]
示例性地,当第二损失值不满足第二预设条件时,调整初始解码器的权值和参数,并继续训练该初始解码器。当第二损失值满足第二预设条件时,停止训练该初始解码器,并将训练后的该初始解码器作为最终训练好的频谱生成模型中的解码器。例如,假设第二预设条件为第二损失值小于或等于预设的第二损失值阈值。那么,当第二损失值大于第二损失值阈值时,调整初始解码器的权值和参数,并继续训练该初始解码器。当第二损失值小于或等于第二损失值阈值时,停止训练该初始解码器,并将训练后的该初始解码器作为最终训练好的频谱生成模型中的解码器。此处仅为示例性说明,对此不做限定。
[0130]
s207:当该损失值满足该预设条件时,停止训练,并基于训练后的初始编码器、训练后的初始长度预测网络以及训练后的初始解码器生成该频谱生成模型。
[0131]
当第一损失值满足第一预设条件,且第二损失值满足第二预设条件时,停止训练,并基于训练后的初始编码器、训练后的初始长度预测网络以及训练后的初始解码器生成该频谱生成模型。
[0132]
上述实施例中,传统的解码器的结构与本方案中设计的解码器的结构并不相同,
且传统的解码器在训练过程中,与实际使用过程中都是将数据输入同一个网络层,经过若干个网络层处理后,都由最后一个网络层输出数据。这样需要解码器基于第一个网络层输入的数据去一步一步推理,最终由最后一个网络层输出,很容易出现推理错误,而且当一个网络层推理错误时,后面的网络层也会延续这种错误,最终导致输出的数据准确率很低。本方案中,解码器的结构特殊,且训练过程和实际使用过程是逆运算的过程,有效地避免了现有技术中存在的这种的问题,可以准确地学习到文本信息对应的语音特征,进而基于训练好的解码器可以准确、快速地提取文本信息对应的梅尔谱图。
[0133]
请参见图6,图6是本技术一实施例提供的一种合成语音的装置的示意图。该装置包括的各单元用于执行图1~图5对应的实施例中的各步骤。具体请参阅图1~图5各自对应的实施例中的相关描述。
[0134]
为了便于说明,仅示出了与本实施例相关的部分。参见图6,包括:
[0135]
获取单元310,用于获取文本信息;
[0136]
处理单元320,用于将所述文本信息输入到已训练的频谱生成模型中进行处理,得到所述文本信息对应的梅尔谱图,所述频谱生成模型为无需蒸馏的非自回归式的模型,所述频谱生成模型包括编码器、长度预测网络以及解码器,其中,所述解码器的训练过程和实际使用过程是逆运算的过程;
[0137]
生成单元330,用于基于所述梅尔谱图,生成所述文本信息对应的语音信息。
[0138]
可选地,所述解码器包括依次连接的正太分布函数层、split层、coupling block层、affine xform层、invertible linear层、reshape层。
[0139]
可选地,所述处理单元320包括:
[0140]
编码单元,用于通过所述编码器对所述文本信息进行编码,得到所述文本信息对应的文本向量;
[0141]
预测单元,用于通过所述长度预测网络对所述文本向量进行预测,得到所述文本向量对应的语音的频谱长度;
[0142]
解码单元,用于将所述文本向量以及所述频谱长度输入所述解码器进行解码处理,得到所述梅尔谱图。
[0143]
可选地,所述解码单元具体用于:
[0144]
通过所述正太分布函数层对所述频谱长度进行处理,得到正太分布的第一特征向量;
[0145]
将所述第一特征向量输入所述split层进行处理,得到第二特征向量;
[0146]
基于所述coupling block层、所述affine xform层以及所述invertible linear层,对所述文本向量以及所述第二特征向量进行可逆变换,得到第三特征向量;
[0147]
通过所述reshape层对所述第三特征向量进行数据重组,得到所述梅尔谱图。
[0148]
可选地,所述装置还包括训练单元,所述训练单元具体用于:
[0149]
获取样本训练集,所述样本训练集包括多个样本文本、每个样本文本对应的样本梅尔谱图以及每个样本梅尔谱图对应的样本频谱长度;
[0150]
通过初始编码器对每个样本文本进行编码,得到每个样本文本对应的样本文本向量;
[0151]
通过初始长度预测网络对每个样本文本向量进行预测,得到每个样本文本向量对
应的语音的实际频谱长度;
[0152]
将所述每个样本文本向量、所述每个样本文本向量对应的语音的实际频谱长度以及所述每个样本文本对应的样本梅尔谱图,输入到初始解码器中进行处理,得到每个样本文本对应的正太分布的样本特征向量;
[0153]
根据预设的损失函数计算损失值;
[0154]
当所述损失值不满足预设条件时,调整所述初始长度预测网络和/或所述初始解码器的参数,并基于所述样本训练集继续训练;
[0155]
当所述损失值满足所述预设条件时,停止训练,并基于训练后的初始编码器、训练后的初始长度预测网络以及训练后的初始解码器生成所述频谱生成模型。
[0156]
可选地,所述损失值包括第一损失值和第二损失值,所述第一损失值为每个样本文本向量对应的语音的实际频谱长度与每个样本文本向量对应的样本频谱长度之间的损失值,所述第二损失值基于每个样本文本对应的正太分布的样本特征向量确定。
[0157]
可选地,所述生成单元330具体用于:
[0158]
将所述梅尔谱图输入到已训练的神经声码器中进行处理,得到所述语音信息。
[0159]
请参见图7,图7是本技术另一实施例提供的合成语音的终端的示意图。如图6所示,该实施例的终端4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个合成语音的方法实施例中的步骤,例如图1所示的s101至s103。或者,所述处理器40执行所述计算机程序42时实现上述各实施例中各单元的功能,例如图6所示单元310至330功能。
[0160]
示例性地,所述计算机程序42可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器41中,并由所述处理器40执行,以完成本技术。所述一个或多个单元可以是能够完成特定功能的一系列计算机指令段,该指令段用于描述所述计算机程序42在所述终端4中的执行过程。例如,所述计算机程序42可以被分割为获取单元、处理单元以及生成单元,各单元具体功能如上所述。
[0161]
所述终端可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图7仅仅是终端4的示例,并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出终端、网络接入终端、总线等。
[0162]
所称处理器40可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0163]
所述存储器41可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器41也可以是所述终端的外部存储终端,例如所述终端上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器41还可以既包括所述终端的内部存储单元也包括外部存储终端。所述存储器41用于存储所述计算机指令以及所述终端所需的其他程序和数据。所述存储器41
还可以用于暂时地存储已经输出或者将要输出的数据。
[0164]
本技术实施例还提供了一种计算机存储介质,计算机存储介质可以是非易失性,也可以是易失性,该计算机存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述各个合成语音的方法实施例中的步骤。
[0165]
本技术还提供了一种计算机程序产品,当计算机程序产品在终端上运行时,使得该终端执行上述各个合成语音的方法实施例中的步骤。
[0166]
本技术实施例还提供了一种芯片或者集成电路,该芯片或者集成电路包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片或者集成电路的终端执行上述各个合成语音的方法实施例中的步骤。
[0167]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0168]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0169]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0170]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜