一种用于个性化语音生成的语音转换方法



1.本发明涉及语音转化领域,具体涉及一种用于个性化语音生成的语音转换方法。


背景技术:



2.随着人工智能产品的不断落地,需要用到个性化语音的场景越来越多。语音转换就是一种很好的生成个性化语音的技术,它是在不改变语言内容的情况下,将源说话人语音转换为目标说话人语音,使得转换后的语音听起来就像是目标说话人的声音一样。传统语音转换方法使用统计模型明确表示转换函数形式,将源说话人的声学特征转换为目标说话人的声学特征。最近的研究则使用深度神经网络来取代传统方法进行语音转换,如前馈神经网络、递归神经网络等,并随着wavenet等声码器的引入,大大提高了语音生成的质量。然而,大多数的转换方法都是采用平行语料进行训练的模式中,需要源说话人和目标说话人提供相同语句内容的声音数据。而非平行语音转换技术相对于平行语音转换就没有平行数据、时间对齐这些限制,因此数据收集简单、花费成本低。


技术实现要素:



3.本发明使用基于音素的信息瓶颈来表征说话人风格和控制转换语音的速度,由内容编码器、说话人编码器、音素时长转换器、解码器和声码器组成。通过编码器和解码器之间的信息瓶颈从原语音中分离出内容信息,并将其与目标说话人嵌入一起输入解码器,最后输入声码器并生成转换后的语音。内容编码器由conformer模块组成,它将源说话人的mel谱图转换为隐藏的表示序列。音素时长转换器由下采样器、上采样器、音素预测器和时长预测器组成,用来控制语音音素的持续时间长度,同时转换说话人的风格。解码器由conformer模块组成,将目标说话人隐藏的序列表示转换成mel谱图。同时为了使初始估计并重建后的mel谱图更精细,在解码器末端使用postnet来提高生成的mel谱图的质量。整个转换系统的损失函数由自重构损失、音素预测损失、持续时间预测损失、周期循环一致性损失和说话人分类损失构成。
4.本发明提出一种用于个性化语音生成的语音转换方法,包括以下步骤
5.步骤1,训练转换模型,获取源说话人的语音数据库,提取出两个不同片段的源说话人mel谱图序列xu=[xu,x
u+1
,

,x
u+n
]和xv=[xv,x
v+1
,

,x
v+n
],作为训练用的语音特征;其中u和v为mel谱图序列开始的序号,n为提取的mel谱图序列长度;
[0006]
步骤2,将提取的mel谱图序列经过内容编码器ec将mel谱图编码为mel谱图隐藏序列,表示为:
[0007]cu
=ec(xu)
ꢀꢀ⑼
[0008]cv
=ec(xv)
ꢀꢀ⑽
[0009]
步骤3,同时将这两个不同片段的源说话人语音输入到说话人编码器es得到说话人嵌入su和sv,表示为:
[0010]
su=es(xu)
ꢀꢀ⑾
[0011]
sv=es(xv)
ꢀꢀ⑿
[0012]
步骤4,将对应片段的内容嵌入和说话人嵌入cu、su与cv、sv输入到音素时长转换器中,将cu中的音素持续时长转换为sv的音素持续时长,同理将cv中的音素持续时长转换为su的音素持续时长,输出得到音素持续时长转换后的cu′
和cv′

[0013]
步骤5,将对应的cu′
、su,cv′
、sv输入解码器中利用总体损失函数l
total
进行训练,其中为了使初始估计后重建mel谱图的更精细,在解码器末端使用postnet提高生成的mel谱图的质量,总体损失函数如下所示:
[0014]
l
total
=l
recon

p
l
pho
+λdld+l
cycle
+l
id
ꢀꢀ⒀
[0015]
完成训练;
[0016]
步骤6,实际转换,获取原说话人语音mel谱图x和目标说话人语音mel谱图y,将原说话人语音mel谱图x输入内容编码器得到内容嵌入c,将目标说话人语音mel谱图y输入到说话人编码器并得到说话人嵌入s;
[0017]
步骤7,将内容嵌入c和说话人嵌入s同时输入音素时长转换器中,得到音素持续时长转换后的内容嵌入c


[0018]
步骤8,将音素持续时长转换后的内容嵌入c

和说话人嵌入s同时输入解码器中得到转换后的mel谱图y


[0019]
步骤9,将步骤8中得到的转换mel谱图y

