一种特定说话人语音合成方法和装置与流程



1.本技术涉及自然语言处理技术领域,尤其涉及一种特定说话人语音合成方法和装置。


背景技术:



2.语音合成(speech synthesis),又称文语转换技术是指计算机通过分析将任意文本转化为流畅语音的技术。语音合成作为实现人机语音交互系统的核心技术之一,是语音处理技术中一个重要的方向,其应用价值越来越受到重视。
3.在现有的语音合成技术中,合成的语音大多都会有些呆板僵硬,语音缺乏顿挫感和侧重感。尤其在设计中文文本的语音合成系统时,如果仅仅是将输入的文字一一匹配读音库,并将所有字的读音串联起来形成语音输出,这样的语音机械生硬,不带语调起伏,使用户的听觉体验很差。
4.因此,如何提升合成语音的自然度,提升用户体验满意度值得研究。


技术实现要素:



5.本技术提供了一种特定说话人语音合成方法和装置,能够在保证语音合成模型训练效率的同时,增加了模型合成语音的情感特征,提升模型合成的语音的顿挫感、侧重感和自然度。
6.第一方面,本技术提供了一种特定说话人语音合成方法,包括:
7.获取多个说话人中每一说话人的身份标签、每一说话人的语音音频数据对应的标准梅尔频谱,以及每一说话人的语音音频数据对应的标注文本及其对应的音素序列;
8.确定标注文本中目标类型文本的位置,并根据位置将音素序列进行编码处理以获取位置编码文本;
9.构建语音合成模型,语音合成模型包括音素嵌入层、位置嵌入层、拼接模块、编码器、方差适配器、梅尔解码器和声码器,其中,音素嵌入层用于根据音素序列获得音素的向量表示,位置嵌入层用于根据位置编码文本获得位置的向量表示,拼接模块用于将音素的向量表示和位置的向量表示进行拼接处理,编码器用于根据音素的向量表示和位置的向量表示提取标注文本的韵律隐特征和位置隐特征,方差适配器用于将语音特征、韵律隐特征和位置隐特征进行特征增强与扩充,梅尔解码器用于根据方差适配器的输出实现并行解码,得到合成语音的梅尔频谱,声码器用于将合成语音的梅尔频谱映射为声音波形,得到合成的语音;
10.根据音素序列和标准梅尔频谱训练语音合成模型,根据合成语音的梅尔频谱和标准梅尔频谱之间的误差计算损失,直到模型收敛,得到训练好的语音合成模型;
11.获取待语音合成的输入文本以及目标说话人的身份标签;
12.将输入文本以及目标说话人的身份标签输入训练好的语音合成模型,以合成具有目标说话人语音特征的语音。
13.在一个示例中,方法还包括:对输入文本进行拼音化处理以得到第一拼音文本;
14.确定输入文本中的目标类型文本;识别目标类型文本的多音字;根据目标类型文本的多音字重新确定第一拼音文本;根据第一拼音文本获取输入文本对应的音素序列。
15.在一个示例中,识别目标类型文本的多音字,包括:根据目标类型文本查询多音字词典中对应的拼音,其中,多音字词典用于表征包括多音字的词语与拼音的映射关系,并且多音字词典的更新支持热更新。
16.在一个示例中,标注文本为带韵律标签的文本,方法还包括:
17.构建音素对齐字典,音素对齐字典用于表征拼音与音素的映射关系以及韵律标签与新定义音素的映射关系,新定义音素为用于区分不同韵律标签的停顿时长的音;
18.对带韵律标签的文本进行拼音化处理以获取带韵律标签的第二拼音文本;
19.利用音素对齐字典将带韵律标签的第二拼音文本转化为音素文本数据,音素文本数据包括第二拼音文本中的拼音部分对应的音素和第二拼音文本的韵律标签部分对应的新定义音素;
20.基于音素标识映射的方法将音素文本数据转化为音素序列。
21.在一个示例中,根据位置将音素序列进行编码处理以获取位置编码文本,包括:
22.根据位置确定目标类型文本对应的标记;
23.根据标记和音素序列使用独热编码方式编码音素序列以获取位置编码文本。
24.在一个示例中,声码器使用高效高保真语音合成的生成对抗网络模型,模型的生成器的上采样模块的上采样参数为[10,4,4],上采样模块中的卷积核尺寸为[20,8,8],模型的生成器的多感受野融合模块的隐藏层数量为128,多感受野融合模块的残差膨胀尺寸为[[1,2],[2,6],[3,12]]。
[0025]
在一个示例中,目标类型为姓名类型或者地名类型。
[0026]
在一个示例中,语音特征包括语音音频数据的音高特征、能量特征和音长特征。
[0027]
在一个示例中,该方法包括:在tensorflow框架下构建语音合成模型。
[0028]
第二方面,本技术提供了一种特定说话人语音合成装置,包括:
[0029]
数据获取模块,用于获取多个说话人中每一说话人的身份标签、每一说话人的语音音频数据对应的标准梅尔频谱,以及每一说话人的语音音频数据对应的标注文本及其对应的音素序列;
[0030]
预处理模块,用于确定标注文本中目标类型文本的位置,并根据位置将音素序列进行编码处理以获取位置编码文本;
[0031]
模型构建模块,用于构建语音合成模型,语音合成模型包括音素嵌入层、位置嵌入层、拼接模块、编码器、方差适配器、梅尔解码器和声码器,其中,音素嵌入层用于根据音素序列获得音素的向量表示,位置嵌入层用于根据位置编码文本获得位置的向量表示,拼接模块用于将音素的向量表示和位置的向量表示进行拼接处理,编码器用于根据音素的向量表示和位置的向量表示提取标注文本的韵律隐特征和位置隐特征,方差适配器用于将语音特征、韵律隐特征和位置隐特征进行特征增强与扩充,梅尔解码器用于根据方差适配器的输出实现并行解码,得到合成语音的梅尔频谱,声码器用于将合成语音的梅尔频谱映射为声音波形,得到合成的语音;
[0032]
模型训练模块,用于根据音素序列和标准梅尔频谱训练语音合成模型,根据合成
语音的梅尔频谱和标准梅尔频谱之间的误差计算损失,直到模型收敛,得到训练好的语音合成模型;
[0033]
数据获取模块还用于获取待语音合成的输入文本以及目标说话人的身份标签;
[0034]
语音合成模块,用于将输入文本以及目标说话人的身份标签输入训练好的语音合成模型,以合成具有目标说话人语音特征的语音。
[0035]
本技术对大量的语音场景数据分析发现,人们在说话和沟通的时候,喜怒哀乐等情感特征不是很明显地表现在语调或语气当中,反而语言的顿挫感或者侧重感是情感表达和语音真实性的重要衡量标准。据此,本技术实施例根据目标类型文本在标注文本中所处于的位置对音素序列进行编码以得到具有位置特征的位置编码文本,同时使用音素序列和位置编码文本来训练语音合成模型,模型从位置编码文本中学习位置特征而不是直接从输入文本中学习位置特征,能够在保证模型训练效率的前提下提升模型的性能。相对应地,本技术设计的语音合成模型,通过拼接模块将音素序列的向量表示和位置编码文本的向量表示拼接后输入编码器中,使得编码器在没有增加复杂度的同时还能够并行学习韵律隐特征和目标类型文本的位置隐特征并输入到方差适配器中。经过方差适配器将语音特征和上述特征的融合加强,在保证模型复杂度较小的同时,使得训练好的模型合成特定说话人的语音不仅具有顿挫感,还能在目标类型文本的位置具有侧重感。该方法使得在保证合成语音的音质、进一步提升自然度从而提升体验感的同时,还使得模型的训练方法简单且训练效率高效。
附图说明
[0036]
为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]
图1是本技术实施例提供的一例特定说话人语音合成方法示意性流程图;
[0038]
图2是本技术实施例提供的一例语音合成系统框架示意图;
[0039]
图3是本技术根据一些实施例提供的一例语音合成模型的算法结构示意图;
[0040]
图4是本技术提供的一例单个说话人的语音数据结构示意图;
[0041]
图5是本技术提供的一例单个说话人的语音数据结构对应的文本数据结构示意图;
[0042]
图6是本技术提供的一例多个说话人的语音数据结构示意图;
[0043]
图7是本技术提供的又一例多说话人的语音数据结构示意图;
[0044]
图8是本技术实施例提供的一例拼音文本数据图;
[0045]
图9是本技术实施例提供的一例特定说话人语音合成装置示意图。
具体实施方式
[0046]
下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
[0047]
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0048]
目前,在一些语音合成技术中,虽然添加了情感信息,但是这些技术却普遍存在着一些问题,如模型训练难度大,音质信息下降和情感信息不明显等问题。本技术通过针对一些语音场景进行了相应的分析发现,一般人在说话的时候,情感特征并不完全表现在喜怒哀乐中,人们在说话和沟通时,大部分都是一个很正常的说话氛围,在这样的情况下,说话和语言的顿挫感和侧重感反而是情感表达和语音真实性的重要衡量标准。
[0049]
因此,如何提升合成语音的顿挫感和侧重感,提升语音的自然度成为亟待解决的问题。
[0050]
为了便于理解本技术中的方案,以下对一些技术概念进行简单介绍:
[0051]
音长(duration):音长表示声波振动持续时间的长短,其由发音体振动时持续时间的长短决定,振动时间越长声波就越长。
[0052]
音高(pitch):有时候又称音调,音高的高低是由声波振动频率的高低决定,振动频率越高则音高越高。在汉语里,汉字的声调和语句的语调主要是由音高决定。
[0053]
能量(energy):是声音的音强的表现方式,表示声音的强弱。声音的能量在汉语里有区别词义的作用和一定的语法作用,比如决定了轻声、重音的区别意义。
[0054]
汉语由于其特殊的复杂性,具有语法结构、语法规则、声学特性、韵律结构等多方面特征。在汉语里,一个音节一般就是一个汉字,声调是音节结构中不可或缺的组成部分,通常用声调来表示一个音节发音时的高低升降。声调的形成除了主要由音高变化决定外,还表现在音长变化上。在发音过程中,发音体可随时调整音高和音长的变化,这样就会形成了不同的声调。声调担负着重要的辨义作用,例如通过声调来区别汉语语音中“题材”和“体裁”、“练习”和“联系”等等的词语意义。在汉语里,连续语句的发音中间还会出现停顿,语句中的不同字会根据上下语义而采用轻音或重音。汉语的这些语法结构、语法规则、声学特性、韵律结构共同形成了汉语在语音上的抑扬顿挫、语气侧重、语气感情和韵律节奏。
[0055]
为了解决上述问题,本技术实施例提供了一种特定说话人语音合成方法100和系统框架,下面结合图1和图2对该方法进行说明,其中,图1是本技术实施例提供的一例特定说话人语音合成方法示意性流程图,图2是本技术实施例提供的一例语音合成系统框架示意图。
[0056]
s110,获取训练数据。
[0057]
具体地,该训练数据包括多个说话人中每一说话人的身份标签、每一说话人的语音音频数据对应的标准梅尔频谱,以及每一说话人的语音音频数据对应的标注文本及其对应的音素序列。
[0058]
其中,每一说话人的身份标签和该说话人语音音频的标注文本对应的音素序列绑定在一起作为训练数据训练语音合成模型。
[0059]
示例性地,将语音音频数据输入梅尔滤波器中得到该标准的梅尔频谱,该标准的梅尔频谱用于与模型输出的用于合成语音的梅尔频谱利用损失函数计算损失,从而使得模型收敛。
[0060]
在一个示例中,音素序列获取的方式包括:
[0061]
s111,构建音素对齐字典。
[0062]
其中,音素对齐字典用于表征拼音与音素的映射关系以及韵律标签与新定义音素的映射关系,新定义音素为用于区分不同韵律标签的停顿时长的音。
[0063]
s112,对带韵律标签的文本进行拼音化处理以获取带韵律标签的第二拼音文本。
[0064]
s113,获取音素文本数据。
[0065]
具体地,利用音素对齐字典将带韵律标签的第二拼音文本转化为音素文本数据,音素文本数据包括第二拼音文本中的拼音部分对应的音素和第二拼音文本的韵律标签部分对应的新定义音素。
[0066]
s114,基于音素标识映射方法将音素文本数据转化为音素序列。
[0067]
其中,音素标识映射方法使用相应的映射文件将音素对齐字典中的音素映射为对应的序列,以生成模型可以识别的音素序列。
[0068]
采用上述方式,本技术独创性地将韵律标签转化为特定的定义因素包含在音素序列中,使得模型能够在保证学习说话人的语音音频的语音特征的同时,还能学习到韵律标签的语音特征。该方式能够简单高效地获取多样的韵律特征,进一步提升了模型合成语音的自然度。
[0069]
s120,获取位置编码文本。
[0070]
具体地,确定标注文本中目标类型文本的位置,并根据该位置将音素序列进行编码处理以获取位置编码文本。
[0071]
在一个示例中,目标类型文本包括姓名类型文本或者地名类型文本。
[0072]
在一个示例中,获取位置编码文本的方式包括,根据位置确定目标类型文本对应的标记,根据该标记和音素序列使用独热编码方式编码音素序列以获取位置编码文本。
[0073]
其中,该位置指的是目标类型文本在标注文本中所处于的位置,例如,从m行的第n列到m+1行的第n+3列。标记的形式根据需要设置即可,本技术对此不作限定。
[0074]
上述方式通过对位置标记,并根据标记使用独热编码方式编码的方式得到位置编码文本,能够简单高效地获取具有目标类型文本位置特征的编码数据,提升了模型训练前期工作的效率。
[0075]
s130,构建语音合成模型。
[0076]
具体地,构建的语音合成模型包括音素嵌入层、位置嵌入层、拼接模块、编码器、方差适配器、梅尔解码器和声码器。
[0077]
图3是本技术根据一些实施例提供的一例语音合成模型的算法结构示意图,如图2所示:
[0078]
音素嵌入层用于根据音素序列获得音素的向量表示,该向量表示即为向量矩阵;
[0079]
位置嵌入层用于根据位置编码文本获得位置的向量表示;
[0080]
拼接模块用于将音素的向量表示和位置的向量表示进行拼接处理以得到拼接的向量矩阵;
[0081]
编码器的输入为拼接的向量矩阵,该向量矩阵包括了音素的向量矩阵和位置的向量矩阵,编码器根据音素的向量矩阵和位置的向量矩阵提取标注文本的韵律隐特征和位置隐特征,并将这些特征输入到方差适配器;
[0082]
方差适配器用于将语音特征、韵律隐特征和位置隐特征进行特征增强与扩充;
[0083]
其中的位置编码,用于构造一个与方差适配器的输出维度一样的矩阵,然后跟该与方差适配器的输出维度一样的矩阵相加得到采用了multi-headattention(多头注意力机制)的梅尔解码器输入。
[0084]
梅尔解码器用于对其输入实现并行解码,得到合成语音的梅尔频谱;
[0085]
声码器用于将合成语音的梅尔频谱映射为声音波形,得到合成的语音。
[0086]
在一个示例中,声码器使用高效高保真语音合成的生成对抗网络模型(hifi-gan),该模型的声码器结构依次包括第一卷积层、第一leaky-relu激活函数层、转置卷积层、多感受野融合(multi-receptive field fusion,mrf)层、第二leaky-relu激活函数层、第二卷积层、tanh激活函数层。本实施例的该模型中生成器的上采样模块的上采样参数为[10,4,4],上采样模块中的卷积核尺寸为[20,8,8],模型的生成器的mrf模块的隐藏层数量为128,多感受野融合模块的残差膨胀尺寸为[[1,2],[2,6],[3,12]]。
[0087]
其中,生成器的上采样参数是用于将梅尔频谱参数进行上采样还原成语音的这个过程的采样参数,该上采样参数与上采样的卷积核参数等参数共同影响到最终语音的时长和准确性。
[0088]
本技术优化后的hifi-gan模型相比于原有的hifi-gan模型,缩减了生成器的上采样参数、上采样结构的卷积核尺寸和mrf的残差膨胀尺寸参数,在保证了语音音质的前提下,提升了语音和效率。
[0089]
在一个示例中,语音特征包括语音音频数据的音高特征、能量特征和音长特征。
[0090]
在一个示例中,在tensorflow框架下构建语音合成模型。
[0091]
在现有的深度学习框架中,如tensorflow框架、pytorch框架、paddlepaddle框架等,其中,tensorflow在模型训练方面和部署方面,都比其他框架更有优化。例如,tensorflow框架不仅便携、高效、可扩展,还能在不同计算机上运行,小到智能手机,大到计算机集都能流畅运行;其api更加稳定、兼容性更好;它的分布式架构使大量数据集的模型训练不需要太多的时间,因为能同时在多个cpu,gpu或者两者混合运行;同时,由于其开发团队更加庞大,使得该框架的效率得到不断的提升,并且其部署方案更加完善,如tensorflow-serving,其在商业方面支持更加到位,使得商业部署更加方便、容易。同时,其所拥有的tensorrt,更加能够提升运行效率,这一点是其他框架无法比拟的。因此,将语音合成模型部署在tensorflow框架下,不仅能够提升模型训练速度,而且使得该模型的商业部署更加方便、容易。
[0092]
s140,训练语音合成模型。
[0093]
具体地,将音素序列和标准梅尔频谱作为训练数据输入模型中,以训练语音合成模型,其中,模型的损失函数的参数包括合成语音的梅尔频谱和标准梅尔频谱,根据该损失函数更新模型的参数,直到模型收敛,得到训练好的语音合成模型。
[0094]
s150,获取输入数据。
[0095]
具体地,该输入数据包括待语音合成的输入文本以及目标说话人的身份标签。
[0096]
在一个示例中,对该输入文件进行预处理,包括以下步骤:
[0097]
s151,获取第一拼音文本。
[0098]
该第一拼音文本是对输入文本进行拼音化处理得到的。
[0099]
s152,确定输入文本中的目标类型文本。
[0100]
s153,识别目标类型文本的多音字。
[0101]
s154,重新确定第一拼音文本。
[0102]
具体地,根据目标类型文本的多音字重新确定第一拼音文本
[0103]
s155,根据第一拼音文本获取输入文本对应的音素序列。
[0104]
在一个示例中,重新确定所述第一拼音文本的方式包括,首先将输入文本进行拼音化处理得到第一拼音文本,接着确定输入文本中的目标类型文本,然后识别该目标类型文本是否包括多音字。如果包括,则根据多音字查询多音字词典确定其对应的拼音,其中,该多音字词典用于表征包括多音字的词语与拼音的映射关系,并且多音字词典的更新支持热更新。然后根据查询到的多音字对应的拼音修改第一拼音文本得到新的第一拼音文本。
[0105]
其中,根据查询到的多音字对应的拼音修改第一拼音文本的方式为:
[0106]
确定查询到的多音字对应的标准拼音,然后确定该标准拼音和该目标类型文本中的多音字部分对应的拼音是否相同,若不同,则根据该标准拼音修改该目标类型文本中的多音字部分对应的拼音,得到新的第一拼音文本。
[0107]
应理解,若相同,则不需要修改第一拼音文本。
[0108]
由于汉语具有多音字的特点,尤其是对于姓名、地名这种类型的文本,存在多音字的比率较大,因此,对目标类型文本进行多音字识别,若存在多音字则重新确定拼音文本从而获取精确的音素序列,该方案很好地解决了中文的多音字文本的语音合成不准确的问题,从而提高了语音合成的准确性。
[0109]
s160,根据输入数据使用语音合成模型合成语音。
[0110]
具体地,将输入文本以及目标说话人的身份标签输入训练好的语音合成模型,以合成具有目标说话人语音特征的语音。
[0111]
由于在人类的一般语境中,特定名称的词语会有侧重感,例如姓名、地名或者商品名等等。据此,本技术利用目标类型文本在标注文本中所处于的位置,并结合标注文本的音素序列数据得到位置编码文本,同时使用音素序列和位置编码文本来训练语音合成模型。该语音合成模型在学习韵律隐特征、不同说话人的语音特征的同时,还能学习目标类型文本的位置隐特征,使得训练好的模型合成特定说话人的语音不仅具有顿挫感,还能在目标类型文本的位置具有侧重感。该方法使得在保证合成语音的音质、进一步提升自然度从而提升体验感的同时,还使得模型的训练简单且高效。
[0112]
下面结合具体实施例对方法100进行说明。如方法200包括:
[0113]
s210,获取训练数据。
[0114]
本技术准备了说话人a的语音约300条,在每条语音中提取的说话人发出的语音约2秒。并对每条语音的说话内容进行标注。具体样式如图4和图5所示,图4是本技术提供的一例单个说话人的语音数据结构示意图,图5是本技术提供的一例单个说话人的语音数据结构对应的文本数据结构示意图。
[0115]
如图4所示,“speaker01”表示该说话人a的身份标签,即id,该id下包含一个“labels.txt”和“wav”文件夹。其中,“wav”文件存放的是该说话人的语音音频数据,“labels.txt”为该语音音频数据所对应的标注文本,该文本的具体内容如图5所示。在图5中,每一行分别为图4中的每条语音的名称(spk_***),和对应的文本内容,中间用空格隔开。其中的“#1、#2、#3”为韵律标签。
[0116]
对于多个说话人的情况,依次列举即可,如图6所示,图6是本技术提供的一例多个说话人的语音数据结构示意图。
[0117]
下面以说话人a的语音数据训练语音合成模型为例进行说明。
[0118]
s220,对训练数据进行预处理。
[0119]
(1)对标注文本进行目标类型文本识别,下面以进行姓名识别为例进行说明。根据标记的位置识别姓名文本,该标记如图5中的“[

]”所示。
[0120]
(2)对语音音频数据的采样率进行统一转换,即转换成系统所默认的采样率。这里本技术设置的默认采样率为24khz。
[0121]
(3)对标注文本进行拼音化处理,一条语音音频对应一个拼音文本。
[0122]
拼音化处理后的语音数据结构如图7所示,图7是本技术提供的又一例多说话人的语音数据结构示意图。可以看出,在图7中,每个说话人文件夹下,都没有了“labels.txt”文件,但却多出了“spk_00*.lab”文件,该文件为对应的语音的拼音文本内容。具体如图8所示,其中,图8是本技术实施例提供的一例拼音文本数据图,包括除韵律标签以外的文字的拼音部分和韵律标签部分。
[0123]
可以看出,对标注文本进行相应的拼音转换的时候,在面对韵律标签时,会依然不变。该部分的目的是在进行拼音到音素转换时,将相应的韵律标签当做是音素进行处理,进而在进行音素对齐时,赋予其相应的语音特征。
[0124]
s230,获取音素序列。
[0125]
首先构建音素对齐字典,该音素对齐字典例如以下表一所示,然后根据带韵律标签的拼音文本通过查询该音素对齐字典来获取音素序列。
[0126]
表一
[0127][0128][0129]
在本实施例中,主要将韵律标签作为时长不一的空音进行转换,这里的设置方法
并不唯一,本方案主要通过设置不同数量的“sil”音,来区分不同的韵律。需要注意的是,这里的“sil”音需要与标点符号的空音进行区分。
[0130]
以图5中的标注文本“spk_005你好,请问你是#3[张三]#3吗”对应的拼音文本“ni2 hao3 qing3 wen4 ni2 shi4#3zhang1 san1#3ma5”为例,通过查询表一,确定其对应的音素文本数据为“n i2 h ao3 q ing3 w en4 n i2 sh i4 sil sil sil zh ang1 s an1 sil sil sil m a5”,其中,该音素文本数据(即第二拼音文本的音素文本数据)的拼音部分对应的音素包括“n i2 h ao3 q ing3 w en4 n i2 sh i4 zh ang1 s an1 m a5”,韵律标签部分对应的新定义音素包括“sil sil sil”“sil sil sil”。
[0131]
进一步地,将音素序列基于音素标识映射的方法转化为模型能够识别的音素序列。
[0132]
s240,获取位置编码文本。
[0133]
确定每个标注文本中是否包括姓名位置的标记“[

]”,若有,则对该标注文本对应的音素序列进行独热(one-hot)编码,获取位置编码文本。
[0134]
以图5中的标注文本“spk_005”为例,根据位置标记“[张三]”对音素序列为“n i2 h ao3 q ing3 w en4 n i2 sh i4 sil sil sil zh ang1 s an1 sil sil sil m a5”进行独热编码后的位置编码文本为“000000000000000111100000”。模型可根据其中的“1111”提取该序列的位置特征,从而加强对该位置的语音的侧重感。
[0135]
s250,提取语音时长文件。
[0136]
本实施例利用蒙特利尔强制对准器(montreal forced aligner,mfa)算法内置的通用模型对每一条语音中的音素时长进行预测,mfa算法可同时根据上述音素对齐字典生成音素序列。
[0137]
s260,提取语音特征。
[0138]
根据语音音频数据和mfa得到的音素时长数据根据以下公式提取语音特征。
[0139]
根据公式(1)提取音高pitch特征:
[0140][0141]
其中,si是一个音帧中的第i个音频的采样点的值,而n则是每个音帧包含的采样点数。median为所有采样点的值其中位数。
[0142]
根据公式(2)提取能量energy特征:
[0143][0144]
注意,这里的音高特征和能量特征是按照每个音素进行提取的,即,每个音素会对应出一个音高和能量。
[0145]
根据公式(3)提取各个音素的音长duration特征。
[0146]
duration=(p
e-ps)*sample_rate*hop_size
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式(3)
[0147]
其中,pe为一个音素的结束时间,ps为该音素的开始时间,这两个时间可以通过mfa生成的语音时长文件获取。sample_rate表示语音音频的采样频率(本实施例以采样率24khz为例),hop_size表示语音的两个相邻的采样窗口之间错开的采样数。注意,每条语音的音长特征数量和该语音的音素数量应该是保持一致的。
[0148]
最后,再根据公式(4)计算出音高的状态特征数据,即:
[0149][0150]
其中,pitch
min
表示音高的最小值,pitch
max
表示音高的最大值,pitch
mean
表示平均值,pitch
std
表示标准差。
[0151]
同理,根据公式(5)计算能量的状态特征数据如下:
[0152][0153]
s270,训练语音合成模型。
[0154]
具体地,如图3所示在tensorflow框架下构建该语音合成模型,向图3所示的模型输入上述得到的音素序列、姓名位置编码文本以及s260中获取的语音的音高、能量和音长特征数据,其中,音素嵌入层将音素序列编码成第一向量矩阵;位置嵌入层将姓名位置编码文本编码成第二向量矩阵;拼接模块将第一向量矩阵和第二向量矩阵拼接成第三向量矩阵并将第三向量矩阵输入至编码器。编码器对第三向量矩阵中的音素序列部分和位置部分并行处理,同时提取标注文本的韵律隐特征和位置隐特征;方差适配器将语音的音高、能量和音长特征数据、所述韵律隐特征和位置隐特征进行特征增强与扩充。梅尔解码器用于根据方差适配器的输出实现并行解码,得到合成语音的梅尔频谱。根据合成语音的梅尔频谱和标准梅尔频谱之间的误差根据损失函数计算损失,直到模型收敛,得到训练好的所述语音合成模型。
[0155]
上述实施例中在进行语音音频的标注文本编码时,将韵律标签作为特殊的音素和说话内容的音素共同作为音素序列参与到模型的训练中,提升了模型合成的语音的顿挫感,虽然增加了情感信息但是模型的训练难度并没有额外加大。另外,本技术在实验中发现,一般语境中,对于姓名的语气有侧重。例如“请问你是张三吗”,对于“张三”位置的语音,目前的语音合成技术对于这句话并没侧重,而上述实施例中,把“张三”的位置提取出来让模型学习,从而使得模型在姓名位置的发音加强侧重感,因此进一步提升了合成语音的自然度,更加贴近真实的语音。
[0156]
进一步地针对中文中多音字的情况,本技术还提供了一例待合成语音的输入文本处理获方法,如以下方法300所示。
[0157]
s310,获取待合成语音的输入文本。
[0158]
例如输入文本为“我是解美丽”。
[0159]
s320,对输入文本进行拼音化处理。
[0160]
对“我是解美丽”拼音化处理后的第一拼音文本为“wo3 shi4 jie3 mei3 li4”。
[0161]
s330,识别输入文本中的姓名文本。
[0162]
根据标记位置处的文本识别出姓名类型文本为“谢美丽”。
[0163]
s340,识别多音字。
[0164]
根据如表二所示的多音字词表查询姓名文本中的多音字,并确定该多音字的拼音。
[0165]
表二
[0166]
多音字姓名拼音非姓名拼音解xie4jie3单shan4dan1
………
[0167]
根据表二可以查到,解的姓名拼音为“xie4”。
[0168]
另外,表二支持热更新,因此每一次更新表二时无需对其他模块进行改动。
[0169]
s350,重新确定第一拼音文本。
[0170]
根据表二中谢的姓名拼音重新确定第一拼音文本为“wo3 shi4 xie4 mei3 li4”。
[0171]
s360,确定音素序列。
[0172]
根据音素对齐字典确定第一拼音文本的音素序列为“w o3 sh i4 x ie4 m ei3 l i4”。
[0173]
上述实施例对输入文本进行多音字识别与拼音文本的调节,很好地兼顾了中文多音字的特性,能够提高音素序列的准确性,从而提高了模型合成语音的准确性和自然度。
[0174]
根据上述特定说话人语音合成方法,本技术还提供了一种特定说话人语音合成装置,如图9所示,图9是本技术实施例提供的一例特定说话人语音合成装置示意图,该装置包括:
[0175]
数据获取模块410,用于获取多个说话人中每一说话人的身份标签、每一说话人的语音音频数据对应的标准梅尔频谱,以及每一说话人的语音音频数据对应的标注文本及其对应的音素序列;
[0176]
预处理模块420,用于确定标注文本中目标类型文本的位置,并根据位置将音素序列进行编码处理以获取位置编码文本;
[0177]
模型构建模块430,用于构建语音合成模型,语音合成模型包括音素嵌入层、位置嵌入层、拼接模块、编码器、方差适配器、梅尔解码器和声码器,其中,音素嵌入层用于根据音素序列获得音素的向量表示,位置嵌入层用于根据位置编码文本获得位置的向量表示,拼接模块用于将音素的向量表示和位置的向量表示进行拼接处理,编码器用于根据音素的向量表示和位置的向量表示提取标注文本的韵律隐特征和位置隐特征,方差适配器用于将语音特征、韵律隐特征和位置隐特征进行特征增强与扩充,梅尔解码器用于根据方差适配器的输出实现并行解码,得到合成语音的梅尔频谱,声码器用于将合成语音的梅尔频谱映射为声音波形,得到合成的语音;
[0178]
模型训练模块440,用于根据音素序列和标准梅尔频谱训练语音合成模型,根据合成语音的梅尔频谱和标准梅尔频谱之间的误差计算损失,直到模型收敛,得到训练好的语音合成模型;
[0179]
数据获取模块410还用于获取待语音合成的输入文本以及目标说话人的身份标签;
[0180]
语音合成模块450,用于将输入文本以及目标说话人的身份标签输入训练好的语音合成模型,以合成具有目标说话人语音特征的语音。
[0181]
在一个示例中,该装置还包括:
[0182]
文本转拼音模块460,用于对输入文本进行拼音化处理以得到第一拼音文本;
[0183]
目标类型文本确定模块470,用于确定输入文本中的目标类型文本;
[0184]
多音字识别模块480,用于识别目标类型文本的多音字;
[0185]
拼音文本确定模块490,用于根据目标类型文本的多音字重新确定第一拼音文本;
[0186]
音素序列确定模块4100,用于根据第一拼音文本获取输入文本对应的音素序列。
[0187]
在一个示例中,该装置还包括:
[0188]
音素对齐字典构建模块4110,用于构建音素对齐字典,音素对齐字典用于表征拼音与音素的映射关系以及韵律标签与新定义音素的映射关系,新定义音素为用于区分不同韵律标签的停顿时长的音;
[0189]
拼音文本确定模块490还用于对带韵律标签的文本进行拼音化处理以获取带韵律标签的第二拼音文本;
[0190]
音素文本数据确定模块4120,用于利用音素对齐字典将带韵律标签的第二拼音文本转化为音素文本数据,音素文本数据包括第二拼音文本中的拼音部分对应的音素和第二拼音文本的韵律标签部分对应的新定义音素;
[0191]
音素序列确定模块4100还用于基于音素标识映射的方法将音素文本数据转化为音素序列。
[0192]
该装置的其他实现方式参见方法100、方法200和方法300,在此不再赘述。
[0193]
以上结合具体实施例描述了本技术的基本原理,但是,需要指出的是,在本技术中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本技术的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本技术为必须采用上述具体的细节来实现。
[0194]
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0195]
本技术中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0196]
还需要指出的是,在本技术的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本技术的等效方案。
[0197]
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本技术。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本技术的范围。因此,本技术不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0198]
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本技术的实
施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

