1.本技术涉及语音合成技术领域,特别是涉及一种语音合成方法和装置。
背景技术:2.语音合成(text to speech,tts):输入为文本信息,输出为目标说话人的语音。一般分为前端,声学模型和声码器三个模块,其中前端用于将文本信息转化为音素序列,声学模型用于将音素序列转化为声学特征,声码器则用于将声学特征转化为最终完整的语音。
3.在传统端到端的语音合成方案中,长短差距过大的文本数据可能造成声学模型的收敛速度慢,合成效果差,因此通常在文本数据准备阶段,就会限制文本数据的长度在中短句范围内。如果用中短语句训练出的声学模型直接对长文本进行语音合成,可能会出现丢字、模糊等问题,影响语音合成的效果。同时,在资源有限的情况下,超长文本数据及其对应的声学特征的数量通常较少,限制了声学模型的训练效果。
技术实现要素:4.本技术提供一种扩展性强、易收敛的语音合成方法和装置,能够实现有限数据资源下的超长语音的合成。
5.为了解决上述问题,本技术采用了以下的技术方案:
6.第一方面,本技术实施例提供了一种语音合成方法,所述方法包括:
7.获得待处理文本对应的音素序列;
8.将所述音素序列输入预先训练的声学模型,得到对应的声学特征;
9.对所述声学特征进行处理,得到语音合成结果;
10.其中,将所述音素序列输入预先训练的声学模型,得到对应的声学特征,包括以下步骤:
11.对所述音素序列中的前n个音素进行绝对位置编码,生成对应的n个绝对位置编码向量;
12.对所述音素序列中剩余的每个音素,根据所述n个绝对位置编码向量进行相对位置编码,生成对应的相对位置编码向量;
13.对所述音素序列的编码结果进行处理,得到对应的声学特征。
14.在本技术一实施例中,对所述音素序列中剩余的每个音素,根据所述n个绝对位置编码向量进行相对位置编码,生成对应的相对位置编码向量,包括:
15.根据所述n个绝对位置编码向量,生成n个位置编码基向量;
16.对音素序列中剩余的每个音素,对所述n个位置编码基向量中的两个位置编码基向量进行线性变换,生成对应的相对位置编码向量。
17.在本技术一实施例中,对音素序列中剩余的每个音素,对所述n个位置编码基向量中的两个位置编码基向量进行线性变换,生成对应的相对位置编码向量,包括:
18.对音素序列中的第m个音素,按照以下公式,生成对应的相对位置编码向量:
19.q
m
=αb
i
+(1
‑
α)b
j
;
20.i=m//n+1;
21.j=m%n;
22.其中:α为超参数;n为绝对位置编码向量的最大序号值;m为序号值大于n的相对位置编码向量对应的序号值;i,j分别为m对n取整和取余得到的序号值;q
m
为第m个音素对应的相对位置编码向量;b
i
,b
j
分别为第i个位置编码基向量和第j个对应的位置编码基向量。
23.在本技术一实施例中,根据所述n个绝对位置编码向量,生成n个位置编码基向量,包括:
24.按照以下公式,生成第i个位置编码基向量,
[0025][0026]
其中:α为超参数;p1为音素序列中的第1个音素对应的绝对位置编码向量;p
i
为音素序列中的第i个音素对应的绝对位置编码向量;b
i
为第i个位置编码基向量。
[0027]
在本技术一实施例中,所述方法还包括:
[0028]
获得对长度不大于n的音素序列进行绝对位置编码的基础声学模型;
[0029]
获得样本文本对应的长度大于n的音素序列样本;
[0030]
将所述音素序列样本输入所述基础声学模型进行训练,得到所述预先训练的声学模型。
[0031]
第二方面,基于相同发明构思,本技术实施例提供了一种语音合成装置,所述装置包括:
[0032]
音素序列获得模块,用于获得待处理文本对应的音素序列;
[0033]
声学特征获得模块,用于将所述音素序列输入预先训练的声学模型,得到对应的声学特征;
[0034]
合成模块,用于对所述声学特征进行处理,得到语音合成结果;
[0035]
其中,声学特征获得模块包括:
[0036]
第一生成子模块,用于对所述音素序列中的前n个音素进行绝对位置编码,生成对应的n个绝对位置编码向量;
[0037]
第二生成子模块,对所述音素序列中剩余的每个音素,根据所述n个绝对位置编码向量进行相对位置编码,生成对应的相对位置编码向量;
[0038]
处理子模块,用于对所述音素序列的编码结果进行处理,得到对应的声学特征。
[0039]
在本技术一实施例中,所述第二生成子模块包括:
[0040]
基向量生成子模块,用于根据所述n个绝对位置编码向量,生成n个位置编码基向量;
[0041]
变换子模块,用于对音素序列中剩余的每个音素,对所述n个位置编码基向量中的两个位置编码基向量进行线性变换,生成对应的相对位置编码向量。
[0042]
在本技术一实施例中,所述变换子模块包括:
[0043]
第一变换子模块,用于对音素序列中的第m个音素,按照以下公式,生成对应的相对位置编码向量:
[0044]
q
m
=αb
i
+(1
‑
α)b
j
;
[0045]
i=m//n+1;
[0046]
j=m%n;
[0047]
其中:α为超参数;n为绝对位置编码向量的最大序号值;m为序号值大于n的相对位置编码向量对应的序号值;i,j分别为m对n取整和取余得到的序号值;q
m
为第m个音素对应的相对位置编码向量;b
i
,b
j
分别为第i个位置编码基向量和第j个对应的位置编码基向量。
[0048]
在本技术一实施例中,所述基向量生成子模块包括:
[0049]
第二变换子模块,用于按照以下公式,生成第i个位置编码基向量,
[0050][0051]
其中:α为超参数;p1为音素序列中的第1个音素对应的绝对位置编码向量;p
i
为音素序列中的第i个音素对应的绝对位置编码向量;b
i
为第i个位置编码基向量。
[0052]
在本技术一实施例中,所述装置还包括:
[0053]
第一获得模块,用于获得对长度不大于n的音素序列进行绝对位置编码的基础声学模型;
[0054]
第二获得模块,用于获得样本文本对应的长度大于n的音素序列样本;
[0055]
训练模块,用于将所述音素序列样本输入所述基础声学模型进行训练,得到所述预先训练的声学模型。
[0056]
与现有技术相比,本技术包括以下优点:
[0057]
本技术实施例提供的一种语音合成方法和装置,通过在绝对位置编码向量的基础上进行相对位置编码,生成与绝对位置编码向量具有强关联性的相对位置编码向量,使得相对位置编码不再受限于绝对位置编码的序列长度,进而能够满足超长语音合成的需求,同时在不对原始声学模型结构进行改动的前提下,通过简单的微调,即可得到扩展性强、易收敛的声学模型,不仅保证了超长语音合成的准确性,同时声学模型也无需重新训练,进而节省了数据资源,降低了迁移成本。
附图说明
[0058]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0059]
图1是本技术实施例中的一种语音合成方法的步骤流程图;
[0060]
图2是本技术实施例中步骤s102的具体步骤流程图;
[0061]
图3是本技术实施例中的一种语音合成装置的功能模块示意图;
[0062]
图4是本技术实施例中的一种语音合成装置中声学特征获得模块的功能子模块示意图。
[0063]
附图标记:200
‑
语音合成装置;201
‑
音素序列获得模块;202
‑
声学特征获得模块;203
‑
合成模块;2021
‑
第一生成子模块;2022
‑
第二生成子模块;2023
‑
处理子模块。
具体实施方式
[0064]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065]
本实施方式需要说明的是,在传统端到端的语音合成方案中,位置编码部分通常采用的是绝对位置编码,其公式为:
[0066][0067][0068]
其中:p为绝对位置编码的位置序号,d
pos
为绝对位置编码向量的维度,pe
2i
(p)为绝对位置编码向量的偶数位元素的数值,pe
2i+1
(p)为绝对位置编码向量的奇数位元素的数值。
[0069]
由公式(1)和公式(2)可知,绝对位置编码方式其实就是将序号为p的位置映射为一个d
pos
维的位置向量,随着序号p的不断变化,绝对位置编码向量的数值也随之变化,位置序号p是唯一影响绝对位置编码向量的因素,采用绝对位置编码,每个绝对位置编码向量都是声学模型自行训练出来的,前后位置不产生关联,因而无法推断其余位置的绝对位置编码向量,因此有了绝对位置编码的序列长度的限制。正是基于绝对位置编码的这一性质,如果声学模型训练阶段使用的是中短长度的语音训练集,那么在合成长语音时,由于声学模型没有经过足量的长语音训练且受限于绝对位置编码的序列长度,声学模型并不能有效识别并转换较长语音中超出绝对位置编码的序列长度部分的数据,造成最后合成的语音将出现丢字、模糊等问题。而如果直接将长语音加入语音训练集,又会因为数据长短差距过大,造成模型难以收敛,合成效果差。
[0070]
针对现有声学模型中采用绝对位置编码时存在的缺陷,本技术实施例提出了一种语音合成方法,旨在不对原始声学模型结构进行改动的前提下,通过简单的微调,即可得到扩展性强、易收敛的声学模型,使得该声学模型不再受限于绝对位置编码的序列长度,能够实现有限数据资源下的超长语音的准确合成。
[0071]
参照图1,示出了本技术实施例提出了一种语音合成方法,所述方法可以包括以下步骤:
[0072]
步骤s101,获得待处理文本对应的音素序列。
[0073]
在本实施方式中,根据待处理文本得到对应的拼音序列,根据所述拼音序列,得到对应的音素,其中所述音素包括声母和韵母,通过对所述音素进行编码排序,便可得到待处理文本对应的音素序列。
[0074]
步骤s102,将所述音素序列输入预先训练的声学模型,得到对应的声学特征。
[0075]
在本实施方式中,作为其中的一个优选方案,预先训练的声学模型采用fast speech模型,其中fast speech模型包括编码器模块、时长预测模块和解码器模块。
[0076]
具体地,音素序列首先通过编码器模块进行自编码,得到编码器输出,时长预测模块接收该编码器输出,预测音素序列对应的时长,并按照每个音素的时长进行扩展,得到音素矩阵,解码器模块接收音素矩阵进行自解码,便可得到对应的声学特征。
[0077]
本实施方式需要说明的是,在传统端到端的语音合成方案中,编码器模块和解码器模块通常采用绝对位置编码的编码方案,在本实施方式旨在对编码器模块和解码器模块的绝对位置编码方案进行优化,使得编码器模块和解码器模块在处理超长语音时,能够不再受限于绝对位置编码的序列长度,满足超长语音的合成需求。
[0078]
步骤s103,对所述声学特征进行处理,得到语音合成结果。
[0079]
在本实施方式中,可通过将所述声学特征送入声码器中进行合成,得到语音信号。
[0080]
具体地,图2是本技术实施例中步骤s102的具体步骤流程图,步骤s102可以包括以下步骤:
[0081]
步骤s102
‑
1,对所述音素序列中的前n个音素进行绝对位置编码,生成对应的n个绝对位置编码向量。
[0082]
在本实施方式中,绝对位置编码向量记为p1,p2,p3...p
n
,其中n为绝对位置编码的最大序号值,即在本实施方式中,对于音素序列中的序号值小于等于n的音素,沿用绝对位置编码进行编码,得到相对位置编码向量q1,q2,q3..q
n
,其中,
[0083]
q1=p1,q2=p2,....,q
n
=p
n
ꢀꢀꢀꢀꢀꢀ
(3);
[0084]
在本实施方式中,声学模型无需重新训练,而是可以继续使用预先训练的声学模型,并且新的生成对应的n个绝对位置编码向量由于与旧的绝对位置编码向量保持一致,因而能与预先训练的声学模型兼容。
[0085]
步骤s102
‑
2,对所述音素序列中剩余的每个音素,根据所述n个绝对位置编码向量进行相对位置编码,生成对应的相对位置编码向量。
[0086]
本实施方式需要说明的是,所述音素序列中剩余的每个音素即为音素序列中的序号值大于n的音素,针对这些音素,则是基于绝对位置编码,进行相对位置编码,生成与绝对位置编码向量q
n
具有强关联性的相对位置编码向量q
m
,其中m>n,使得声学模型能够顺利识别这部分音素对应的相对位置编码向量q
m
,避免最后合成的语音将出现丢字、模糊等问题。
[0087]
步骤s102
‑
3,对所述音素序列的编码结果进行处理,得到对应的声学特征。
[0088]
在一个可行的实施方式中,步骤s102
‑
2的具体步骤还可以包括:
[0089]
步骤s102
‑2‑
1,根据所述n个绝对位置编码向量,生成n个位置编码基向量。
[0090]
在本实施方式中,对于获取的n个绝对位置编码向量p1,p2,p3...p
n
,将每个绝对位置编码向量均分解为n个位置编码基向量b1,b2,b3...bn,即在原本n个编码位置的基础上,扩展出了n2个编码位置。
[0091]
步骤s102
‑2‑
2,对音素序列中剩余的每个音素,对所述n个位置编码基向量中的两个位置编码基向量进行线性变换,生成对应的相对位置编码向量的具体步骤还可以包括:
[0092]
在本实施方式中,对音素序列中的第m个音素,按照以下公式,生成对应的相对位置编码向量:
[0093]
q
m
=αb
i
+(1
‑
α)b
j
ꢀꢀꢀꢀꢀꢀꢀ
(4);
[0094]
i=m//n+1
ꢀꢀꢀꢀꢀꢀꢀ
(5);
[0095]
j=m%n
ꢀꢀꢀꢀꢀꢀ
(6);
[0096]
其中:α为超参数;n为绝对位置编码向量的最大序号值;m为序号值大于n的相对位置编码向量对应的序号值;i,j分别为m对n取整和取余得到的序号值;q
m
为第m个音素对应的相对位置编码向量;b
i
,b
j
分别为第i个位置编码基向量和第j个对应的位置编码基向量。
[0097]
根据公式(3)、公式(4)、公式(5)、公式(6)采用递推归纳法可以推导出:
[0098][0099]
其中:α为超参数;p1为音素序列中的第1个音素对应的绝对位置编码向量;p
i
为音素序列中的第i个音素对应的绝对位置编码向量;b
i
为第i个位置编码基向量。
[0100]
由公式(7)可以看出,位置编码基向量b
i
依旧由绝对位置编码向量p1,p2,p3...p
n
构成,但此时却能够表达n2个位置的编码,并且这n2个编码位置中的前n个位置是与预先训练的声学模型相兼容的,因而根据所述n个绝对位置编码向量,生成n个位置编码基向量时,可根据公式(7),生成第i个位置编码基向量。
[0101]
在一个可行的实施方式中,声学模型的绝对位置编码向量的最大序号值n为512,即绝对位置编码向量记为p1,p2,p3...p
512
,利用这该声学模型对一个音素序列长度最大序号值为1024的超长语音进行编码时,首先将音素序列拆分为序号值小于等于512的绝对位置编码向量q1,q2,q3..q
512
和序号值大于512的相对位置编码向量q
513
,q
514
,q
515
..q
1024
;
[0102]
对于q1,q2,q3..q
512
的音素序列,沿用对应的绝对位置编码向量,即q1=p1,q2=p2,....,q
512
=p
512
;
[0103]
对于q
513
,q
514
,q
515
..q
1024
的音素序列,则基于绝对位置编码q1,q2,q3..q
512
,进行相对位置编码,生成与绝对位置编码具有强关联性的相对位置编码向量,具体地,以相对位置编码向量q
600
为例,根据公式(5)和公式(6),其中,m为600,n为512,分别得到i为2,j为98,则根据公式(4)可得:
[0104]
q
600
=αb2+(1
‑
α)b
98
ꢀꢀꢀꢀꢀꢀ
(8);
[0105]
其中,根据公式(7)可得:
[0106][0107][0108]
根据公式(8)、公式(9)和公式(10)可知,根据已知的绝对位置编码p1、p2、p
98
便可得到相对位置编码向量q
600
。
[0109]
因而,音素序列可以拆分为序号值小于等于512的绝对位置编码向量q1,q2,q3..q
512
和序号值大于512的相对位置编码向量q
513
,q
514
,q
515
..q
1024
。
[0110]
即在本实施方式中,在合成超长语音的场景,即音素序列长度最大序号值大于512时,对于音素序列的序号值小于等于512的绝对位置编码向量q1,q2,q3..q
512
,模型不用从头开始训练,而是可以继续使用预先训练的声学模型。而对于音素序列的序号值大于512的相对位置编码向量q
513
,q
514
,q
515
..q
1024
,每个相对位置编码向量依旧通过之前的绝对位置编码向量经过线性变换得出,由此,新的相对位置编码向量同旧的绝对位置编码向量产生了较强的关联性,因而声学模型能够准确识别新的相对位置编码向量,即通过简单的微调,便可得到新的扩展性强且易收敛的声学模型。
[0111]
在一个可行的实施方式中,所述语音合成方法还可以包括以下步骤:
[0112]
步骤s104,获得对长度不大于n的音素序列进行绝对位置编码的基础声学模型。
[0113]
步骤s105,获得样本文本对应的长度大于n的音素序列样本。
[0114]
步骤s106,将所述音素序列样本输入所述基础声学模型进行训练,得到所述预先训练的声学模型。
[0115]
在本实施方式中,在进行声学模型的初始训练时,可以选取长度不大于n的音素序列对应的中短长度的语音训练集,进行绝对位置编码,以得到基础声学模型,在此基础上,只需要经过少量的样本文本对应的长度大于n的音素序列样本进行再训练,便可得到预先训练的声学模型。
[0116]
在本实施方式中,将音素序列根据绝对位置编码向量的最大序号值n拆分为两个部分,分别进行编码,其中,对于音素序列中序号值大于n的音素,通过在绝对位置编码向量的基础上进行相对位置编码,生成与绝对位置编码向量具有强关联性的相对位置编码向量,使得在不对原始声学模型结构进行改动的前提下,通过简单的微调,即可得到扩展性强、易收敛的声学模型,使得该声学模型不再受限于绝对位置编码的序列长度,能够实现有限数据资源下的超长语音的准确合成。
[0117]
基于同一发明构思,参照图3,图3是本技术实施例中的一种语音合成装置200的功能模块示意图,所述语音合成装置200至少包括:
[0118]
音素序列获得模块201,用于获得待处理文本对应的音素序列;
[0119]
声学特征获得模块202,用于将所述音素序列输入预先训练的声学模型,得到对应的声学特征;
[0120]
合成模块203,用于对所述声学特征进行处理,得到语音合成结果;
[0121]
其中,参照图4,声学特征获得模块202至少包括:
[0122]
第一生成子模块2021,用于对所述音素序列中的前n个音素进行绝对位置编码,生成对应的n个绝对位置编码向量;
[0123]
第二生成子模块2022,对所述音素序列中剩余的每个音素,根据所述n个绝对位置编码向量进行相对位置编码,生成对应的相对位置编码向量;
[0124]
处理子模块2023,用于对所述音素序列的编码结果进行处理,得到对应的声学特征。
[0125]
在本技术一实施例中,所述第二生成子模块2022包括:
[0126]
基向量生成子模块,用于根据所述n个绝对位置编码向量,生成n个位置编码基向量;
[0127]
变换子模块,用于对音素序列中剩余的每个音素,对所述n个位置编码基向量中的两个位置编码基向量进行线性变换,生成对应的相对位置编码向量。
[0128]
在本技术一实施例中,所述变换子模块包括:
[0129]
第一变换子模块,用于对音素序列中的第m个音素,按照以下公式,生成对应的相对位置编码向量:
[0130]
q
m
=αb
i
+(1
‑
α)b
j
;
[0131]
i=m//n+1;
[0132]
j=m%n;
[0133]
其中:α为超参数;n为绝对位置编码向量的最大序号值;m为序号值大于n的相对位置编码向量对应的序号值;i,j分别为m对n取整和取余得到的序号值;q
m
为第m个音素对应
的相对位置编码向量;b
i
,b
j
分别为第i个位置编码基向量和第j个对应的位置编码基向量。
[0134]
在本技术一实施例中,所述基向量生成子模块包括:
[0135]
第二变换子模块,用于按照以下公式,生成第i个位置编码基向量,
[0136][0137]
其中:α为超参数;p1为音素序列中的第1个音素对应的绝对位置编码向量;p
i
为音素序列中的第i个音素对应的绝对位置编码向量;b
i
为第i个位置编码基向量。
[0138]
在本技术一实施例中,所述装置还包括:
[0139]
第一获得模块,用于获得对长度不大于n的音素序列进行绝对位置编码的基础声学模型;
[0140]
第二获得模块,用于获得样本文本对应的长度大于n的音素序列样本;
[0141]
训练模块,用于将所述音素序列样本输入所述基础声学模型进行训练,得到所述预先训练的声学模型。
[0142]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd
‑
rom、光学存储器等)上实施的计算机程序产品的形式。
[0143]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0144]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0145]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0146]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0147]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0148]
以上对本发明所提供的一种语音合成方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。