一种语音合成方法及装置与流程

文档序号:31279020发布日期:2022-08-27 01:15阅读:112来源:国知局
一种语音合成方法及装置与流程

1.本技术涉及文语转换技术领域,尤其涉及一种语音合成方法及装置。


背景技术:

2.语音合成是通过机械的、电子的方法产生人造语音的技术,又称文语转换(text to speech,tts)技术,它能将任意文字信息实时转换为标准流畅的语音朗读出来,相当于是给机器装上了人工嘴巴。
3.目前,深度学习技术在文语转换领域得到了应用,利用构建的深度学习模型,可以直接处理文本对应的音素并以端到端的学习处理方式生成声学特征频谱(一般为梅尔频谱),再通过声码器处理得到最终合成的音频。就采用深度学习模型的处理方法而言,相较于传统方法,省去了文本预处理、分词、词性标注、注音、韵律层级预测等步骤,大大提高了语音合成的效果和降低了算法的复杂度。
4.但是,受限于模型训练所需训练数据的数量和质量,以及考虑到模型设计难度大等原因,现有的深度学习方法合成语音的音质效果仍不够理想。


技术实现要素:

5.有鉴于此,本技术提供了一种语音合成方法及装置,主要目的在于在利用预设语音合成模型进行语音合成的过程中,增加了特征调整模块并利用其调整音素的语速特征、音调特征和音量特征,从而本技术利用特征调整模块提高了模型对数据的特征提取和学习能力,同时也实现了模型算法的可调整性,提高语音合成效果。
6.为了达到上述目的,本技术主要提供如下技术方案:
7.本技术第一方面提供了一种语音合成方法,该方法包括:
8.对目标文本进行音素转换处理,得到所述目标文本对应的音素序列;
9.将所述音素序列输入预设语音合成模型进行处理,预测输出目标梅尔频谱,其中,所述预设语音合成模型中包含特征调整模块,所述特征调整模块用于在语音合成过程中调整音素的语速特征、音调特征和音量特征;
10.根据所述目标梅尔频谱,确定所述目标文本对应的音频数据。
11.在本技术第一方面的一些变更实施方式中,所述特征调整模块包括语速调整模块、基频调整模块和能量调整模块,所述利用预设语音合成模型处理所述音素序列,预测输出目标梅尔频谱,包括:
12.利用所述预设语音合成模型的编码器对所述音素序列进行处理,得到所述音素序列对应的第一文本特征向量;
13.将所述第一文本特征向量输入所述语速调整模块,输出经语速调整后各个音素对应的时长特征向量;
14.将所述第一文本特征向量输入所述基频调整模块,输出经音调调整后各个音素对应的基频特征向量,并组成第二文本特征向量;
15.将所述第二文本特征向量输入所述能量调整模块,输出经音量调整后各个音素对应的能量特征向量,并组成第三文本特征向量;
16.根据所述经语速调整后各个音素对应的时长特征向量,拉长处理所述第三文本特征向量直至向量长度等于梅尔频谱的长度,得到第四文本特征向量;
17.利用所述预设语音合成模型的解码器对所述第四文本特征向量进行处理,得到目标梅尔频谱。
18.在本技术第一方面的一些变更实施方式中,所述将所述第一文本特征向量输入所述语速调整模块,输出经语速调整后各个音素对应的时长特征向量,包括:
19.利用所述语速调整模块对所述第一文本特征向量进行时长预测处理,得到各个音素对应的时长特征向量;
20.根据预设时长分配权重与所述各个音素对应的时长特征向量相乘,得到经调整后各个音素对应的时长特征向量。
21.在本技术第一方面的一些变更实施方式中,所述将所述第一文本特征向量输入所述基频调整模块,输出经音调调整后各个音素对应的基频特征向量,并组成第二文本特征向量,包括:
22.利用所述基频调整模块对所述第一文本特征向量进行基频预测处理,得到各个音素对应的基频特征向量;
23.根据预设基频分配权重与所述各个音素对应的基频特征向量相乘,得到各个音素对应的目标基频特征向量;
24.将所述各个音素对应的目标基频特征向量与所述第一文本特征向量相加,得到经音调调整后各个音素对应的特征向量;
25.根据所述经音调调整后各个音素对应的特征向量,组成第二文本特征向量。
26.在本技术第一方面的一些变更实施方式中,所述将所述第二文本特征向量输入所述能量调整模块,输出经音量调整后各个音素对应的能量特征向量,并组成第三文本特征向量,包括:
27.利用所述能量调整模块对所述第二文本特征向量进行能量预测处理,得到各个音素对应的能量特征向量;
28.根据预设能量分配权重与所述各个音素对应的能量特征向量相乘,得到各个音素对应的目标能量特征向量;
29.将所述各个音素对应的目标能量特征向量与所述第二文本特征向量相加,得到经音量调整后各个音素对应的特征向量;
30.根据所述经音量调整后各个音素对应的特征向量,组成第三文本特征向量。
31.在本技术第一方面的一些变更实施方式中,所述根据所述经语速调整后各个音素对应的时长特征向量,拉长处理所述第三文本特征向量直至向量长度等于梅尔频谱的长度,得到第四文本特征向量,包括:
32.对于同一音素,建立经语速调整后各个音素对应的时长特征向量与所述第三文本特征向量内每个特征向量之间的映射关系;
33.计算经语速调整后各个音素的时长特征向量之间的整数比;
34.根据所述整数比,确定各个音素对应所需特征向量长度之间的目标整数比;
35.根据所述映射关系和所述目标整数比,对于各个音素,以复制音素的特征向量的方式增加向量长度,直至各个音素对应的向量序列长度之和达到梅尔频谱的长度,得到由各个音素组成的第四文本特征向量。
36.在本技术第一方面的一些变更实施方式中,在所述利用所述预设语音合成模型的编码器对所述音素序列进行处理,得到所述音素序列对应的第一文本特征向量之后,且在将所述第一文本特征向量输入所述语速调整模块和所述基频调整模块进行处理之前,所述方法还包括:
37.从预设说话人特征向量集中选取目标说话人特征向量;
38.向所述第一文本特征向量中添加所述目标说话人特征向量。
39.在本技术第一方面的一些变更实施方式中,所述方法还包括:
40.采集声音样本数据;
41.将所述声音样本数据转换为梅尔频谱数据;
42.将所述梅尔频谱数据输入预设说话人分类模型,输出不同个体对应的音频向量数据;
43.通过对每个个体对应的音频向量数据求平均值,得到不同个体对应的说话人特征向量;
44.根据所述不同个体对应的说话人特征向量,组成预设说话人特征向量集。
45.本技术第二方面提供了一种语音合成装置,该装置包括:
46.音素转换单元,用于对目标文本进行音素转换处理,得到所述目标文本对应的音素序列;
47.模型处理单元,用于将所述音素序列输入预设语音合成模型进行处理,预测输出目标梅尔频谱,其中,所述预设语音合成模型中包含特征调整模块,所述特征调整模块用于在语音合成过程中调整音素的语速特征、音调特征和音量特征;
48.确定单元,用于根据所述目标梅尔频谱,确定所述目标文本对应的音频数据。
49.在本技术第二方面的一些变更实施方式中,所述特征调整模块包括语速调整模块、基频调整模块和能量调整模块,所述模型处理单元包括:
50.编码处理模块,用于利用所述预设语音合成模型的编码器对所述音素序列进行处理,得到所述音素序列对应的第一文本特征向量;
51.语速调整模块,用于将所述第一文本特征向量输入所述语速调整模块,输出经语速调整后各个音素对应的时长特征向量;
52.基频调整模块,用于将所述第一文本特征向量输入所述基频调整模块,输出经音调调整后各个音素对应的基频特征向量,并组成第二文本特征向量;
53.能量调整模块,用于将所述第二文本特征向量输入所述能量调整模块,输出经音量调整后各个音素对应的能量特征向量,并组成第三文本特征向量;
54.拉长处理模块,用于根据所述经语速调整后各个音素对应的时长特征向量,拉长处理所述第三文本特征向量直至向量长度等于梅尔频谱的长度,得到第四文本特征向量;
55.解码处理模块,用于利用所述预设语音合成模型的解码器对所述第四文本特征向量进行处理,得到目标梅尔频谱。
56.在本技术第二方面的一些变更实施方式中,所述将所述语速调整模块包括:
57.预测处理子模块,用于利用所述语速调整模块对所述第一文本特征向量进行时长预测处理,得到各个音素对应的时长特征向量;
58.调整处理子模块,用于根据预设时长分配权重与所述各个音素对应的时长特征向量相乘,得到经调整后各个音素对应的时长特征向量。
59.在本技术第二方面的一些变更实施方式中,所述基频调整模块包括:
60.预测处理子模块,用于利用所述基频调整模块对所述第一文本特征向量进行基频预测处理,得到各个音素对应的基频特征向量;
61.调整处理子模块,用于根据预设基频分配权重与所述各个音素对应的基频特征向量相乘,得到各个音素对应的目标基频特征向量;
62.相加处理子模块,用于将所述各个音素对应的目标基频特征向量与所述第一文本特征向量相加,得到经音调调整后各个音素对应的特征向量;
63.组成子模块,用于根据所述经音调调整后各个音素对应的特征向量,组成第二文本特征向量。
64.在本技术第二方面的一些变更实施方式中,所述能量调整模块包括:
65.预测处理子模块,用于利用所述能量调整模块对所述第二文本特征向量进行能量预测处理,得到各个音素对应的能量特征向量;
66.调整处理子模块,用于根据预设能量分配权重与所述各个音素对应的能量特征向量相乘,得到各个音素对应的目标能量特征向量;
67.相加处理子模块,用于将所述各个音素对应的目标能量特征向量与所述第二文本特征向量相加,得到经音量调整后各个音素对应的特征向量;
68.组成子模块,用于根据所述经音量调整后各个音素对应的特征向量,组成第三文本特征向量。
69.在本技术第二方面的一些变更实施方式中,所述拉长处理模块包括:
70.建立子模块,用于对于同一音素,建立经语速调整后各个音素对应的时长特征向量与所述第三文本特征向量内每个特征向量之间的映射关系;
71.计算子模块,用于计算经语速调整后各个音素的时长特征向量之间的整数比;
72.确定子模块,用于根据所述整数比,确定各个音素对应所需特征向量长度之间的目标整数比;
73.拉长处理子模块,用于根据所述映射关系和所述目标整数比,对于各个音素,以复制音素的特征向量的方式增加向量长度,直至各个音素对应的向量序列长度之和达到梅尔频谱的长度,得到由各个音素组成的第四文本特征向量。
74.在本技术第二方面的一些变更实施方式中,所述模型处理单元还包括:
75.选取模块,用于从预设说话人特征向量集中选取目标说话人特征向量;
76.添加模块,用于向所述第一文本特征向量中添加所述目标说话人特征向量。
77.在本技术第二方面的一些变更实施方式中,所述装置还包括:
78.采集单元,用于采集声音样本数据;
79.频谱转换单元,用于将所述声音样本数据转换为梅尔频谱数据;
80.处理单元,用于将所述梅尔频谱数据输入预设说话人分类模型,输出不同个体对应的音频向量数据;
81.计算单元,用于通过对每个个体对应的音频向量数据求平均值,得到不同个体对应的说话人特征向量;
82.组成单元,用于根据所述不同个体对应的说话人特征向量,组成预设说话人特征向量集。
83.本技术第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的语音合成方法。
84.本技术第四方面提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的语音合成方法。
85.借由上述技术方案,本技术提供的技术方案至少具有下列优点:
86.本技术提供了一种语音合成方法及装置,对于待处理的目标文本,本技术首先是将其转换为音素序列,然后再将该音素序列输入到预设语音合成模型。本技术在预设语音合成模型中增加了特征调整模块,从而利用它在语音合成过程中调整音素的语速特征、音调特征和音量特征,经预设语音合成模型处理将会预测输出目标梅尔频谱,根据梅尔频谱就能够得到最终的音频数据了。在本技术中由于在预设语音合成模型中增加了特征调整模块,从而利用特征调整模块提高了模型对数据的特征提取和学习能力,同时也实现了模型算法的可调整性,提高语音合成效果。相较于现有技术,解决了现有的深度学习方法所采用的模型受限因素过多、设计难度大导致合成语音的音质效果不佳的技术问题。
87.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
88.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
89.图1为本技术实施例提供的一种语音合成方法流程图;
90.图2为本技术实施例提供的另一种语音合成方法流程图;
91.图3为本技术实施例提供的构建预设说话人特征向量集的具体实施方法的流程图;
92.图4为本技术实施例提供的一种语音合成装置的组成框图;
93.图5为本技术实施例提供的另一种语音合成装置的组成框图。
具体实施方式
94.下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本技术的示例性实施例,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
95.本技术实施例提供了一种语音合成方法,该方法在预设语音合成模型中增加了特
征调整模块,从而利用它在语音合成过程中调整音素的语速特征、音调特征和音量特征,实现了模型算法的可调整性,以提高语音合成音质效果,如图1所示,对此本技术实施例提供以下具体步骤:
96.101、对目标文本进行音素转换处理,得到目标文本对应的音素序列。
97.其中,音素是根据语音的自然属性划分出来的最小语音单位。以国际音标为例,对于拼音“hao”,通常为按照用于中文读音的声母、韵母进行分离,得到音素“h”“ao”。
98.在本技术实施例中,可以采用开源工具(例如pypinyin软件)将目标文本转换为对应的拼音。例如输入目标文本“好啊”,相应得到拼音[hao3 a5],其中,在转换过程中还考虑到了中文读音的音调,数字1~4代表四个声调,5表示轻声。进一步的,再采用“音素字典文件”内预先存储的拆分规则对拼音进行拆分得到相应的音素,例如由于待拆分对象为拼音,所以相应从“音素字典文件”内选择“中文读音声母和韵母进行分离”的拆分规则,将拼音[hao3 a5]转换为音素,得到音素序列[h,ao3,a5]。
[0099]
102、将音素序列输入预设语音合成模型进行处理,预测输出目标梅尔频谱。
[0100]
本技术实施例提供的预设语音合成模型中至少包含特征调整模块,特征调整模块用于在语音合成过程中调整音素的语速特征、音调特征和音量特征。
[0101]
其中,特征调整模块的结构由以下几部分组成:两个相同的串联的一维卷积模块(包括:一维卷积层、relu激活层、layer_norm正则化层、dropout层)和线性输出层模块。在特征调整模块处理过程中,能够对音素的语速特征、音调特征和音量特征进行适应的调整,目的是为满足不同需求而使得合成语音的语速、音调和音量也是可被调整的,这相当于是对模型算法的调整,从而提高了模型数据处理过程中特征提取和学习能力,方便于适应各种语音合成业务需求。
[0102]
在本技术实施例中,经预设语音合成模型处理输出的是声学特征频谱,一般为梅尔频谱,作为目标梅尔频谱,应用于后续获取最终音频数据。
[0103]
103、根据目标梅尔频谱,确定目标文本对应的音频数据。
[0104]
在本技术实施例中,将目标梅尔频谱输入到声码器进行处理,就能够输出对应的人声音频数据了。其中,该声码器可以但不限于是:基于神经网络的高速音频合成声码器(wavernn)、用于条件波形合成的生成对抗网络声码器(melgan)、拥有多尺度和多周期判别器的高效声码器(hifigan)。
[0105]
本技术实施例提供了一种语音合成方法,对于待处理的目标文本,本技术实施例首先是将其转换为音素序列,然后再将该音素序列输入到预设语音合成模型。本技术实施例在预设语音合成模型中增加了特征调整模块,从而利用它在语音合成过程中调整音素的语速特征、音调特征和音量特征,经预设语音合成模型处理将会预测输出目标梅尔频谱,根据梅尔频谱就能够得到最终的音频数据了。在本技术实施例中由于在预设语音合成模型中增加了特征调整模块,从而利用特征调整模块提高了模型对数据的特征提取和学习能力,同时也实现了模型算法的可调整性,提高语音合成效果。相较于现有技术,解决了现有的深度学习方法所采用的模型受限因素过多、设计难度大导致合成语音的音质效果不佳的技术问题。
[0106]
为了对上述实施例做出更加详细的说明,本技术实施例还提供了另一种语音合成方法,如图2所示,本技术实施例提供以下具体步骤:
[0107]
201、对目标文本进行音素转换处理,得到目标文本对应的音素序列。
[0108]
202、利用预设语音合成模型的编码器对音素序列进行处理,得到音素序列对应的第一文本特征向量。
[0109]
在本技术实施例中,预设语音合成模型至少包括编码器、特征调整模块和解码器,特征调整模块用于调整音素序列所包含的各个音素的语速特征、音调特征和音量特征。
[0110]
在利用编码器对音素序列处理的过程中,需要首先将音素序列所包含的每个音素转换为唯一对应的数字。例如,对于音素序列[h,ao3,a5],将h用2表示、ao3用4表示、a5用7表示,则得到序列[2,4,7],该数字序列与音素序列的长度相等,并且数字序列内每个数字与音素序列内的相应音素是存在一对一映射关系的:序列中“2”与“h”对应、“4”与“ao3”对应、“7”与“a5”对应。
[0111]
具体的,示例性的,对于将音素序列转换为对应数字序列,可以但不限于是采用如下具体实施方法:
[0112]
在本技术实施例中,在“音素字典文件”中,还可以存储n个音素和数字1~n对应关系(n为正整数),但需要说明的是,对于本技术实施例,以国际音标为例,将拼音按照用于中文读音的声母、韵母进行分离,得到的音素是可以携带不同声调的,因此对于同一个韵母,若携带不同的声调,那么将得到的音素也是不同的,例如“ao1”、“ao2”、“ao3”、“ao4”、“ao5”,因此针对这样不同的音素,在音素字典文件中所匹配的数字也是不同的。从而,在确定音素序列内包含的各个音素之后,就可以通过查询音素字典文件中“音素和数字之间对应关系”,得到每个音素对应哪个数字,进而将音素序列转换成了一个数字序列。
[0113]
在得到音素序列转换成的数字序列之后,利用编码器的词嵌入层(embedding层,它也相当于是模型的第一层)对数字序列进行处理,目的是将音素序列内各个音素转换为对应的向量表示,进而基于这些向量表示就可以组成相应的文本特征向量,即为音素序列对应的文本特征向量。
[0114]
示例性的,例举音素序列对应的数字序列[2,4,7],利用编码器的词嵌入层将数字变为唯一的向量表示,例如假设向量的维度为2,那么可以将“2”变为[2,3],那么经词嵌入层处理后可以得到序列[[2,3],[1,4],[3,3]],进一步的,再经过编码处理后得到文本特征向量[[1,2],[2,3],[3,4]]。
[0115]
进一步的,对词嵌入层处理进行解释说明:模型在训练时会随机初始化词嵌入层(一般为正态分布的随机数字),该层包含了一个m行n列的矩阵,m为数字转换得到向量的所需的维度,n为所有音素的个数,例如,对于数字序列[2,4,7],在词嵌入层处理过程中就会选取矩阵中的第2,4,7列的向量维度。由于对模型词嵌入层的训练,是随机初始化的权重,所以每次训练的模型词嵌入层的矩阵都是不一样的,但需要确保经训练后的模型词嵌入层内处理为实现“数字-向量”字典关系即可,从而使得经模型词嵌入层处理输出每个数字对应的向量,即如上例举的,假设向量的维度为2,那么经词嵌入层处理输出将“2”变为了[2,3],继而最终经词嵌入层处理后,将数字序列[2,4,7]转换为序列[[2,3],[1,4],[3,3]]。
[0116]
进一步的,对编码处理进行解释说明:序列输入到编码器后会与编码器中的参数进行一定运算,运算规则是根据模型结构人工设计的,经运算后将输出编码处理的文本特征向量。
[0117]
对于编码器的参数,模型训练时,将首先赋予它一个随机初始值,然后会根据训练
时给的实际测量数据(即真实人声的梅尔频谱)和整个模型的输出预测的梅尔频谱之间的差别进行不断调整修正,经模型不断训练,使得两者之间差别越来越小并趋近于最小,那么模型训练完成,这时就得到了较佳的编码器的参数了。
[0118]
例如,对于序列[[2,3],[1,4],[3,3]],假设编码器中人为设计的规则是:每一个向量的每一维的数字与其他向量的对应相同维度的数字相乘,所得结果相加,最后减去a。如果通过训练模型得到a的值为5,那么第一个向量的处理就是[2x1+2x3-5,3x4+3x3-5]=[3,16],同理另外两个向量就是[1x2+1x3-5,4x3+4x3-5]=[0,19],以及[3x2+3x1-5,3x3+3x4-5]=[4,16],所以经过编码器处理得到的结果就是[[3,16],[0,19],[4,16]],作为文本特征向量。
[0119]
需要说明的是,为了将步骤202得到的文本特征向量与后续其他步骤得到的文本特征向量加以区分,因此将本步骤202得到的文本特征向量标识为第一文本特征向量。以及下述利用词语“第二”“第三”“第四”标识文本特征向量,是为了将不同处理阶段所获得的文本特征向量加以区别指代。
[0120]
203、从预设说话人特征向量集中选取目标说话人特征向量,向第一文本特征向量中添加目标说话人特征向量。
[0121]
其中,预设说话人特征向量集中包含了利用预设说话人分类模型处理得到的多个目标说话人特征向量。预设说话人分类模型是利用大量人声音频样本训练的分类器模型,由一个三层的长短期记忆网络(long-short term memory,lstm)结构和一个线性层模块组成。
[0122]
示例性的,在本技术实施例中,构建预设说话人特征向量集的具体实施方法,可以如下步骤s301-s305,如图3,具体解释说明如下:
[0123]
s301、采集声音样本数据。
[0124]
s302、将声音样本数据转换为梅尔频谱数据。
[0125]
s303、将梅尔频谱数据输入预设说话人分类模型,输出不同个体对应的音频向量数据。
[0126]
在本技术实施例中,是利用训练好的预设说话人分类模型对大量人声音频数据进行分类处理,并且设置模型输出为音频向量数据,即说话人的声音特征向量。那么经预设说话人分类模型的分类处理将会输出多个数据集,且每个数据集所包括的声音特征向量相当于是都归属于同一个人的。
[0127]
s304、通过对每个个体对应的音频向量数据求平均值,得到不同个体对应的说话人特征向量。
[0128]
s305、根据不同个体对应的说话人特征向量,组成预设说话人特征向量集。
[0129]
在每个数据集内可以进行求平均运算以得到一个平均声音特征向量,作为目标说话人特征向量,用于代表该数据集。那么基于多个数据集,就能够获得多个目标说话人特征向量,组成说话人特征向量集,简而言之,每个目标说话人特征向量相当于用于代表一个人所具有的声音特征。
[0130]
例如,预设说话人特征向量集中包含了三个目标说话人特征向量,其中一个目标说话人特征向量代表a小孩所具有声音特征;一个目标说话人特征向量代表b中年叔叔所具有声音特征;一个目标说话人特征向量代表c年迈奶奶所具有声音特征。本技术实施例仅是
给出示例性例举,本技术实施例对预设说话人特征向量集包含的目标说话人特征向量的数目不做限定,但是需要说明的是,随着预设说话人特征向量集包含的目标说话人特征向量的数目增加,这些目标说话人特征向量应该是存在差异的且确保差异很大的,进而实现能够从预设说话人特征向量集中选择出更加多样性的目标说话人特征向量,即相当于是间接地得到了更加多样性的人声。
[0131]
下面,在从预设说话人特征向量集中选取目标说话人特征向量之后,向第一文本特征向量中添加目标说话人特征向量,解释说明如下:
[0132]
在本技术实施例中,向第一文本特征向量中添加目标说话人特征向量的目的是:使得后续合成语音,能够受到目标说话人特征向量的影响而呈现出多种人声效果。据此,对于本技术实施例所提供的深度学习方法合成的语音,将不仅仅是呈现随机向量代表说话人的声音效果,而是根据不同业务语音合成场景需求,能够呈现多种特点的人声效果,这有助于提高合成语音的音质效果。
[0133]
例如,如果选择一个目标说话人特征向量为[1,0],以及例举一个第一文本特征向量[[1,2],[2,3],[3,4]](如步骤202的例举),那么将这两个向量相加,即[[1,2],[2,3],[3,4]]+[1,0]=[[2,2],[3,3],[4,4]],得到的向量,将作为新的第一文本特征向量,进入后续的预设语音合成模型内其他处理步骤。
[0134]
需要说明的是,本步骤203是本技术实施例提供的优选方案,即向第一文本特征向量添加目标说话人特征向量的方法,使得最终合成语音可以呈现多样性的说话人声,提高语音合成效果。
[0135]
204a、利用特征调整模块内的语速调整模块对第一文本特征向量进行时长预测处理,得到各个音素对应的时长特征向量。
[0136]
205a、根据预设时长分配权重与各个音素对应的时长特征向量相乘,得到经调整后各个音素对应的时长特征向量。
[0137]
以上步骤204a-205a,将第一文本特征向量输入语速调整模块,输出经语速调整后各个音素对应的时长特征向量,具体的解释说明如下:
[0138]
其中,语速调整模块的作用为:调整各个音素的语速特征,该语速特征具体表现为是音素的时长特征。
[0139]
以步骤203得到的新的第一文本特征向量[[2,2],[3,3],[4,4]]为例,将它输入到语速调整模块内进行处理。在处理的过程中,首先是预测各个音素的时长特征向量,这些多个时长特征向量加起来的向量长度与第一文本特征向量相同,假设为[1,2,1];然后再根据预设时长分配权重调整各个音素的时长特征向量。该预设时长分配权重是根据实际时长调整需求而预先设定的,可以利用预设时长分配权重与各个音素对应的时长特征向量相乘,完成对各个音素的时长特征向量的调整操作。
[0140]
需要说明的是,利用预设时长分配权重给出的相当于是在对不同时长特征向量进行调整时所使用的权重系数,该权重系数可以是大于1或小于1;权重系数选择大于1,则说明是调整时长拉长(即调整音素的语速放慢),权重系数选择小于1,则说明是调整时长缩短(即调整音素的语速加快);相应的,权重系数选择1,则说明未调整改变时长特征向量;但如果一个时长特征向量乘以权重系数后得到数值为小数,则还需要做取整操作。
[0141]
示例性的,对于时长特征向量[1,2,1],假设权重系数为1.6,那么:
[0142]
1.6x[1,2,1]=[1.6,3.2,1.6],因此需要执行取整操作,得到[1,3,1]。本技术实施例这样增加了取整操作的目的是,方便于后续的“根据各个音素对应的时长特征向量,拉长处理第三文本特征向量直至向量长度等于梅尔频谱的长度,得到第四文本特征向量”的操作过程。
[0143]
204b、利用特征调整模块内的基频调整模块对第一文本特征向量进行基频预测处理,得到各个音素对应的基频特征向量。
[0144]
205b、根据预设基频分配权重与各个音素对应的基频特征向量相乘,得到各个音素对应的目标基频特征向量。
[0145]
206b、将各个音素对应的目标基频特征向量与第一文本特征向量相加,得到经音调调整后各个音素对应的特征向量,并组成第二文本特征向量。
[0146]
以上,步骤204b-206b,将第一文本特征向量输入基频调整模块,输出经音调调整后各个音素对应的特征向量,并组成第二文本特征向量。具体的解释说明如下:
[0147]
其中,基频,是自由振荡系统的最低振荡频率,复合波中的最低频率,基频调整模块的作用为:调整各个音素的基频特征,该基频特征具体表现是音素的音调特征。
[0148]
以步骤203得到的新的第一文本特征向量[[2,2],[3,3],[4,4]]为例,将它输入到基频调整模块内进行处理。在处理的过程中,首先是预测各个音素的基频特征向量,这些多个基频特征向量加起来的向量长度与第一文本特征向量相同,假设为[[1,3],[2,2],[0,1]];然后再根据预设基频分配权重调整各个音素的基频特征向量,该预设基频分配权重是根据实际基频调整需求而预先设定的,可以利用预设基频分配权重与各个音素对应的基频特征向量相乘,得到各个音素对应的目标基频特征向量,完成对各个音素的基频特征向量的调整操作。
[0149]
需要说明的是,利用预设基频分配权重给出的相当于是在对不同基频特征向量进行调整时所使用的权重系数,该权重系数可以是大于1或小于1;权重系数选择大于1,则说明是调整基频升高(即调整音素的音调升高),权重系数选择小于1,则说明是调整基频降低(即调整音素的音调降低);相应的,权重选择1,则说明未调整改变音素的基频高低。
[0150]
示例性的,对于基频特征向量[[1,3],[2,2],[0,1]],假设权重系数为1.5时,那么1.5x[[1,3],[2,2],[0,1]]=[[1.5,4.5],[3,3],[0,1.5]]。假设权重系数为1时,基频特征向量是未改变的。
[0151]
在利用预设基频分配权重与各个音素对应的时长特征向量相乘,得到各个音素对应的目标基频特征向量之后,进一步与第一文本特征向量自身相加,那么1x[[1,3],[2,2],[0,1]]+[[2,2],[3,3],[4,4]]=[[3,5],[5,5],[4,5]],向量序列长度是未改变的,得到了经音调调整后各个音素对应的特征向量,并组成第二文本特征向量。
[0152]
207b、利用特征调整模块内的能量调整模块对第二文本特征向量进行能量预测处理,得到各个音素对应的能量特征向量。
[0153]
208b、根据预设能量分配权重与各个音素对应的能量特征向量相乘,得到各个音素对应的目标能量特征向量。
[0154]
209b、将各个音素对应的目标能量特征向量与第二文本特征向量相加,得到经音量调整后各个音素对应的特征向量,组成第三文本特征向量。
[0155]
以上步骤207b-209b,将第二文本特征向量输入能量调整模块,输出经音量调整后
各个音素对应的能量特征向量,并组成第三文本特征向量,具体的解释说明如下:
[0156]
其中,能量调整模块的作用为:调整各个音素的能量特征,该能量特征具体表现为是音素的音量大小特征。
[0157]
以步骤206b得到的第二文本特征向量[[3,5],[5,5],[4,5]]为例,将它输入到能量调整模块内进行处理。在处理的过程中,首先是预测各个音素的能量特征向量,这些多个能量特征向量加起来的向量长度与第二文本特征向量相同,假设为[[1,0],[0,2],[1,1]];然后再根据预设能量分配权重调整各个音素的能量特征向量,该预设能量分配权重是根据实际能量调整需求而预先设定的,可以利用预设能量分配权重与各个音素对应的能量特征向量相乘,得到各个音素对应的目标能量特征向量,完成对各个音素的能量特征向量的调整操作。
[0158]
需要说明的是,利用预设能量分配权重给出的相当于是在对不同能量特征向量进行调整时所使用的权重系数,该权重系数可以是大于1或小于1;权重系数选择大于1,则说明是调整能量增大(即调整音素的音量增大),权重系数选择小于1,则说明是调整能量增大(即调整音素的音量减小);相应的,权重系数选择1,则说明未调整改变音素的音量大小。
[0159]
示例性的,对于能量特征向量[[1,0],[0,2],[1,1]],假设权重系数为1,则能量特征向量未调整改变,进一步的,将它与第二文本特征向量自身相加,那么:
[0160]
1x[[1,0],[0,2],[1,1]]+[[3,5],[5,5],[4,5]]=[[4,5],[5,7],[5,6]],向量序列长度是未改变的,得到了经音量调整后各个音素对应的特征向量,并组成第三文本特征向量。
[0161]
下面,在本技术实施例中,根据经语速调整后各个音素对应的时长特征向量,拉长处理第三文本特征向量直至向量长度等于梅尔频谱的长度,得到第四文本特征向量,具体实施步骤如下:
[0162]
首先是,利用步骤206a-207a对经语速调整后的各个音素对应的时长特征向量进行预处理如下:
[0163]
206a、计算经语速调整后各个音素的时长特征向量之间的整数比。
[0164]
207a、根据整数比,确定各个音素对应所需特征向量长度之间的目标整数比。
[0165]
在本技术实施例中,如步骤204a-205a,例举各个音素的时长特征向量组成的向量序列为[1,2,1],假设预设时长分配权重的权重系数为1,则表明未进行音素的语速特征调整,则也默认为经语速调整后各个音素的时长特征仍然为[1,2,1],那么计算各个音素的时长特征向量之间的整数比为1:2:1,根据该整数比,确定各个音素对应所需特征向量长度之间的目标整数比也是1:2:1。
[0166]
其次是,完成上述对经语速调整后的各个音素对应的时长特征向量进行预处理之后,进行以下获取第四文本特征向量操作,如步骤211-212。
[0167]
210、对于同一音素,建立经语速调整后时长特征向量与第三文本特征向量中的每个特征向量之间的映射关系。
[0168]
在本技术实施例中,以经语速调整后时长特征向量[1,2,1]为例,以步骤207b-209b得到的第三文本特征向量[[4,5],[5,7],[5,6]]为例,它包含了三个特征向量[4,5]、[5,7]和[5,6]。那么建立时长特征向量与第三文本特征向量中每个特征向量之间映射关系为:[1]和[4,5];[2]和[5,7];[1]和[5,6]。
[0169]
211、根据映射关系和目标整数比,对于各个音素,以复制音素的特征向量的方式增加向量长度,直至各个音素对应的向量序列长度之和达到梅尔频谱的长度,得到由各个音素组成的第四文本特征向量。
[0170]
在本技术实施例中,以上述步骤得到的映射关系和目标整数比,示例性的操作如下:
[0171]
根据目标整数比1:2:1,在向量长度需求上,表明了第二个向量长度是第一个向量长度的二倍,以及第二个向量长度是第三个向量长度的二倍,所以调整第三文本特征向量[[4,5],[5,7],[5,6]]内每个向量长度为:第一个向量[4,5]长度不变,第二个向量[5,7]长度增加一倍,第三个向量[5,6]长度不变,得到经调整后的第三文本特征向量[[4,5],[5,7],[5,7],[5,6]]。据此,这相当于是以复制音素的特征向量的方式增加向量长度,并完成了一次对第三文本特征向量进行的拉长处理。
[0172]
此外,还需要说明的是,在对第三文本特征向量进行拉长处理的过程中,还需要确保经最终拉长处理的第三文本特征向量的长度需要达到梅尔频谱的长度,才能确保后续进行对梅尔频谱处理而得到音频数据。
[0173]
因此,如果经一次拉长处理但未能达到梅尔频谱长度,则还需要多次拉长处理,具体的,只要确保第三文本特征向量内原本存在的特征向量个数比值等于目标整数比即可,即确保第三文本特征向量中原本存在的特征向量[4,5]、[5,7]和[5,6]之间个数的整数比为1:2:1。
[0174]
对于本技术实施例,根据映射关系和目标整数比,从而实现了选择性的复制第三文本特征向量内哪个特征向量,以以复制音素的特征向量的方式增加向量长度,直至各个音素对应的向量序列长度之和达到梅尔频谱的长度,若达到了梅尔频谱的长度,则此时多个特征向量组成第四文本特征向量。
[0175]
212、利用预设语音合成模型的解码器对第四文本特征向量进行处理,得到目标梅尔频谱,根据目标梅尔频谱,确定目标文本对应的音频数据。
[0176]
在本技术实施例中,通过预设语音合成模型内的解码器处理第四文本特征向量,得到声学特征频谱,一般为梅尔频谱,将梅尔频谱输入到声码器进行处理,就能够输出对应的人声音频数据了。其中,该声码器可以但不限于是:基于神经网络的高速音频合成声码器(wavernn)、用于条件波形合成的生成对抗网络声码器(melgan)、拥有多尺度和多周期判别器的高效声码器(hifigan)。
[0177]
进一步的,作为对上述图1、图2、图3所示方法的实现,本技术实施例提供了一种语音合成装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于优化深度学习方法合成的语音质量,具体如图4所示,该装置包括:
[0178]
音素转换单元31,用于对目标文本进行音素转换处理,得到所述目标文本对应的音素序列;
[0179]
模型处理单元32,用于将所述音素序列输入预设语音合成模型进行处理,预测输出目标梅尔频谱,其中,所述预设语音合成模型中包含特征调整模块,所述特征调整模块用于在语音合成过程中调整音素的语速特征、音调特征和音量特征;
[0180]
确定单元33,用于根据所述目标梅尔频谱,确定所述目标文本对应的音频数据。
[0181]
进一步的,如图5所示,所述特征调整模块包括语速调整模块、基频调整模块和能量调整模块,所述模型处理单元32包括:
[0182]
编码处理模块321,用于利用所述预设语音合成模型的编码器对所述音素序列进行处理,得到所述音素序列对应的第一文本特征向量;
[0183]
语速调整模块322,用于将所述第一文本特征向量输入所述语速调整模块,输出经语速调整后各个音素对应的时长特征向量;
[0184]
基频调整模块323,用于将所述第一文本特征向量输入所述基频调整模块,输出经音调调整后各个音素对应的基频特征向量,并组成第二文本特征向量;
[0185]
能量调整模块324,用于将所述第二文本特征向量输入所述能量调整模块,输出经音量调整后各个音素对应的能量特征向量,并组成第三文本特征向量;
[0186]
拉长处理模块325,用于根据所述经语速调整后各个音素对应的时长特征向量,拉长处理所述第三文本特征向量直至向量长度等于梅尔频谱的长度,得到第四文本特征向量;
[0187]
解码处理模块326,用于利用所述预设语音合成模型的解码器对所述第四文本特征向量进行处理,得到目标梅尔频谱。
[0188]
进一步的,如图5所示,所述将所述语速调整模块322包括:
[0189]
预测处理子模块3221,用于利用所述语速调整模块对所述第一文本特征向量进行时长预测处理,得到各个音素对应的时长特征向量;
[0190]
调整处理子模块3222,用于根据预设时长分配权重与所述各个音素对应的时长特征向量相乘,得到经调整后各个音素对应的时长特征向量。
[0191]
进一步的,如图5所示,所述基频调整模块323包括:
[0192]
预测处理子模块3231,用于利用所述基频调整模块对所述第一文本特征向量进行基频预测处理,得到各个音素对应的基频特征向量;
[0193]
调整处理子模块3232,用于根据预设基频分配权重与所述各个音素对应的基频特征向量相乘,得到各个音素对应的目标基频特征向量;
[0194]
相加处理子模块3233,用于将所述各个音素对应的目标基频特征向量与所述第一文本特征向量相加,得到经音调调整后各个音素对应的特征向量;
[0195]
组成子模块3234,用于根据所述经音调调整后各个音素对应的特征向量,组成第二文本特征向量。
[0196]
进一步的,如图5所示,所述能量调整模块324包括:
[0197]
预测处理子模块3241,用于利用所述能量调整模块对所述第二文本特征向量进行能量预测处理,得到各个音素对应的能量特征向量;
[0198]
调整处理子模块3242,用于根据预设能量分配权重与所述各个音素对应的能量特征向量相乘,得到各个音素对应的目标能量特征向量;
[0199]
相加处理子模块3243,用于将所述各个音素对应的目标能量特征向量与所述第二文本特征向量相加,得到经音量调整后各个音素对应的特征向量;
[0200]
组成子模块3244,用于根据所述经音量调整后各个音素对应的特征向量,组成第三文本特征向量。
[0201]
进一步的,如图5所示,所述拉长处理模块325包括:
[0202]
建立子模块3251,用于对于同一音素,建立经语速调整后各个音素对应的时长特征向量与所述第三文本特征向量内每个特征向量之间的映射关系;
[0203]
计算子模块3252,用于计算经语速调整后各个音素的时长特征向量之间的整数比;
[0204]
确定子模块3253,用于根据所述整数比,确定各个音素对应所需特征向量长度之间的目标整数比;
[0205]
拉长处理子模块3254,用于根据所述映射关系和所述目标整数比,对于各个音素,以复制音素的特征向量的方式增加向量长度,直至各个音素对应的向量序列长度之和达到梅尔频谱的长度,得到由各个音素组成的第四文本特征向量。
[0206]
进一步的,如图5所示,所述模型处理单元32还包括:
[0207]
选取模块327,用于从预设说话人特征向量集中选取目标说话人特征向量;
[0208]
添加模块328,用于向所述第一文本特征向量中添加所述目标说话人特征向量。
[0209]
进一步的,如图5所示,所述装置还包括:
[0210]
采集单元34,用于采集声音样本数据;
[0211]
频谱转换单元35,用于将所述声音样本数据转换为梅尔频谱数据;
[0212]
处理单元36,用于将所述梅尔频谱数据输入预设说话人分类模型,输出不同个体对应的音频向量数据;
[0213]
计算单元37,用于通过对每个个体对应的音频向量数据求平均值,得到不同个体对应的说话人特征向量;
[0214]
组成单元38,用于根据所述不同个体对应的说话人特征向量,组成预设说话人特征向量集。
[0215]
综上所述,本技术实施例提供了一种语音合成方法及装置,对于待处理的目标文本,本技术首先是将其转换为音素序列,然后再将该音素序列输入到预设语音合成模型。在预设语音合成模型内是利用编码器处理该音素序列得到对应的第一文本特征向量,本技术实施例还向第一文本特征向量中添加了目标说话人特征向量,以便在利用特征调整模块处理第一文本特征向量,不仅能够调整各个音素的语速特征、音调特征和音量特征,还能够增加多样性的声音特征,经预设语音合成模型处理将会预测输出目标梅尔频谱,根据梅尔频谱就能够得到最终的音频数据了,本技术实施例在语音合成的过程中至少能够从音素的语速特征、音调特征和音量特征以及多样性人声这四个方面进行调整,大大提高了语音合成质量。
[0216]
本技术实施例提供的语音合成装置包括处理器和存储器,上述音素转换单元、模型处理单元和确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0217]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在利用预设语音合成模型进行语音合成的过程中,增加了特征调整模块并利用其调整音素的语速特征、音调特征和音量特征,从而本技术利用特征调整模块提高了模型对数据的特征提取和学习能力,同时也实现了模型算法的可调整性,提高语音合成效果。
[0218]
本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的语音合成方法。
[0219]
本技术实施例提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的语音合成方法。
[0220]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0221]
在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
[0222]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
[0223]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0224]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0225]
本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0226]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1