掌桥专利:专业的专利平台
掌桥专利
首页

语音生成模型的训练、使用方法以及训练、使用装置

文献发布时间:2023-06-19 18:46:07


语音生成模型的训练、使用方法以及训练、使用装置

技术领域

本申请涉及人机语音通信技术领域,尤其涉及一种语音生成模型的训练方法、语音生成模型的使用方法、语音生成模型的训练装置、语音生成模型的使用装置、电子设备,以及计算机可读存储介质。

背景技术

随着科技的不断发展,人工智能逐渐兴起,实现机器像人一样说话就是人工智能发展过程中的重要一步。

目前,为了实现机器像人一样说话,主要采用的是从文本到语音(Text-to-speech,TTS)这一关键技术。随着深度学习的不断发展,又将深度神经网络融入到TTS中。

然而,采用上述技术生成的语音结果,尤其是在中文方面,仍然不够理想,存在发音不流畅、不清晰,韵律不自然以及噪声大的问题。

发明内容

本申请实施例的目的是提供一种语音生成模型的训练方法、语音生成模型的使用方法、语音生成模型的训练装置、语音生成模型的使用装置、电子设备,以及计算机可读存储介质,以使得生成的语音更加流畅清晰,韵律更加自然,平滑频谱,在一定程度上抑制了噪声。

为解决上述技术问题,本申请实施例提供如下技术方案:

本申请第一方面提供一种语音生成模型的训练方法,所述方法包括:获取文字信息样本;将所述文字信息样本输入语音生成模型的生成器中,得到输出梅尔频谱;基于所述语音生成模型的鉴别器,采用多个损失函数分别将所述输出梅尔频谱与真实梅尔频谱进行对比,得到多个损失值,其中,所述真实梅尔频谱为所述文字信息样本真正的梅尔频谱;按照预设运算规则对所述多个损失值进行处理,得到总损失值;基于所述总损失值对所述语音生成模型中的参数进行调整,得到训练后的语音生成模型。

本申请第二方面提供一种语音生成模型的使用方法,所述方法包括:获取待转换的文字信息;将所述待转换的文字信息输入上述训练后的语音生成模型,得到转换后的语音信息。

本申请第三方面提供一种语音生成模型的训练装置,所述装置包括:文字接收模块,用于获取文字信息样本;语音生成模块,用于将所述文字信息样本输入语音生成模型的生成器中,得到输出梅尔频谱;语音鉴别模块,用于基于所述语音生成模型的鉴别器,采用多个损失函数分别将所述输出梅尔频谱与真实梅尔频谱进行对比,得到多个损失值,所述真实梅尔频谱为所述文字信息样本真正的梅尔频谱;损失处理模块,用于按照预设运算规则对所述多个损失值进行处理,得到总损失值;参数调试模块,用于基于所述总损失值对所述语音生成模型中的参数进行调整,得到训练后的语音生成模型。

本申请第四方面提供一种语音生成模型的使用装置,所述装置包括:文字接收模块,用于获取待转换的文字信息;语音输出模块,用于将所述待转换的文字信息输入上述训练后的语音生成模型,得到转换后的语音信息。

本申请第五方面提供一种电子设备,包括:处理器、存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行第一方面或第二方面中的方法。

本申请第六方面提供一种计算机可读存储介质,包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行第一方面或第二方面中的方法。

相较于现有技术,本申请第一方面提供的语音生成模型的训练方法,在对模型进行训练的过程中,使鉴别器中损失函数的数量从一个增加到多个,能够将不同的损失函数的优势集合在一起。这样,模型训练中基于不同的损失函数得到的不同损失值就会有所侧重,再将这多个损失值集合成一个总损失值,并利用这一总损失值对模型中的参数进行优化,能够有效提升模型的精度,使得训练后的语音合成模型输出的语音更加流畅、清晰,韵律更加自然,平滑了频谱,在一定程度上抑制了噪声。

本申请第二方面提供的语音生成模型的使用方法、第三方面提供的语音生成模型的训练装置、第四方面提供的语音生成模型的使用装置、第五方面提供的电子设备以及第六方面提供的计算机可读存储介质,与第一方面提供的语音生成模型的训练方法具有相同或相似的有益效果。

附图说明

通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:

图1为本申请实施例中语音生成模型的架构示意图一;