技术特征:


1.一种特定说话人语音合成方法,其特征在于,包括:获取多个说话人中每一说话人的身份标签、每一说话人的语音音频数据对应的标准梅尔频谱,以及每一说话人的语音音频数据对应的标注文本及其对应的音素序列;确定所述标注文本中目标类型文本的位置,并根据所述位置将所述音素序列进行编码处理以获取位置编码文本;构建语音合成模型,所述语音合成模型包括音素嵌入层、位置嵌入层、拼接模块、编码器、方差适配器、梅尔解码器和声码器,其中,所述音素嵌入层用于根据所述音素序列获得音素的向量表示,所述位置嵌入层用于根据所述位置编码文本获得位置的向量表示,所述拼接模块用于将所述音素的向量表示和所述位置的向量表示进行拼接处理,所述编码器用于根据音素的向量表示和位置的向量表示提取所述标注文本的韵律隐特征和位置隐特征,所述方差适配器用于将语音特征、所述韵律隐特征和位置隐特征进行特征增强与扩充,所述梅尔解码器用于根据所述方差适配器的输出实现并行解码,得到合成语音的梅尔频谱,所述声码器用于将所述合成语音的梅尔频谱映射为声音波形,得到合成的语音;根据所述音素序列和所述标准梅尔频谱训练所述语音合成模型,根据所述合成语音的梅尔频谱和所述标准梅尔频谱之间的误差计算损失,直到模型收敛,得到训练好的所述语音合成模型;获取待语音合成的输入文本以及目标说话人的身份标签;将所述输入文本以及所述目标说话人的身份标签输入训练好的所述语音合成模型,以合成具有所述目标说话人语音特征的语音。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对所述输入文本进行拼音化处理以得到第一拼音文本;确定所述输入文本中的目标类型文本;识别所述目标类型文本的多音字;根据所述目标类型文本的多音字重新确定所述第一拼音文本;根据所述第一拼音文本获取所述输入文本对应的音素序列。3.根据权利要求2所述的方法,其特征在于,所述识别所述目标类型文本的多音字,包括:根据所述目标类型文本查询多音字词典中对应的拼音,其中,所述多音字词典用于表征包括多音字的词语与拼音的映射关系。4.根据权利要求1所述的方法,其特征在于,所述标注文本为带韵律标签的文本,所述方法还包括:构建音素对齐字典,所述音素对齐字典用于表征拼音与音素的映射关系以及韵律标签与新定义音素的映射关系,所述新定义音素为用于区分不同韵律标签的停顿时长的音;对所述带韵律标签的文本进行拼音化处理以获取带韵律标签的第二拼音文本;利用所述音素对齐字典将所述带韵律标签的第二拼音文本转化为音素文本数据,所述音素文本数据包括第二拼音文本中的拼音部分对应的音素和第二拼音文本的韵律标签部分对应的新定义音素;基于音素标识映射的方法将所述音素文本数据转化为所述音素序列。5.根据权利要求1所述的方法,其特征在于,所述根据所述位置将所述音素序列进行编码处理以获取位置编码文本,包括:
根据所述位置确定所述目标类型文本对应的标记;根据所述标记和所述音素序列使用独热编码方式编码所述音素序列以获取位置编码文本。6.根据权利要求1所述方法,其特征在于,所述声码器使用高效高保真语音合成的生成对抗网络模型,所述模型的生成器的上采样模块的上采样参数为[10,4,4],所述上采样模块中的卷积核尺寸为[20,8,8],所述模型的生成器的多感受野融合模块的隐藏层数量为128,所述多感受野融合模块的残差膨胀尺寸为[[1,2],[2,6],[3,12]]。7.根据权利要求1所述方法,其特征在于,所述目标类型为姓名类型或者地名类型。8.根据权利要求1所述的方法,其特征在于,所述语音特征包括所述语音音频数据的音高特征、能量特征和音长特征。9.根据权利要求1所述的方法,其特征在于,所述构建语音合成模型,包括:在tensorflow框架下构建语音合成模型。10.一种特定说话人语音合成装置,其特征在于,包括:数据获取模块,用于获取多个说话人中每一说话人的身份标签、每一说话人的语音音频数据对应的标准梅尔频谱,以及每一说话人的语音音频数据对应的标注文本及其对应的音素序列;预处理模块,用于确定所述标注文本中目标类型文本的位置,并根据所述位置将所述音素序列进行编码处理以获取位置编码文本;模型构建模块,用于构建语音合成模型,所述语音合成模型包括音素嵌入层、位置嵌入层、拼接模块、编码器、方差适配器、梅尔解码器和声码器,其中,所述音素嵌入层用于根据所述音素序列获得音素的向量表示,所述位置嵌入层用于根据所述位置编码文本获得位置的向量表示,所述拼接模块用于将所述音素的向量表示和所述位置的向量表示进行拼接处理,所述编码器用于根据音素的向量表示和位置的向量表示提取所述标注文本的韵律隐特征和位置隐特征,所述方差适配器用于将语音特征、所述韵律隐特征和位置隐特征进行特征增强与扩充,所述梅尔解码器用于根据所述方差适配器的输出实现并行解码,得到合成语音的梅尔频谱,所述声码器用于将所述合成语音的梅尔频谱映射为声音波形,得到合成的语音;模型训练模块,用于根据所述音素序列和所述标准梅尔频谱训练所述语音合成模型,根据所述合成语音的梅尔频谱和所述标准梅尔频谱之间的误差计算损失,直到模型收敛,得到训练好的所述语音合成模型;数据获取模块还用于获取待语音合成的输入文本以及目标说话人的身份标签;语音合成模块,用于将所述输入文本以及所述目标说话人的身份标签输入训练好的所述语音合成模型,以合成具有所述目标说话人语音特征的语音。

技术总结


本申请提供了一种特定说话人语音合成方法和装置,该方法在根据目标类型文本在标注文本中所处于的位置对音素序列进行编码以得到具有位置特征的位置编码文本,同时使用音素序列和位置编码文本来训练语音合成模型。相对应地,本申请设计的语音合成模型,通过拼接模块将音素序列的向量表示和位置编码文本的向量表示拼接后输入编码器中,使得编码器在没有增加复杂度的同时还能够并行学习韵律隐特征和目标类型文本的位置隐特征并输入到方差适配器中。经过方差适配器将语音特征和上述特征的融合加强,在保证模型复杂度较小的同时,使得训练好的模型合成特定说话人的语音不仅具有顿挫感,还能在目标类型文本的位置具有侧重感。感。感。


技术研发人员:

樊冯飞 李健铨 胡加明

受保护的技术使用者:

鼎富智能科技有限公司

技术研发日:

2022.06.21

技术公布日:

2022/9/23

本文发布于:2024-09-22 04:37:18,感谢您对本站的认可!

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

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

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