输入声码器中合成语音波形,获得与目标说话人相似的高质量语音。
[0020]
作为优选,步骤2包括以下子步骤:
[0021]
子步骤a1,将mel谱图隐藏序列c
mel
输入音素预测器;
[0022]
子步骤a2,使用音素预测器得到mel谱图隐藏序列c
mel
对应的音素标签序列
[0023]
子步骤a3,将mel谱图隐藏序列c
mel
对应的音素标签序列同时输入下采样器中进行下采样去除说话人的音素持续时间信息,得到音素隐藏序列c
pho

[0024]
子步骤a4,将经过说话人编码器得到的目标说话人信息输入时长预测器,得到目标说话人的音素持续时间序列
[0025]
子步骤a5,将音素隐藏序列c
pho
和目标说话人的音素持续时间序列同时输入上采样器进行上采样添加目标说话人的音素持续时间信息,得到时长转换后的mel谱图隐藏序列作为优选,音素预测器p
pho
,用于预测c
mel
的音素标签序列通过优化预测得到的音素标签序列与真实音素标签序列p=[p1,p2,

,pn]之间的音素分类损失来训练音素预测器,音素分类损失表示为:
[0026][0027]
其中n是隐藏序列mel谱图的长度,p
pho
表示音素预测器;
[0028]
当给定预测的音素隐藏序列后,下取样器ds对c
mel
执行下采样,下采样过程表示为:
[0029]
[0030]
其中c
mel
为mel谱图隐藏序列,为给定的预测音素标签序列,ds为下采样器,为第i个音素隐藏序列,m为音素隐藏序列的长度;
[0031]
为了将音素隐藏序列c
pho
扩展回隐藏序列c
mel
,使用了持续时长预测器pd和基于音素级持续时长的上采样器us;
[0032]
为了通过目标说话人的信息来预测c
pho
对应的音素时长序列,下采样后的c
pho
和说话人嵌入s都输入到时长预测器pd中;
[0033]
pd预测对应于c
pho
的音素持续时间序列通过将源说话人嵌入pd来预测源说话人信息的通过和真实音素的持续时间序列d=[d1,d2,

,dm]之间的l1损失来训练持续时间预测器,该损失函数表示为:
[0034][0035]
其中m为音素隐藏序列的长度,pd为时长预测器,为第i个音素隐藏序列,di为第i个音素的持续时长;
[0036]
上采样器us将c
pho
扩展为基于的扩展的mel谱图隐藏序列上采样过程表示为:
[0037][0038]
其中k是mel谱图序列的长度,它等于训练阶段的n,α是一个超参数,控制每个音素扩展的时间,c
pho
为音素隐藏序列,us为上采样器,为第i个mel谱图隐藏序列,是音素持续时间序列。
[0039]
作为优选,步骤3中所述的话人编码器es的编码过程包括以下子步骤:
[0040]
子步骤b1,将目标说话人mel谱图x输入说话人编码器,mel谱图x经过三层lstm得到x1;
[0041]
子步骤b2,提取出子步骤b1最后一层输出记为x2;
[0042]
子步骤b3,x2经过linear层后得到说话人嵌入表示s
[0043]
子步骤b4,为了使同一说话人提取出相同的说话人嵌入信息,将同一个说话人的10条语音样本输入说话人编码器得到10个说话人嵌入,取10个说话人嵌入的平均值作为当前说话人的说话人嵌入表示。
[0044]
作为优选,内容编码器的具体处理包括以下子步骤:
[0045]
子步骤c1,将原说话人mel谱图x输入内容编码器,经过前馈模块,包括layernorm层、linear层、swish激活层和dropout层,得到x1=x+ffn(x),其中ffn表示前馈模块;
[0046]
子步骤c2,经过多头自注意模块,包括layernorm层、多头自注意层和dropout层,得到x2=x1+mha(x1),其中mha表示多头自注意模块
[0047]
子步骤c3,x2经过卷积模块得到x3=x2+conv(x2),其中conv表示卷积模块,包括layernorm层、1维卷积层、门控线性单元层、instancenorm层和dropout层
[0048]
子步骤c4,通过和说话人嵌入s连接后同时输入前馈模块中,得到子步骤c4,通过和说话人嵌入s连接后同时输入前馈模块中,得到表示concat连接
[0049]
子步骤c5,经过layernorm层得到内容嵌入c。
[0050]
作为优选,解码器的具体处理包括以下子步骤:
[0051]
子步骤d1,将经过时长转换后的内容信息c和目标说话人信息s输入内容编码器,内容信息经过c前馈模块,包括layernorm层、linear层、swish激活层和dropout层,得到c1=c+ffn(c),其中ffn表示前馈模块;
[0052]
子步骤d2,c1经过多头自注意模块,包括layernorm层、多头自注意层和dropout层,得到c2=c1+mha(c1),其中mha表示多头自注意模块;
[0053]
子步骤d3,c2经过卷积模块得到c3=c2+conv(c2),其中conv表示卷积模块,包括layernorm层、1维卷积层、门控线性单元层、instancenorm层和dropout层
[0054]
子步骤d4,通过和说话人嵌入s连接后同时输入前馈模块中,得到其中表示concat连接;
[0055]
子步骤d5,c4经过layernorm层和postnet网络得到转换后的mel谱图其中pn表示postnet网络,postnet包括1d卷积层和batchnorm层。
[0056]
作为优选,所述的步骤6中还包括风格转换,风格转换包括以下子步骤:
[0057]
子步骤e1,转换前在说话人嵌入su和sv的最前端加入一个投影向量表示说话人的身份信息;
[0058]
子步骤e2,将转换说话人后的mel谱图序列输入说话人编码器中,得到转换后的说话人嵌入表示,分别为su′
=es(xu′
)和sv′
=es(xv′
);
[0059]
子步骤e3,以周期一致性损失l
cycle
对转换后的说话人嵌入su′
和sv′
与原说话人的说话人嵌入su和sv进行说话人的损失计算;
[0060]
子步骤e4,提取转换后的说话人嵌入su′
和sv′
的投影向量,以身份丢失损失l
id
对转换后的说话人嵌入su′
和sv′
与原说话人的说话人嵌入su和sv进行身份的损失计算。
[0061]
本发明的实质性特点在于(1)本发明通过引入音素时长转换器,利用设计好的音素级信息瓶颈来分离说话人内容信息和说话人风格信息,可以适用于零次学习,对训练数据集外的语音也同样适用。(2)本发明在训练过程中利用新的自重构损失训练整体模型,同时加入周期一致性损失和身份损失进一步分离说话人内容和说话人信息,使两者能更有效地分离,可以得到更好地对目标进行转换。(3)本发明利用新的内容编码器和解码器进行编解码过程,提高转换的性能,不仅减少了运算时间,转换方法也不需要并行的语音数据,降低了数据收集成本,有效节约了资源和时间成本。
附图说明
[0062]
图1本发明的系统训练阶段流程图;
[0063]
图2本发明的系统转换阶段流程图;
[0064]
图3本发明的时长转换器结构图;
[0065]
图4本发明的音素预测器、时长预测器结构图;
[0066]
图5本发明的说话人编码器结构图;
[0067]
图6本发明的内容编码器结构图;
[0068]
图7本发明的解码器结构图;
[0069]
图8具体训练过程流程图。
具体实施方式
[0070]
下面通过具体实施例,并结合附图,对本发明的技术方案作进一步的具体说明。
[0071]
实施例1
[0072]
本发明的语音转换系统在训练阶段流程图如图1所示,转换阶段流程图如图2所示,接下来详细阐述系统各主要模块的内容。
[0073]
音素时长转换器:
[0074]
在一些新型语音转换模型中,通过调整下采样因子形成合适的信息瓶颈以分离说话人内容信息和说话人风格信息。然而,由于高度依赖于信息瓶颈,因此必须通过多次实验到合适的下采样因子才能实现高性能的转换,当下采样因子较大时会降低音频质量,下采样因子较小则会降低转换的性能。本发明使用帧级音素信息进行传输和转换,提出了一种帧级音素的下采样方法,从mel谱图中分离出内容和说话人信息,在没有到合适的下采样因子的情况下也能提高音频质量和语音转换性能。
[0075]
本发明为了应用音素持续时长可控的语音转换,加入了音素时长转换器。它由帧级下采样器、音素级上采样器、音素预测器和时长预测器组成,具体结构如图3所示。其中音素预测器和时长预测器的结构如图4所示。
[0076]
帧级信息瓶颈的提取和使用可分为下采样和上采样两个过程。对于下采样过程,设c
mel
=[h1,h2,

,hn]为mel谱图隐藏序列,为音素隐藏序列,其中n和m分别为mel谱图和音素隐藏序列的长度。
[0077]
为了进行帧级下采样,本发明使用音素预测器p
pho
,用于预测c
mel
的音素标签序列并通过优化预测得到的音素标签序列与真实音素标签序列p=[p1,p2,

,pn]之间的音素分类损失来训练音素预测器,音素分类损失表示为:
[0078][0079]
其中n是隐藏序列mel谱图的长度,p
pho
表示音素预测器。当给定预测的音素隐藏序列后,下取样器ds对c
mel
执行下采样,下采样过程表示为:
[0080][0081]
其中c
mel
为mel谱图隐藏序列,为给定的预测音素标签序列,ds为下采样器,为第i个音素隐藏序列,m为音素隐藏序列的长度。
[0082]
为了将音素隐藏序列c
pho
扩展回隐藏序列c
mel
,使用了持续时长预测器pd和基于音素级持续时长的上采样器us。其中将映射到每个音素的谱图帧数量称为音素持续时长。为了通过目标说话人的信息来预测c
pho
对应的音素时长序列,下采样后的c
pho
和说话人嵌入s都输入到时长预测器pd中。然后,考虑到目标说话人嵌入的信息,pd预测对应于c
pho
的音素持续时间序列通过将源说话人嵌入pd来预测源说话人信息的通过和真实音素的持续时间序列d=[d1,d2,

,dm]之间的l1损失来训练持续时间预测器,该损失函
数表示为:
[0083][0084]
其中m为音素隐藏序列的长度,pd为时长预测器,为第i个音素隐藏序列,di为第i个音素的持续时长。
[0085]
当确定了预测的音素持续时间序列上采样器us将c
pho
扩展为基于的扩展的mel谱图隐藏序列上采样过程表示为:
[0086][0087]
其中k是mel谱图序列的长度,它等于训练阶段的n,α是一个超参数,控制每个音素扩展的时间,c
pho
为音素隐藏序列,us为上采样器,为第i个mel谱图隐藏序列。
[0088]
音素时长转换的具体过程如下:
[0089]
(1)将经过内容编码器得到的内容信息即mel谱图隐藏序列c
mel
输入音素预测器。
[0090]
(2)音素预测器得到mel谱图隐藏序列c
mel
对应的音素标签序列
[0091]
(3)将mel谱图隐藏序列c
mel
对应的音素标签序列同时输入下采样器中进行下采样去除说话人的音素持续时间信息,得到音素隐藏序列c
pho