图2为本申请实施例中语音生成模型的训练方法的流程示意图;

图3为本申请实施例中ELECTRA模型训练过程示意图;

图4为本申请实施例中语音生成模型的架构示意图二;

图5为本申请实施例中语音生成模型的使用方法的流程示意图;

图6为本申请实施例中语音生成模型的训练装置的结构示意图;

图7为本申请实施例中语音生成模型的使用装置的结构示意图;

图8为本申请实施例中电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。

目前,为了实现机器能够将文字信息转换为语音信息并输出,主要是将TTS技术与深度神经网络相融合,即通过深度神经网络模型实现文字信息向语音信息的转换。然而,目前的深度神经网络模型虽然能够实现文字向语音的转换,但是,其生成的语音效果仍然不够理想,尤其是在中文方面,存在发音不流畅、不清晰,韵律不自然的问题。

上述深度神经网络模型输出的语音效果不理想的主要原因在于模型自身的精度不够,而提高模型精度就需要将模型内部的参数调整到一个合适的范围,而调整模型内部的参数具体就需要对模型进行有效的训练。发明人经过研究发现,在对模型进行训练的过程中,现有仅使用一个损失函数进行训练,这就是导致模型输出语音的效果不理想的原因。

有鉴于此,本申请实施例提供一种语音生成模型的训练方法、语音生成模型的使用方法、语音生成模型的训练装置、语音生成模型的使用装置、电子设备,以及计算机可读存储介质,在对上述深度神经网络模型进行训练的过程中,将损失函数的数量从一个增加到多个。这样,训练后的模型的精度就会有所提升,进而能够使得输出的语音更加流畅、清晰,韵律更加自然,平滑了频谱,在一定程度上抑制了噪声。

为了能够更加清楚的对本申请实施例提供的语音生成模型的训练方法进行说明,首先,对上述语音生成模型的架构进行说明。

图1为本申请实施例中语音生成模型的架构示意图一,参见图1所示,在该语音生成模型中,包括一个生成器101和一个鉴别器102。其中,生成器101用于将输入的文字信息尽量真实的转换为梅尔频谱。鉴别器102用于将文字信息真实的梅尔频谱与生成器101输出的梅尔频谱进行对比,以判断生成器101输出的梅尔频谱是否真实。在鉴别器102将文字信息真实的梅尔频谱与生成器101输出的梅尔频谱进行对比之前,还可以采用多种损失函数(例如:谱收敛损失函数、全变差损失函数、感知损失函数和平均绝对误差损失函数等)将文字信息真实的梅尔频谱与生成器101输出的梅尔频谱进行对比。这样,就得到了多个损失值,接下来就可以对这多个损失值进行合并处理,得到一个总损失值。然后,这个总损失值又会被输入到生成器中,使得生成器中的参数能够基于该总损失值进行迭代,使得下一次输出的梅尔频谱能够更加真实,最终使得训练后的模型输出的语音的音质更优。

接下来,对本申请实施例提供的语音生成模型的训练方法进行说明。

图2为本申请实施例中语音生成模型的训练方法的流程示意图,参见图2所示,该方法可以包括:

S201:获取文字信息样本。

这里的文字信息样本实质上就是文字,是用来对语音生成模型进行训练的样本。例如:“我”、“我们”、“今天是晴天”等。文字信息样本可以是一个字、一个词、一个短语、一句话等。对于模型训练来说,文字信息样本的数量一般来说可以是多个。对于文字信息样本的具体内容以及数量,此处不做限定。

相对于文字信息样本,还对应存在一个文字信息样本真实的语音信息样本。文字信息样本与语音信息样本共同构成语音生成模型的一个训练样本。

S202:将文字信息样本输入语音生成模型的生成器中,得到输出梅尔频谱。

为了实现文字向语音的转换,就需要将文字信息样本输入到语音生成模型中,利用语音生成模型中的生成器将文字信息样本进行语音的转换,此时输出的正是梅尔频谱。

所谓梅尔频谱,实质上就是声音的频谱,但是与普通的频图相比,在很大程度上保留了人耳理解原本语音所需的信息。因此,将文字信息样本转换成梅尔频谱,能够使得后续输出的语音更加容易被人所理解。

而这里的生成器,即Generator,就是生成对抗网络(Generative AdversarialNets,GAN)中的生成网络。这里的GAN是一种基于对抗学习的深度生成模型,由一个生成网络与一个判别网络组成。生成网络从潜在空间(latent space)中随机采样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入则为真实样本以及生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终使判别网络无法判断生成网络的输出结果是否真实。

S203:基于语音生成模型的鉴别器,采用多个损失函数分别将输出梅尔频谱与真实梅尔频谱进行对比,得到多个损失值。

其中,真实梅尔频谱为文字信息样本真正的梅尔频谱。

在生成器基于文字信息样本生成梅尔频谱,并输入到鉴别器之后,在鉴别器中,可以利用鉴别器中的损失函数将文字信息样本对应的生成器输出的梅尔频谱与真实梅尔频谱进行对比运算,也可以在鉴别器之外,利用各种损失函数将文字信息样本对应的生成器输出的梅尔频谱与真实梅尔频谱进行对比运算。对于每一个文字信息样本,每一个损失函数都会得到一个损失值。

举例来说,对于某一个文字信息样本,假设生成器输出梅尔频谱A,该文字信息样本真实的语音对应的是梅尔频谱B。对应有三个损失函数,即损失函数1、损失函数2和损失函数3。此时,首先利用损失函数1将梅尔频谱A和梅尔频谱B进行对比运算,得到损失值a,然后利用损失函数2将梅尔频谱A和梅尔频谱B进行对比运算,得到损失值b,接着利用损失函数3将梅尔频谱A和梅尔频谱B进行对比运算,得到损失值c。损失值a、损失值b和损失值c就是采用上述三个损失函数分别将生成器针对某一个文字信息样本输出的梅尔频谱与真实梅尔频谱进行运算得到的三个损失值。

S204:按照预设运算规则对多个损失值进行处理,得到总损失值。

在得到多个损失值之后,需要将这多个损失值合成为一个值,以便于根据这一个值对语音生成模型中的参数进行调整。具体的,可以使用一些数学运算规则,即预设运算规则对这多个损失值进行运算,得到一个总损失值。

举例来说,可以将多个损失值进行相加后得到一个总损失值,也可以对多个损失值取平均数后得到一个总损失值,也可以对多个损失值进行加权后得到一个总损失值,还可以根据多个损失值的具体数值对多个损失值进行取舍后将保留的损失值取平均或相加后得到一个损失值。对于预设运算规则的具体内容,此处不做限定。

S205:基于总损失值对语音生成模型中的参数进行调整,得到训练后的语音生成模型。

在得到总损失值后,就可以根据该总损失值对语音生成模型中的参数进行调整,相当于完成了一次对该语音生成模型的训练以及优化。

在具体实时过程中,可以通过人工基于该总损失值对语音生成模型中的参数进行优化,也可以通过预先设置好的程序自动基于该总损失值对语音生成模型中的参数进行优化。基于总损失值对语音生成模型中的参数进行调整的具体步骤,可以参考现有技术中基于损失值对模型参数进行优化的任意一种方式,此处不再赘述。

由上述内容可知,本申请实施例提供的语音生成模型的训练方法,在对模型进行训练的过程中,使鉴别器中损失函数的数量从一个增加到多个,能够将不同的损失函数的优势集合在一起。这样,模型训练中基于不同的损失函数得到的不同损失值就会有所侧重,再将这多个损失值集合成一个总损失值,并利用这一总损失值对模型中的参数进行优化,能够有效提升模型的精度,使得训练后的语音合成模型输出的语音更加流畅、清晰,韵律更加自然,平滑了频谱,在一定程度上抑制了噪声。

进一步地,作为对上述多个损失函数的细化和扩展,多个损失函数可以包括:谱收敛损失(Spectral Convergence loss,SC loss)函数、全变差损失(Total Variationloss,TV loss)函数、感知损失(perceptual loss,又叫VGG loss)函数和平均绝对误差损失(Mean Absolute Error loss,MAE loss)函数。具体的,上述步骤S203可以包括:步骤A1:采用谱收敛损失函数、全变差损失函数、感知损失函数和平均绝对误差损失函数分别将输出梅尔频谱与真实梅尔频谱进行对比,得到多个第一损失值。