[0092]
(4)将经过说话人编码器得到的目标说话人信息输入时长预测器,得到目标说话人的音素持续时间序列
[0093]
(5)将音素隐藏序列c
pho
和目标说话人的音素持续时间序列同时输入上采样器进行上采样添加目标说话人的音素持续时间信息,得到时长转换后的mel谱图隐藏序列说话人编码器:
[0094]
为了使说话人嵌入能够应用到训练集说话人外的语音,通过在多说话人数据集上使用ge2e损失对由3层lstm组成的说话人编码器进行预训练。然后,将同一说话人的多个语音输入说话人编码器。最后使用说话人编码器生成的多个嵌入的平均值作为说话人嵌入。说话人编码器的总体架构如图5所示。
[0095]
说话人编码器的具体过程为:
[0096]
(1)将目标说话人mel谱图x输入说话人编码器,首先mel谱图x经过三层lstm得到x1。
[0097]
(2)经过三层lstm后提取最后一层输出记为x2。
[0098]
(3)x2经过linear层后得到说话人嵌入表示s。
[0099]
(4)为了使同一说话人提取出相同的说话人嵌入信息,将同一个说话人的10条语音样本输入说话人编码器得到10个说话人嵌入,取10个说话人嵌入的平均值作为当前说话人的说话人嵌入表示。
[0100]
内容编码器、解码器:
[0101]
基于transformer和卷积神经网络cnn的模型在语音识别领域都已经达到了较好的效果,且都优于递归神经网络的效果。transformer能够捕获长序列中内容的全局交互信息,cnn则能够有效利用局部特征。因此将transformer和cnn结合对音频序列局部和全局信
息进行建模,针对语音转换问题提出了卷积增强的transformer模型conformer。
[0102]
内容编码器由conformer模块组成,将源说话人的mel谱图转换为隐藏表示序列。内容编码器的总体架构如图6所示,主要由前馈模块、多头自注意模块、卷积模块这三个部分组成的,每个模块上都用了残差。其中前馈模块使用swish激活函数和dropout层。多头自注意模块使用相对位置编码,这使得模型对不同长度的各种输入具有更好的鲁棒性。卷积模块由layernorm层、具有门控线性单元(glu)激活的一维卷积层构成。解码器由conformer块和postnet组成,将经过音素时长转换器的隐藏表示序列和说话人嵌入转换为目标说话人的mel谱图。然后经过postnet对mel谱图进行细化。其中postnet结构如图7所示。
[0103]
内容编码器的具体过程为:
[0104]
(1)将原说话人mel谱图x输入内容编码器,首先经过前馈模块,其中前馈模块包括layernorm层、linear层、swish激活层和dropout层,得到x1=x+ffn(x),其中ffn表示前馈模块。
[0105]
(2)再经过多头自注意模块,其中多头自注意模块包括layernorm层、多头自注意层和dropout层,得到x2=x1+mha(x1),其中mha表示多头自注意模块。
[0106]
(3)x2经过卷积模块得到x3=x2+conv(x2),其中conv表示卷积模块,包括layernorm层、1维卷积层、门控线性单元层、instancenorm层和dropout层。
[0107]
(4)通过和说话人嵌入s连接后同时输入前馈模块中,其中前馈模块包括layernorm层、linear层、swish激活层和dropout层,得到其中ffn表示前馈模块,表示concat连接。
[0108]
(5)最后经过layernorm层得到内容嵌入c。
[0109]
解码器的具体过程为:
[0110]
(1)将经过时长转换后的内容信息c和目标说话人信息s输入内容编码器,首先内容信息经过c前馈模块,其中前馈模块包括layernorm层、linear层、swish激活层和dropout层,得到c1=c+ffn(c),其中ffn表示前馈模块。
[0111]
(2)c1经过多头自注意模块,其中多头自注意模块包括layernorm层、多头自注意层和dropout层,得到c2=c1+mha(c1),其中mha表示多头自注意模块。
[0112]
(3)c2经过卷积模块得到c3=c2+conv(c2),其中conv表示卷积模块,包括layernorm层、1维卷积层、门控线性单元层、instancenorm层和dropout层。
[0113]
(4)通过和说话人嵌入s连接后同时输入前馈模块中,其中前馈模块包括layernorm层、linear层、swish激活层和dropout层,得到其中ffn表示前馈模块,表示concat连接。
[0114]
(5)c4经过layernorm层和postnet网络得到转换后的mel谱图其中pn表示postnet网络,postnet包括1d卷积层和batchnorm层。
[0115]
自重构过程:
[0116]
假设有来自同一语音不同片段的两个mel谱图序列,分别为xu=[xu,x
u+1
,

,x
u+n
]和xv=[xv,x
v+1
,

,x
v+n
],xu和xv表示同一语音在不同段上的起始位置,n表示mel谱图的长度。传统模型大多是用xu=xv=x来训练模型。虽然x根据其自身的特征进行了自重构,但对于特征分解,这种训练模式不同于xu≠xv时的转换设置。因此本发明通过只对同一个语音中
的不同片段进行自重构。采用的损失函数定义如下:
[0117]
l
recon
=||x
u-d(cu,sv)||2+||x
v-d(cv,su)||2ꢀꢀꢀꢀꢀ⑸
[0118]
其中xu和xv为同一语音在不同段的mel谱图,cu和cv为不同段语音的内容嵌入表示,sv和su为不同段语音的说话人嵌入表示。
[0119]
由于不同的损失函数可以提供不同的基础分布。因此本发明使用不同损失函数的线性组合,以便更好地跟踪输入数据的潜在分布,对源语音进行更合理的自重构,能更好地学习潜在空间的分布情况。将成对话语的自重构损失函数进一步修改,利用l1和l2线性组合对输出和相应目标之间的差值进行计算。修改后的损失函数如下所示:
[0120][0121]
其中α和β为超参数,且始终保持α+β=1。
[0122]
自重构的具体过程为:
[0123]
(1)将cu和cv、sv和su输入解码器,得到转换说话人嵌入后的mel谱图序列xu′
和xv′
,其中xu′
=d(cu,sv),xv′
=d(cv,su),cu和cv为不同段语音的内容嵌入表示,sv和su为不同段语音的说话人嵌入表示,d表示解码器。
[0124]
(2)以l1和l2线性组合的自重构损失l
recon
对转换说话人后的mel谱图序列xu′
和xv′
与对应原说话人mel谱图序列xu和xv进行内容的损失计算。
[0125]
增强说话人风格的一致性和可分性:
[0126]
为了使说话人嵌入对同一说话人保持不变,本发明增加了周期一致性损失项。假设xu′
和xv′
是解码器产生的语音特征,xu′
=d(cu,sv),xv′
=d(cv,su),则周期一致性损失定义如下:
[0127]
l
cycle
=||s
u-sv||2+||s
u-es(xu′
)||2+||x
v-es(xv′
)||2ꢀꢀꢀꢀꢀ⑺
[0128]
其中su和sv为不同段语音的说话人嵌入表示,es为说话人编码器。
[0129]
周期一致性损失会使同一说话人片段的说话人嵌入更加紧密。但为了使不同说话人语音中的说话人嵌入保持可区分性,因为它们必须与相应的话语共享互信息,才能实现自我重构。然而,最小化周期一致性损失也可能会使不同说话人的说话人嵌入不那么可分离。因此额外利用说话人身份信息来解决这个问题。在说话人嵌入的顶部增加一个投影向量用于说话人分类。假设d代表说话人在样本语音中的one-hot向量,l
cross
代表交叉熵损失,则说话人身份丢失损失表示为:
[0130]
l
id
=l
cross
(pr(su′
),d)+l
cross
(pr(sv′
),d)
ꢀꢀꢀꢀꢀ⑻
[0131]
其中su和sv为不同段语音的说话人嵌入表示,pr为提取说话人嵌入的投影向量。
[0132]
风格转换的具体过程为:
[0133]
(1)转换前在说话人嵌入su和sv的最前端加入一个投影向量表示说话人的身份信息。
[0134]
(2)将转换说话人后的mel谱图序列输入说话人编码器中,得到转换后的说话人嵌入表示,分别为su′
=es(xu′
)和sv′
=es(xv′
)。
[0135]
(3)以周期一致性损失l
cycle
对转换后的说话人嵌入su′
和sv′
与原说话人的说话人嵌入su和sv进行说话人的损失计算。
[0136]
(3)提取转换后的说话人嵌入su′
和sv′
的投影向量,以身份丢失损失l
id
对转换后
的说话人嵌入su′
和sv′
与原说话人的说话人嵌入su和sv进行身份的损失计算。
[0137]
转换过程:
[0138]
本发明所提出的系统主要由三个部分组成,第一部分是利用音素级信息瓶颈将语音内容和说话人特征分离,并通过音素时长转换器控制说话人音素的持续时长特征。第二部分是利用修改后的自重构损失训练模型,同时加入增强说话人风格的一致性和可分性的周期一致性损失和身份损失保证不同说话人之间语音内容和说话人特征分离。训练后的模型用来从源说话人隐藏序列表示合成目标的隐藏序列表示。第三部分是利用由conformer构成的解码器将转换后的目标隐藏序列快速转换成目标的mel谱图,最后把转换后的目标mel谱图输入声码器,合成语音波形,得到转换后的语音,即生成具有目标说话人的身份信息且保留源说话人的内容的语音。
[0139]
语音转换的具体过程如下:
[0140]
(1)首先训练转换模型,获取源说话人的语音数据库,提取出两个不同片段的源说话人mel谱图序列xu=[xu,x
u+1
,

,x
u+n
]和xv=[xv,x
v+1
,

,x
v+n
],作为训练用的语音特征。其中u和v为mel谱图序列开始的序号,n为提取的mel谱图序列长度。训练过程如图8所示。
[0141]
(2)将提取的mel谱图序列经过内容编码器ec将mel谱图编码为mel谱图隐藏序列,表示为:
[0142]cu
=ec(xu)
ꢀꢀꢀ⑼
[0143]cv
=ec(xv)
ꢀꢀꢀ⑽
[0144]
(3)同时将这两个不同片段的源说话人语音输入到说话人编码器es得到说话人嵌入su和sv,表示为:
[0145]
su=es(xu)
ꢀꢀꢀꢀ⑾
[0146]
sv=es(xv)
ꢀꢀꢀꢀ⑿
[0147]
(4)将对应片段的内容嵌入和说话人嵌入cu、su与cv、sv输入到持续时长转换器中,输出得到持续时长转换后的cu′
和cv′