通过采用上述四种损失函数,即SC loss函数、TV loss函数、VGG loss函数和MAEloss函数,能够更加精准的计算出文字信息样本对应的输出和真值之间的差异,进而使得模型中的参数修正的更加精准,提升模型的精准度,使得后续输出的语音更加清晰流畅,韵律更加自然,并且平滑了频谱,在一定程度上抑制了噪声。

在上述步骤A1之后,还可以将能够表征鉴别器自身特征的损失函数与上述步骤A1中的四种损失函数结合在一起使用。因为不同的鉴别器在进行鉴别时的原理以及侧重点不同,结合鉴别器的损失函数进行损失值的计算,能够进一步提升损失值的准确性,进而提升模型的精度,进而提升模型输出的语音的质量。

具体的,在上述步骤A1之后,或者在上述步骤S204之前,语音生成模型的训练方法还可以包括:

步骤A2:分别确定鉴别器的对抗损失函数和特征匹配损失函数。

鉴别器的对抗损失函数也就是g_loss函数和d_loss函数。g_loss是鉴别器的输出与真值(valid)的一个损失。d_loss是real_loss与fake_loss的平均。real_loss是鉴别器判别真样本的输出,让这个输出更接近于真值(valid)。fake_loss是鉴别器判别假样本的输出,让这个输出更接近于错误值(fake)。g_loss越小,说明生成器生产的假样本作为鉴别器的输入的输出(概率)越接近真值valid,就是假样本越像真样本。d_loss越小,说明鉴别器越能够识别出真样本和假样本。

鉴别器的特征匹配损失函数,即(Feature Matching Loss,LFM)函数。采用该损失函数,能够从真假样本的不同尺度中提取特征,并进行“匹配”,稳定训练,使训练后模型的稳定性更加。

步骤A3:采用对抗损失函数和特征匹配损失函数分别将输出梅尔频谱与真实梅尔频谱进行对比,得到多个第二损失值。

与上述步骤S203中的举例类似,对于生成器输出的某一个梅尔频谱,采用对抗损失函数与真实梅尔频谱进行对比,得到第二损失值d,采用特征匹配损失函数与真实梅尔频谱进行对比,得到第二损失值e。第二损失值d和第二损失值e就是步骤A3中得到的多个第二损失值。

在经过步骤A3之后,就得到了多个第一损失值和第二损失值,此时,需要将这多个第一损失值和第二损失值进行合并处理,得到一个总的损失值,以便于后续基于这个总的损失值对模型中的参数进行调整。

具体的,上述步骤S204可以包括:步骤A4:对多个第一损失值和多个第二损失值进行求和处理,得到总损失值。

也就是说,在得到多个第一损失值和多个第二损失值之后,可以直接将这多个第一损失值和多个第二损失值直接相加,得到的总值就是总损失值。也可以将这多个第一损失值和多个第二损失值进行加权,得到的总值就是总损失值。对于上述求和的具体方式,此处不做限定。

无论是在上述步骤A1之后得到了多个第一损失值,还是在上述步骤A3之后得到了多个第一损失值和多个第二损失值,都需要将这多个损失值进行合并处理,得到一个总的损失值,以便于后续基于这个总的损失值对模型中的参数进行调整。

具体的,上述步骤S204可以包括:步骤B1:对多个损失值进行加权处理,得到总损失值。

其中,多个损失值分别对应的权重相同。

在确定了每个损失值对应的权重(也就是各损失函数对应的权重)之后,就可以将各损失值对应的权重与损失值本身相乘,然后将各损失值及其相应权重相乘之后的结果相加,得到的最终值就是总损失值。

在实际应用中,上述权重的具体数值可以是小于1的数值。这样,能够将总损失值按照一定的倍数缩小,加速收敛,提高模型训练速度。上述权重的具体数值也可以是大于1的数值。这样,能够将总损失值按照一定的倍数放大,提高模型训练精度。上述权重的具体数值可以根据实际训练场景确定,或者根据损失函数的数量确定,此处不做具体限定。

或者,上述步骤S204可以包括:以下步骤B2-B5。

步骤B2:确定每个损失函数的第一权重和第二权重。

其中,每个损失函数的第一权重相同,每个损失函数的第二权重按照各损失函数排列先后顺序依次减小。