[0148]
(5)将cu′
、su,cv′
、sv输入解码器中利用总体损失函数l
total
进行训练,其中为了使初始估计后重建mel谱图的更精细,在解码器末端使用postnet提高生成的mel谱图的质量,总体损失函数如下所示:
[0149]
l
total
=l
recon

p
l
pho
+λdld+l
cycle
+l
id
ꢀꢀꢀꢀꢀ⒀
[0150]
(6)训练结束后,在转换阶段,获取原说话人语音mel谱图x和目标说话人语音mel谱图y,将原说话人语音mel谱图x输入内容编码器得到内容嵌入c,将目标说话人语音mel谱图y输入到说话人编码器并得到说话人嵌入s。
[0151]
(7)将内容嵌入c和说话人嵌入s同时输入音素时长转换器中,得到音素持续时长转换后的内容嵌入c


[0152]
(8)将音素持续时长转换后的内容嵌入c

和说话人嵌入s同时输入解码器中得到转换后的mel谱图y


[0153]
(9)将(8)中得到的转换mel谱图y

输入声码器中合成语音波形,获得与目标说话人相似的高质量语音。

技术特征:


1.一种用于个性化语音生成的语音转换方法,其特征在于,包括:步骤1,训练转换模型,获取源说话人的语音数据库,提取出两个不同片段的源说话人mel谱图序列x
u
=[x
u
,x
u+1
,

,x
u+n
]和x
v
=[x
v
,x
v+1
,

,x
v+n
],作为训练用的语音特征;其中u和v为mel谱图序列开始的序号,n为提取的mel谱图序列长度;步骤2,将提取的mel谱图序列经过内容编码器e
c
将mel谱图编码为mel谱图隐藏序列,表示为:c
u
=e
c
(x
u
)
ꢀꢀ⑼
c
v
=e
c
(x
v
)
ꢀꢀ⑽
步骤3,同时将这两个不同片段的源说话人语音输入到说话人编码器e
s
得到说话人嵌入s
u
和s
v
,表示为:s
u
=e
s
(x
u
)
ꢀꢀ⑾
s
v
=e
s
(x
v
)
ꢀꢀ⑿
步骤4,将对应片段的内容嵌入和说话人嵌入c
u
、s
u
与c
v
、s
v
输入到音素时长转换器中,将c
u
中的音素持续时长转换为s
v
的音素持续时长,同理将c
v
中的音素持续时长转换为s
u
的音素持续时长,输出得到音素持续时长转换后的c
u

和c
v

;步骤5,将对应的c
u

、s
u
,c
v

、s
v
输入解码器中利用总体损失函数l
total
进行训练,其中为了使初始估计后重建mel谱图的更精细,在解码器末端使用postnet提高生成的mel谱图的质量,总体损失函数如下所示:l
total
=l
recon

p
l
pho

d
l
d
+l
cycle
+l
id
ꢀꢀ⒀
完成训练;步骤6,实际转换,获取原说话人语音mel谱图x和目标说话人语音mel谱图y,将原说话人语音mel谱图x输入内容编码器得到内容嵌入c,将目标说话人语音mel谱图y输入到说话人编码器并得到说话人嵌入s;步骤7,将内容嵌入c和说话人嵌入s同时输入音素时长转换器中,得到音素持续时长转换后的内容嵌入c

;步骤8,将音素持续时长转换后的内容嵌入c

和说话人嵌入s同时输入解码器中得到转换后的mel谱图y

;步骤9,将步骤8中得到的转换mel谱图y

输入声码器中合成语音波形,获得与目标说话人相似的高质量语音。2.根据权利要求1所述的一种用于个性化语音生成的语音转换方法,其特征在于,所述的步骤2包括以下子步骤:子步骤a1,将mel谱图隐藏序列c
mel
输入音素预测器;子步骤a2,使用音素预测器得到mel谱图隐藏序列c
mel
对应的音素标签序列子步骤a3,将mel谱图隐藏序列c
mel
对应的音素标签序列同时输入下采样器中进行下采样去除说话人的音素持续时间信息,得到音素隐藏序列c
pho
;子步骤a4,将经过说话人编码器得到的目标说话人信息输入时长预测器,得到目标说话人的音素持续时间序列子步骤a5,将音素隐藏序列c
pho
和目标说话人的音素持续时间序列同时输入上采样器
进行上采样添加目标说话人的音素持续时间信息,得到时长转换后的mel谱图隐藏序列3.根据权利要求2所述的一种用于个性化语音生成的语音转换方法,其特征在于,所述的音素预测器p
pho
,用于预测c
mel
的音素标签序列通过优化预测得到的音素标签序列与真实音素标签序列p=[p1,p2,

,p
n
]之间的音素分类损失来训练音素预测器,音素分类损失表示为:其中n是隐藏序列mel谱图的长度,p
pho
表示音素预测器;当给定预测的音素隐藏序列后,下取样器ds对c
mel
执行下采样,下采样过程表示为:其中c
mel
为mel谱图隐藏序列,为给定的预测音素标签序列,ds为下采样器,为第i个音素隐藏序列,m为音素隐藏序列的长度;为了将音素隐藏序列c
pho
扩展回隐藏序列c
mel
,使用了持续时长预测器p
d
和基于音素级持续时长的上采样器us;为了通过目标说话人的信息来预测c
pho
对应的音素时长序列,下采样后的c
pho
和说话人嵌入s都输入到时长预测器p
d
中;p
d
预测对应于c
pho
的音素持续时间序列通过将源说话人嵌入p
d
来预测源说话人信息的通过和真实音素的持续时间序列d=[d1,d2,

,d
m
]之间的l1损失来训练持续时间预测器,该损失函数表示为:其中m为音素隐藏序列的长度,p
d
为时长预测器,为第i个音素隐藏序列,d
i
为第i个音素的持续时长;上采样器us将c
pho
扩展为基于的扩展的mel谱图隐藏序列上采样过程表示为:其中k是mel谱图序列的长度,它等于训练阶段的n,α是一个超参数,控制每个音素扩展的时间,c
pho
为音素隐藏序列,us为上采样器,为第i个mel谱图隐藏序列,是音素持续时间序列。4.根据权利要求1所述的一种用于个性化语音生成的语音转换方法,其特征在于,步骤3中所述的话人编码器e
s
的编码过程包括以下子步骤:子步骤b1,将目标说话人mel谱图x输入说话人编码器,mel谱图x经过三层lstm得到x1;子步骤b2,提取出子步骤b1最后一层输出记为x2;子步骤b3,x2经过linear层后得到说话人嵌入表示s子步骤b4,为了使同一说话人提取出相同的说话人嵌入信息,将同一个说话人的10条
语音样本输入说话人编码器得到10个说话人嵌入,取10个说话人嵌入的平均值作为当前说话人的说话人嵌入表示。5.根据权利要求1所述的一种用于个性化语音生成的语音转换方法,其特征在于,所述的内容编码器的具体处理包括以下子步骤:子步骤c1,将原说话人mel谱图x输入内容编码器,经过前馈模块,包括layernorm层、linear层、swish激活层和dropout层,得到x1=x+ffn(x),其中ffn表示前馈模块;子步骤c2,经过多头自注意模块,包括layernorm层、多头自注意层和dropout层,得到x2=x1+mha(x1),其中mha表示多头自注意模块;子步骤c3,x2经过卷积模块得到x3=x2+conv(x2),其中conv表示卷积模块,包括layernorm层、1维卷积层、门控线性单元层、instancenorm层和dropout层;子步骤c4,通过和说话人嵌入s连接后同时输入前馈模块中,得到子步骤c4,通过和说话人嵌入s连接后同时输入前馈模块中,得到表示concat连接;子步骤c5,经过layernorm层得到内容嵌入c。6.根据权利要求1或5所述的一种用于个性化语音生成的语音转换方法,其特征在于,所述的解码器的具体处理包括以下子步骤:子步骤d1,将经过时长转换后的内容信息c和目标说话人信息s输入内容编码器,内容信息经过c前馈模块,包括layernorm层、linear层、swish激活层和dropout层,得到c1=c+ffn(c),其中ffn表示前馈模块;子步骤d2,c1经过多头自注意模块,包括layernorm层、多头自注意层和dropout层,得到c2=c1+mha(c1),其中mha表示多头自注意模块;子步骤d3,c2经过卷积模块得到c3=c2+conv(c2),其中conv表示卷积模块,包括layernorm层、1维卷积层、门控线性单元层、instancenorm层和dropout层子步骤d4,通过和说话人嵌入s连接后同时输入前馈模块中,得到其中表示concat连接;子步骤d5,c4经过layernorm层和postnet网络得到转换后的mel谱图其中pn表示postnet网络,postnet包括1d卷积层和batchnorm层。7.根据权利要求1所述的一种用于个性化语音生成的语音转换方法,其特征在于,所述的步骤6中还包括风格转换,风格转换包括以下子步骤:子步骤e1,转换前在说话人嵌入s
u
和s
v
的最前端加入一个投影向量表示说话人的身份信息;子步骤e2,将转换说话人后的mel谱图序列输入说话人编码器中,得到转换后的说话人嵌入表示,分别为s
u