举例来说,假设损失函数1的第一权重为0.25,损失函数2的第一权重为0.25,损失函数3的第一权重为0.25,损失函数4的第一权重为0.25。损失函数1的第二权重为0.4,损失函数2的第二权重为0.3,损失函数3的第二权重为0.2,损失函数4的第二权重为0.1。

当然,各损失函数对应的第一权重之和可以为1,也可以不为1。各损失函数对应的第二权重之和可以为1,也可以不为1。各损失函数对应的第一权重和第二权重的具体数值,此处不做限定。

步骤B3:基于每个损失函数的第一权重对每个损失函数对应的损失值进行加权处理,得到多个损失值的第一总损失值。

继续上述举例,假设损失函数1对应的损失值为0.6,损失函数2对应的损失值为0.4,损失函数3对应的损失值为0.2,损失函数4对应的损失值为0.1。那么,第一总损失值为0.25×0.6+0.25×0.4+0.25×0.2+0.25×0.1=0.325。

步骤B4:基于每个损失函数的第二权重对每个损失函数对应的损失值进行加权处理,得到多个损失值的第二总损失值。

继续上述举例,第二总损失值为0.4×0.6+0.3×0.4+0.2×0.2+0.1×0.1=0.41。

步骤B5:从第一总损失值和第二总损失值中选择数值最小的损失值作为总损失值。

继续上述举例,第一总损失值为0.325,第二总损失值为0.41,0.325小于0.41,因此,选择第一总损失值作为最终的总损失值。

一般来说,越重要的损失函数,其在模型中的位置就会越靠前,因此将位置靠前的损失函数的权重设置的更大,即通过上述步骤B2中确定各损失函数的第二权重的方式,能够使得最后得到的总损失值越符合实际需求。通过上述步骤B5中选择总损失值的方式,能够加速收敛,提高模型训练速度。

由上述分析可知,通过在语音合成模型的训练过程中加入SC loss函数、TV loss函数、VGG loss函数和MAE loss函数这四种损失函数,以及再结合鉴别器的对抗损失函数和特征匹配损失函数,以及采用加权的方式计算总损失值,能够更加精准的计算出文字信息样本对应的输出和真值之间的差异,进而使得模型中的参数修正的更加精准,提升模型的精准度,使得后续输出的语音更加清晰流畅,韵律更加自然,并且平滑了频谱,在一定程度上抑制了噪声。

进一步地,作为对上述鉴别器的细化和扩展,该鉴别器可以包括:多个子鉴别器(即Multi Discriminator)。具体的,上述步骤S203可以包括:步骤C1:在语音生成模型的每个子鉴别器中,分别采用每个子鉴别器的对抗损失函数和特征匹配损失函数将输出梅尔频谱与真实梅尔频谱进行对比,得到多组损失值。其中,每组损失值中包括两个子损失值,每组损失值用于表征所述输出梅尔频谱的真实度。

举例来说,在鉴别器A中,采用鉴别器A的对抗损失函数和特征匹配损失函数分别将生成器输出的一个梅尔频谱和真实梅尔频谱进行对比,得到子损失值A1和子损失值A2,损失值A1和子损失值A2就是一组损失值。在鉴别器B中,采用鉴别器B的对抗损失函数和特征匹配损失函数分别将生成器输出的一个梅尔频谱和真实梅尔频谱进行对比,得到子损失值B1和子损失值B2,损失值B1和子损失值B2就是另一组损失值。对于鉴别器的具体数量,可以根据实际情况在模型中进行设置,此处不做具体限定。

在实际应用中,多个子鉴别器可以包括:多个不同尺度的鉴别器和一个二维卷积鉴别器。上述步骤C1可以包括:步骤C11:在多个不同尺度的鉴别器和一个二维卷积鉴别器中,分别采用不同尺度的鉴别器以及二维卷积鉴别器的对抗损失函数和特征匹配损失函数将输出梅尔频谱与真实梅尔频谱进行对比,得到多组损失值。

具体来说,上述多个不同尺度可以包括:原始尺度、2倍和4倍。