=e
s
(x
u

)和s
v

=e
s
(x
v

);子步骤e3,以周期一致性损失l
cycle
对转换后的说话人嵌入s
u

和s
v

与原说话人的说话人嵌入s
u
和s
v
进行说话人的损失计算;子步骤e4,提取转换后的说话人嵌入s
u

和s
v

的投影向量,以身份丢失损失l
id
对转换后的说话人嵌入s
u

和s
v

与原说话人的说话人嵌入s
u
和s
v
进行身份的损失计算。

技术总结


本发明使用基于音素的信息瓶颈来表征说话人风格和控制转换语音的速度,由内容编码器、说话人编码器、音素时长转换器、解码器和声码器组成。通过编码器和解码器之间的信息瓶颈从源语音中分离出内容信息,并将其与目标说话人嵌入一起输入解码器,最后输入声码器并生成转换后的语音。本发明通过引入持续时长转换器,利用设计好的音素级信息瓶颈来分离说话人内容信息和说话人风格信息,可以适用于零次学习,对训练数据集外的语音也同样适用。对训练数据集外的语音也同样适用。对训练数据集外的语音也同样适用。


技术研发人员:

简志华 章子旭 金宏辉 杨曼 吴超 吴迎笑

受保护的技术使用者:

杭州电子科技大学

技术研发日:

2022.08.16

技术公布日:

2022/11/22

本文发布于:2024-09-20 12:08:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/784.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:音素   说话   序列   步骤
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议