继续上述举例,在原始尺度鉴别器中,采用原始尺度鉴别器的对抗损失函数和特征匹配损失函数分别将生成器输出的一个梅尔频谱和真实梅尔频谱进行对比,得到子损失值A1和子损失值A2,损失值A1和子损失值A2就是一组损失值。在2倍鉴别器中,采用2倍鉴别器的对抗损失函数和特征匹配损失函数分别将生成器输出的一个梅尔频谱和真实梅尔频谱进行对比,得到子损失值B1和子损失值B2,损失值B1和子损失值B2就是另一组损失值。在4倍鉴别器中,采用4倍鉴别器的对抗损失函数和特征匹配损失函数分别将生成器输出的一个梅尔频谱和真实梅尔频谱进行对比,得到子损失值C1和子损失值C2,损失值C1和子损失值C2就是再一组损失值。在二维卷积鉴别器中,采用二维卷积鉴别器的对抗损失函数和特征匹配损失函数分别将生成器输出的一个梅尔频谱和真实梅尔频谱进行对比,得到子损失值D1和子损失值D2,损失值D1和子损失值D2就是另一组损失值。

当然,还可以使用其它尺度的鉴别器,例如:8倍。对于使用的鉴别器的具体尺度,此处不做具体限定。

由上述内容可知,在语音生成模型中,通过加入多个鉴别器,尤其是多个不同尺度的鉴别器以及二维卷积鉴别器,能够提升损失值的计算精度,进而使训练后的模型的精度更高,使后续输出的语音更加清晰流畅,韵律更加自然,并且平滑了频谱,在一定程度上抑制了噪声。

进一步地,作为对上述生成器的细化和扩展,该生成器可以包括:ELECTRA模型。具体的,上述步骤S202可以包括:

步骤D1:将文字信息样本转换为音素序列。

文字信息样本实质上为文字,若要将文字转换为语音输出,首先就需要将文字转换为音素序列,以便于后续的语音转换。例如:对于文字信息样本“奇安信”,转换成音素序列就是“q i3 an1 x in4”。

步骤D2:将音素序列输入ELECTRA模型,得到包含音素序列的上下文语义信息的第一隐藏表示。

由于ELECTRA模型能够提取音素序列具有上下文语义的隐藏表示,因此,可以将ELECTRA模型作为语音生成模型中的音素编码器,在节约计算资源的同时还能够准确提取音素潜在表达,使得最终输出的语音更加符合人们正常的视听习惯。

步骤D3:将第一隐藏表示转换为梅尔频谱。

在通过ELECTRA模型获得文字信息样本对应的音素序列的上下文语义信息隐藏表示之后,就需要继续将上下文语义信息隐藏表示转换成梅尔频谱,以便鉴别器判别生成器输出的梅尔频谱是否为真实的,进而根据判别结果对语音生成模型中的参数进行调整。而上下文语义信息的隐藏表示转换为梅尔频谱的具体方式,可以参考已有的梅尔频谱的转换技术,此处不再赘述。

在执行步骤D3之前,还可以执行步骤D4:将音素序列输入方差适配器,得到包含音素序列的方差信息的第二隐藏表示。

这里的方差适配器,即variance adapter,是用来计算音素序列的方差信息及其隐藏表示。例如:持续时间(duration)、音高(pitch)以及音量(energy)等。

通过方差适配器获取包含音素序列的方差信息的隐藏表示,在生成器转换梅尔频谱的过程中,结合音素序列的方差信息及其隐藏表示,使得生成的梅尔频谱的质量更高,与真实梅尔频谱更接近,加速收敛,提高模型训练速度。

相应的,上述步骤D3可以是:基于梅尔频谱解码器,结合第二隐藏表示,将第一隐藏表示转换为梅尔频谱。

由上述内容可知,通过ELECTRA模型提取音素序列具有上下文语义的隐藏表示,在节约计算资源的同时还能够准确提取音素潜在表达,使得最终输出的语音更加符合人们正常的视听习惯。再结合音素序列的方差信息的隐藏表示,使得生成的梅尔频谱的质量更高,与真实梅尔频谱更接近,加速收敛,提高模型训练速度。

最后,针对上述语音生成模型的训练过程,对语音生成模型的架构再次进行详细说明,以使得上述模型的训练方法更容易被理解。

图3为本申请实施例中ELECTRA模型训练过程示意图,参见图3所示,在ELECTRA模型中,至少包括一个生成器(即Generator)和一个鉴别器(Discriminator)。对ELECTRA模型开始训练时,模型获取到“奇安信”这三个字,并提取“奇安信”的音素序列“q i3 an1 xin4”,并对“q i3 an1 x in4”中的一些音素“an1、in4”进行掩码,再将掩码后的音素序列输入到生成器中,输出“q i3 an1 x ing4”,进而再输入到鉴别器中进行判定。最终,前四个音素均正确,第五个音素错误。

图4为本申请实施例中语音生成模型的架构示意图二,参见图4所示,在语音生成模型中,至少包括:向量化模块(即Phoneme Embedding)、ELECTRA模型、变量预测器(即Variance Adaptor)、梅尔频谱解码器(即Mel-spectrogram Decoder)和多个鉴别器(即Multi Discriminator)。其中,向量化模块、ELECTRA模型、变量预测器以及梅尔频谱解码器可以看作生成器。在语音生成模型的实际应用中,向模型输入音素(即Phoneme),模型中的向量化模块对音素进行向量化处理,并进行位置编码(即Positional Encoding),编码后的向量再输入ELECTRA模型,进而再输入变量预测器,再进行位置编码,再通过梅尔频谱解码器转换为梅尔频谱,以便后续进行判别。接下来,分别通过谱收敛损失(即SC loss)函数、全变差损失(即TV loss)函数、感知损失(即VGG loss)函数和平均绝对误差损失(即MAEloss)函数这四种损失函数,分别将前面输出的梅尔频谱(即Estimated Mel-spectrogram)和输入音素真正的梅尔频谱(即Ground Truth Mel-spectrogram)进行对比,以及通过多个鉴别器的对抗损失函数和特征匹配损失函数将Estimated Mel-spectrogram和GroundTruth Mel-spectrogram进行对比,最终输出相应的损失(即Loss),进而再将损失输入生成器,以调整生成器中的参数,使得后续生成的梅尔频谱能够更加真实。

至此,本申请实施例提供的语音生成模型的训练方法就说明完成了。

基于同一发明构思,与上述训练方法相应的,本申请实施例还提供了一种语音生成模型的使用方法。图5为本申请实施例中语音生成模型的使用方法的流程示意图,参见图5所示,该方法可以包括:

S501:获取待转换的文字信息;

S502:将所述待转换的文字信息输入上述训练后的语音生成模型,得到转换后的语音信息。

也就是说,为了实现文字向语音的转换,可以将待转换的文字信息输入到上述训练后的语音生成模型中,通过上述训练后的语音生成模型,能够将文字信息转换为清晰、流畅、音律自然,低噪声的语音。

这里需要指出的是,以上使用方法实施例的描述,与上述训练方法实施例的描述是类似的,具有同训练方法实施例相似的有益效果。对于本申请使用方法实施例中未披露的技术细节,请参照本申请训练方法实施例的描述而理解。

基于同一发明构思,作为对上述训练方法的实现,本申请实施例还提供了一种语音生成模型的训练装置。图6为本申请实施例中语音生成模型的训练装置的结构示意图,参见图6所示,该装置可以包括:

文字接收模块601,用于获取文字信息样本;

语音生成模块602,用于将所述文字信息样本输入语音生成模型的生成器中,得到输出梅尔频谱;

语音鉴别模块603,用于基于所述语音生成模型的鉴别器,采用多个损失函数分别将所述输出梅尔频谱与真实梅尔频谱进行对比,得到多个损失值,所述真实梅尔频谱为所述文字信息样本真正的梅尔频谱;

损失处理模块604,用于按照预设运算规则对所述多个损失值进行处理,得到总损失值;

参数调试模块605,用于基于所述总损失值对所述语音生成模型中的参数进行调整,得到训练后的语音生成模型。

在本申请其它实施例中,所述语音鉴别模块,具体用于采用谱收敛损失函数、全变差损失函数、感知损失函数和平均绝对误差损失函数分别将所述输出梅尔频谱与真实梅尔频谱进行对比,得到多个第一损失值。

在本申请其它实施例中,所述装置还包括:损失计算模块;所述损失计算模块,用于分别确定所述鉴别器的对抗损失函数和特征匹配损失函数;采用所述对抗损失函数和所述特征匹配损失函数分别将所述输出梅尔频谱与真实梅尔频谱进行对比,得到多个第二损失值;所述损失处理模块,具体用于对所述多个第一损失值和所述多个第二损失值进行求和处理,得到所述总损失值。

在本申请其它实施例中,所述损失处理模块,具体用于对所述多个损失值进行加权处理,得到所述总损失值,所述多个损失值分别对应的权重相同;或者,确定每个损失函数的第一权重和第二权重,其中,每个损失函数的第一权重相同,每个损失函数的第二权重按照各损失函数排列先后顺序依次减小;基于每个损失函数的第一权重对每个损失函数对应的损失值进行加权处理,得到所述多个损失值的第一总损失值;基于每个损失函数的第二权重对每个损失函数对应的损失值进行加权处理,得到所述多个损失值的第二总损失值;从所述第一总损失值和所述第二总损失值中选择数值最小的损失值作为所述总损失值。

在本申请其它实施例中,所述鉴别器包括:多个子鉴别器;所述语音鉴别模块,具体用于在所述语音生成模型的每个子鉴别器中,分别采用每个子鉴别器的对抗损失函数和特征匹配损失函数将所述输出梅尔频谱与真实梅尔频谱进行对比,得到多组损失值,每组损失值中包括两个子损失值,每组损失值用于表征所述输出梅尔频谱的真实度。

在本申请其它实施例中,所述多个子鉴别器包括:多个不同尺度的鉴别器和一个二维卷积鉴别器;所述语音鉴别模块,具体用于在多个不同尺度的鉴别器和一个二维卷积鉴别器中,分别采用不同尺度的鉴别器以及二维卷积鉴别器的对抗损失函数和特征匹配损失函数将所述输出梅尔频谱与真实梅尔频谱进行对比,得到多组损失值。

在本申请其它实施例中,所述生成器包括:ELECTRA模型;所述语音鉴别模块,具体用于将所述文字信息样本转换为音素序列;将所述音素序列输入ELECTRA模型,得到包含所述音素序列的上下文语义信息的第一隐藏表示;将所述第一隐藏表示转换为梅尔频谱。

在本申请其它实施例中,所述装置还包括:方差计算模块;所述方差计算模块,用于将所述音素序列输入方差适配器,得到包含所述音素序列的方差信息的第二隐藏表示;所述语音鉴别模块,具体用于基于梅尔频谱解码器,结合所述第二隐藏表示,将所述第一隐藏表示转换为梅尔频谱。

这里需要指出的是,以上训练装置实施例的描述,与上述训练方法实施例的描述是类似的,具有同训练方法实施例相似的有益效果。对于本申请训练装置实施例中未披露的技术细节,请参照本申请训练方法实施例的描述而理解。

基于同一发明构思,作为对上述使用方法的实现,本申请实施例还提供了一种语音生成模型的使用装置。图7为本申请实施例中语音生成模型的使用装置的结构示意图,参见图7所示,该装置可以包括:

文字接收模块701,用于获取待转换的文字信息;

语音输出模块702,用于将所述待转换的文字信息输入上述训练后的语音生成模型,得到转换后的语音信息。

这里需要指出的是,以上使用装置实施例的描述,与上述使用方法实施例的描述是类似的,具有同使用方法实施例相似的有益效果。对于本申请使用装置实施例中未披露的技术细节,请参照本申请使用方法实施例的描述而理解。

基于同一发明构思,本申请实施例还提供了一种电子设备。图8为本申请实施例中电子设备的结构示意图,参见图8所示,该电子设备可以包括:处理器801、存储器802、总线803;其中,处理器801、存储器802通过总线803完成相互间的通信;处理器801用于调用存储器802中的程序指令,以执行上述的训练方法或使用方法。

这里需要指出的是,以上电子设备实施例的描述,与上述训练方法或使用方法实施例的描述是类似的,具有同训练方法或使用方法实施例相似的有益效果。对于本申请电子设备实施例中未披露的技术细节,请参照本申请训练方法或使用方法实施例的描述而理解。

基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,该存储介质可以包括:存储的程序;其中,在程序运行时控制存储介质所在设备执行上述的训练方法或使用方法。

这里需要指出的是,以上存储介质实施例的描述,与上述训练方法或使用方法实施例的描述是类似的,具有同训练方法或使用方法实施例相似的有益效果。对于本申请存储介质实施例中未披露的技术细节,请参照本申请训练方法或使用方法实施例的描述而理解。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120115687228