一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多语种的语音合成方法、装置和系统与流程

2021-07-23 21:35:00 来源:中国专利 TAG:语音合成 语种 装置 方法 系统
一种多语种的语音合成方法、装置和系统与流程

本发明涉及语音合成技术领域,尤其涉及一种多语种的语音合成方法、装置和系统。



背景技术:

随着科学技术的迅猛发展,语音合成技术正在不断发展并走向市场,以适应社会的需求。目前市面上,大部分的语音合成系统一次只能合成一种语种。当用户需要转换为语音的文本段落同时具有中英双语种时,用户不得不多次来回选择不同的语种识别系统进行识别,再手动利用音频剪辑软件拼接,既麻烦,效果又不好。

因此,多语种的语音合成系统应运而生。然而,在实施本发明过程中,发明人发现现有技术至少存在如下问题:现有的多语种语音合成系统往往具备不同文本语种识别能力,但是在进行语音合成的阶段,系统只能选择一种语种的合成规则来合成语音,使得文本中不同语种部分对应合成的语音出现失真、不自然乃至表现为噪声的情况。



技术实现要素:

本发明实施例的目的是提供一种多语种的语音合成方法、装置和系统,其能实现对文本段落中的不同语种的语音合成,并有效保证合成语音的自然度和流畅度,满足用户需求。

为实现上述目的,本发明实施例提供了一种多语种的语音合成方法,包括:

获取待处理文本;对所述待处理文本中的每一字符进行语种识别,并存入对应的预设的字符库中;其中,所述待处理文本中包含至少两种语种;所述预设的字符库包括特殊字符库和至少两个语种对应的语种字符库;在所述语种字符库中存储的所述字符以句子为单位形成对应的字符串;

采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分;

根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中获取对应的目标语音拼接单元;

按识别顺序确定相邻的目标语音拼接单元,计算相邻的目标语音拼接单元之间的最佳拼接点;并根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音。

作为上述方案的改进,当所述待处理文本中包括汉语语种时,所述语种字符库包括汉字字符库;

则所述采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分,包括:

对所述汉字字符库中的字符串采用预设的分词神经网络模型进行单词切分,根据切分后的词组确定其拼音和声调,以得到所述字符串对应的以拼音和声调表示的拼音串;

根据每一所述字符串对应的拼音串,采用预设的韵律结构预测模型,对每一所述字符串进行韵律结构划分;其中,所述韵律结构至少包括韵律词、韵律短语和语调短语三个层级。

作为上述方案的改进,所述预设的韵律结构预测模型的训练方法,具体包括:

获取训练语料库;其中,所述训练语料库中包括若干个汉语句子及其对应的韵律结构划分结果;

根据所述训练语料库对rnn循环神经网络进行训练,得到训练后的循环神经网络模型;

采用分类回归树算法,对所述循环神经网络模型进行线性融合训练,得到训练完成的循环神经网络模型,作为所述韵律结构预测模型。

作为上述方案的改进,当所述待处理文本中包括英语语种时,所述语种字符库包括英文字符库;

则所述采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分,包括:

确定所述英文字符库中的字符串的文本属性;其中,所述文本属性与上下文环境相关;

根据每一所述字符串的文本属性,采用预设的韵律结构预测模型,对每一所述字符串进行韵律结构划分;其中,所述韵律结构预测模型为二叉决策回归树,所述二叉决策回归树反映了所述文本属性与韵律结构的映射关系。

作为上述方案的改进,所述二叉决策回归树的构建方法,具体包括:

确定所述语音拼接单元库中的每一语音拼接单元的文本属性;

使用决策回归树算法,以语音拼接单元间的平均距离作为不纯度度量,对所述语音拼接单元进行聚类,以划分得到不同层级的韵律结构;

根据所述文本属性与所述韵律结构之间的映射关系,构建得到所述二叉决策回归树。

作为上述方案的改进,所述根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中获取对应的目标语音拼接单元,具体包括:

根据所述英文字符库中的每一字符串对应的韵律结构,在所述预设的语音拼接单元库中获取符合所述韵律结构的候选语音拼接单元;

根据每一所述候选语音拼接单元的目标代价和连接代价,通过以下计算公式,计算每一候选语音拼接单元的拼接代价:

其中,c为候选语音拼接单元的拼接代价,ct(i)为候选语音拼接单元的目标代价,cc为候选语音拼接单元的连接代价;wt和wc分别为目标代价和连接代价的权值,n为所述候选语音拼接单元的长度,p为所述文本属性的个数,为第j个文本属性的规则距离,ωj为第j个文本属性的权值;

获取使得所述拼接代价最小对应的候选语音拼接单元,作为目标语音拼接单元。

作为上述方案的改进,所述按识别顺序确定相邻的目标语音拼接单元,计算相邻的目标语音拼接单元之间的最佳拼接点;并根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音,具体包括:

对每一所述目标拼接单元进行分帧处理,并提取每一所述目标拼接单元的前m帧和后m帧的mfcc特征参数;

按识别顺序确定相邻的目标语音拼接单元,获取前一目标拼接单元的后m帧中的任一帧和后一目标拼接单元的前m帧中的任一帧作为相邻的目标语音拼接单元的拼接点,以得到m2个拼接组合;

通过以下计算公式,计算每一所述拼接组合对应的拼接代价;并根据拼接代价最小对应的拼接组合,确定相邻的目标语音拼接单元之间的最佳拼接点:

其中,为拼接组合对应的拼接代价;mfcc1,m(i)为前一目标拼接单元的第m个拼接点对应的mfcc特征参数值,mfcc2,m(i)为后一目标拼接单元的第m个拼接点,mfccdim为一帧的mfcc特征参数的维数,tm为基频拼接代价函数的门限;m≥1;

根据所述最佳拼接点对相邻的目标拼接单元进行拼接,得到初始合成语音;

计算前一目标语音拼接单元的后n帧的能量和后一目标语音拼接单元的前n帧的能量;当前一目标语音拼接单元的后n帧的能量和后一目标语音拼接单元的前n帧的能量之差高于预设的静音能量阈值时,通过以下计算公式计算相邻的目标语音拼接单元的音量调整分贝;并通过所述音量调整分贝,对所述目标语音拼接单元进行音量调整,以得到最终的合成语音:

db1=(e1–e2)×w1;

db2=(e1–e2)×w2;

其中,db1为前一目标语音拼接单元的音量调整分贝,db2为后一目标语音拼接单元的音量调整分贝;e1前一目标语音拼接单元的后n帧的能量,e2为后一目标语音拼接单元的前n帧的能量,n≥1;w1和w2分别为预设的权值。

作为上述方案的改进,在所述根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音之后,所述方法还包括:

采用基于tacotron模型的语音拼接平滑算法对所述合成语音进行平滑处理。

本发明实施例还提供了一种多语种的语音合成装置,包括:

语种识别模块,用于获取待处理文本;对所述待处理文本中的每一字符进行语种识别,并存入对应的预设的字符库中;其中,所述待处理文本中包含至少两种语种;所述预设的字符库包括特殊字符库和至少两个语种对应的语种字符库;在所述语种字符库中存储的所述字符以句子为单位形成对应的字符串;

韵律结构划分模块,用于采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分;

目标单元获取模块,用于根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中获取对应的目标语音拼接单元;

语音合成模块,用于按识别顺序确定相邻的目标语音拼接单元,计算相邻的目标语音拼接单元之间的最佳拼接点;并根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音。

本发明实施例还提供了一种多语种的语音合成系统,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的多语种的语音合成方法。

与现有技术相比,本发明公开的一种多语种的语音合成方法、装置和系统。通过获取待处理文本;对所述待处理文本中的每一字符进行语种识别,并存入对应的预设的字符库中;采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分;根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中获取对应的目标语音拼接单元;按识别顺序确定相邻的目标语音拼接单元,计算相邻的目标语音拼接单元之间的最佳拼接点;并根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音。采用本发明实施例的技术手段,在对多语种的文本进行语音合成的过程中,考虑了不同语种文本的韵律参数,从而使得合成语音具备不同年龄、性别特征及语气、语速的表现,以及赋予个人的感情色彩。在语音合成过程中,对相邻的目标语音拼接单元选择合适的拼接点,使得合成语音更加平滑流畅,提升了合成语音的自然度与表现力。

附图说明

图1是本发明实施例一中的一种多语种的语音合成方法的步骤流程示意图;

图2是本发明实施例一中的语种识别步骤的流程示意图;

图3是本发明实施例二中的分词神经网络模型的结构示意图;

图4是本发明实施例二中的韵律结构划分示意图;

图5是本发明实施例四中的mfcc特征参数提取步骤的流程示意图;

图6是本发明实施例四中的目标语音拼接单元的拼接平滑步骤的流程示意图;

图7是本发明实施例六中的一种多语种的语音合成装置的结构示意图;

图8是本发明实施例七中的一种多语种的语音合成系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明实施例一中的一种多语种的语音合成方法的步骤流程示意图。本发明实施例提供的一种多语种的语音合成方法,通过步骤s1至s4执行:

s1、获取待处理文本;对所述待处理文本中的每一字符进行语种识别,并存入对应的预设的字符库中;其中,所述待处理文本中包含至少两种语种;所述预设的字符库包括特殊字符库和至少两个语种对应的语种字符库;在所述语种字符库中存储的所述字符以句子为单位形成对应的字符串。

在本发明实施例中,所述待处理文本中包含至少两种语种,采用基于unicode码的文本语种识别方法进行语种识别。根据不同语言unicode的编码范围,通过判断unicode码所在区间来确定某个字符所处类型。

作为举例,以下为汉字、数字、大小写字母以及常用标点的unicode编码范围:

基本汉字:[0x4e00,0x9fa5](或十进制[19968,40869])

数字:[0x0030,0x0039](或十进制[48,57])

小写字母:[0x0061,0x007a](或十进制[97,122])

大写字母:[0x0041,0x005a](或十进制[65,90])

常用标点:2000-206f

参见图2,是本发明实施例一中的语种识别步骤的流程示意图。在所述待处理包括汉语语种和英语语种的情况下,所述对所述待处理文本中的每一字符进行语种识别,并存入对应的预设的字符库中,具体包括步骤:

s11、创建汉字字符库、英文字符库和特殊字符库,分别用于存放汉字字符、英文字符和特殊字符,创建一个字符串string用于存放英文字母。

s12、遍历所述待处理文本中的所有字符,判断是否存在下一个字符,若是,根据下一个字符x的unicode码所在区间来确定字符x所处区间。当x属于中文区间,则执行s13;当x属于数字区间,则执行s14;当x属于特殊字符区间,则执行s15;当x属于英文区间,则执行s16;若否,则识别结束。

s13、将x放置到存放汉字字符库,执行s12;

s14、将x转化为中文数字,放置到存放汉字字符库,执行s12;

s15、将x放置到存放特殊字符库,执行s12;

s16、字符串string=string x,执行s17;

s17、判断下一个字符是否属于英文区间,若是则执行s16;否则将string作为一个英文单词放置到英文字符库,并清除string字符。

需要说明的是,在所述语种字符库中,存储的所述字符以句子为单位形成对应的字符串。具体可以通过在遍历和识别待处理文本中的字符的过程中,当识别到的下一字符为特殊字符或与前面识别到的字符的语种不同时,将前面识别到的字符形成字符串并存入对应的语种字符库的方式实现。

需要说明的是,上述语种识别方法仅作为一种实施方式,并不构成对本方案的具体限定。在实际应用中,还可以通过判断字符的ascii码进行语种识别,均不影响本发明取得的有益效果。

s2、采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分。

具体地,韵律也称为节律、音律、非线性特征等。韵律结构划分是语音合成系统的重要组成部分,这是因为人们进行口语交流时往往不会按照分词的结果进行停顿(但分词的结果仍具有一定的指导性作用)。因此准确的预测文本的韵律边界位置以及其等级,是语音合成中的重要环节,它是合成自然、流畅的输出语音的重要前提和保证。

在本发明实施例中,通过预先训练韵律结构预测模型,用于对语种字符库中的每一字符串进行韵律结构划分,从而保证后续在对语音合成步骤过程中所生成的合成语音的较好的自然度和流畅度。

s3、根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中获取对应的目标语音拼接单元。

预先一个语音拼接单元库,用于存放大量的可用于合成语句的语音拼接单元。在拼接合成时,不可避免地会带来音质的损失,因此,拼接单元越大,拼接点越少,合成的效果越好,但是灵活度也越低,语音库需要更多的拼接单元。为了权衡合成语音的自然度与语音库的体积,在本发明实施例中,采用了3种不同长度的语音拼接单元:单词、音节和音素。利用较大的单元来覆盖连续语流中的各种语音现象,尤其是协同发音现象,同时利用较小的单元来提高系统的灵活性和鲁棒性。

在语音合成时,针对语种字符库中的每一字符串,根据文本分析和韵律结构分析获取的语音学参数,以找出合适的目标语音拼接单元。如果待处理文本中的单词存在对应的单词语音拼接单元,则选择该单词语音拼接单元作为目标语音拼接单元,如果单词语音拼接单元也不存在,则选择对应的音节语音拼接单元作为目标语音拼接单元;如果音节语音拼接单元也不存在,则选择对应的音素语音拼接单元作为目标语音拼接单元。

s4、按识别顺序确定相邻的目标语音拼接单元,计算相邻的目标语音拼接单元之间的最佳拼接点;并根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音。

本发明在语音合成的过程中,通过对若干个目标语音拼接单元进行波形拼接以获得合成语音。相邻的目标拼接单元通常来自于语料库中的原始文件,而即使同一拼接单元来自于同一原始文件,也会由于其所处的原始文件的位置不同,语境也不相同,而产生比较明显的差异,对合成语音的效果影响很大。

为使相邻的两个目标语音拼接单元的韵律参数在拼接点处的接续平滑,通过计算两个语音单元的韵律参数在拼接点处的差值,以其最小值来确定最佳拼接点,根据最佳拼接点对对相邻的目标拼接单元进行拼接,以得到合成语音。

本发明实施例一提供了一种多语种的语音合成方法,获取待处理文本;对所述待处理文本中的每一字符进行语种识别,并存入对应的预设的字符库中;采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分;根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中获取对应的目标语音拼接单元;按识别顺序确定相邻的目标语音拼接单元,计算相邻的目标语音拼接单元之间的最佳拼接点;并根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音。采用本发明实施例的技术手段,在对多语种的文本进行语音合成的过程中,考虑了不同语种文本的韵律参数,从而使得合成语音具备不同年龄、性别特征及语气、语速的表现,以及赋予个人的感情色彩。在语音合成过程中,对相邻的目标语音拼接单元选择合适的拼接点,使得合成语音更加平滑流畅,提升了合成语音的自然度与表现力。

本发明实施例二提供了一种多语种的语音合成方法,在实施例一的基础上进一步实施。当所述待处理文本中包括汉语语种时,所述语种字符库包括汉字字符库。

则步骤s2具体通过步骤s211至s212执行:

s211、对所述汉字字符库中的字符串采用预设的分词神经网络模型进行单词切分,根据切分后的词组确定其拼音和声调,以得到所述字符串对应的以拼音和声调表示的拼音串。

s212、根据每一所述字符串对应的拼音串,采用预设的韵律结构预测模型,对每一所述字符串进行韵律结构划分;其中,所述韵律结构至少包括韵律词、韵律短语和语调短语三个层级。

在本发明实施例中,为了对所述汉字字符串进行准确的韵律结构划分,需要先将汉字字符串转换为拼音串,获取到汉字对应的声母、韵母,从而与边界处的声学参数进行匹配,更好的研究韵律层级边界处的声学表现。而为了使得拼音的转换更加准确,则需要先对汉字字符串进行分词。针对中文,分词可避免大部分由于歧义产生的注音错误,还可以获得词的边界线蕴含的丰富的韵律信息,例如词的边界线往往需要稍作停顿。

本发明采用预设的分词神经网络模型对汉字字符串进行单词切分。在本发明实施例二的一种实施方式下,参见图3,是本发明实施例二中的分词神经网络模型的结构示意图,所述分词神经网络模型采用循环神经网络(rnn)。具体地,所述分词神经网络模型的训练过程如下:

输入信息是以中文字或词为单位的字符串,也可以是词法、句法抽象的概念,每一字词或概念作为单个神经元的输入。字符串可以不连续,也即可以出现空的神经元。神经网络的结构可以自由重构,如对新出现的字词、句法概念创建一个新的神经元。而对于新增加的只是不会刷新旧知识,因此,该神经网络的遗忘系数将置1(不遗忘)。由于神经网络学习的特性,对于新的分词知识的增加,与搜索时间无关,也即随着知识增加,搜索时间却不会过分增加。

分词神经网络模型如图3所示。f1是输入层,f2是竞争网络,f3表示自适应学习机制。f1输入层输入为任意字词或概念组成的字符串。输入层每个结点对应一个字词或概念。当结点对应字词非空时为1,空字符为0。设xi为f1第i个结点,si为第i个字词,则有

f2为竞争网络。每一个神经元均有一正反馈激励,也即给每一神经元以自恢复、自增强机制,而互相之间为抑制作用。在信息并行输入f2时,每个神经元都积极增强自己而抑制其他神经元,但由于每个神经元的权值wi不一样,神经元激活程度也不一样。通过反复演变和迭代,使某一神经元占主导地位,而其他神经元被抑制。演化的结果与权值和f1输入信息有关。某神经元初始激活越大,此神经元取胜的概率越大。设tjk是结点j到结点k的权值,则:

其中0<ε<1。

网络内部以δt的时间序列迭代演化,t 1时结点j的输出值yj′(t 1)随t改变而改变,有:

yj′(t 1)=f(yj(t)-ε∑k≠jyk(t))j,k=1,…,m

其中,m是结点总个数。式中的f(*)为线性阈值函数:

设输入为字符串(x1x2…xn),wij(t 1)是输入i的状态时神经元结点j的权重,则神经元j的输出为:

设最终在竞争网络f2竞争胜出的神经元的输出大于预先设定的切分阈值,则表示当前输出结点代表的字词处为切分点,f2网络通过对照标签,判断其是否为正确切分结果,若不是,则在f3自学习算法调整权值,再重新竞争,直到切分正确位置。如果遇到了新的字词,则在输入层f1新增结点。由于输入层f1每一个神经元均对应固定的字词,一旦自学习过程完成,系统就能对由这些字词组成的语言正确处理。整个学习过程是一个由简到繁的过程,神经网络会逐渐完善知识的存储。

进一步地,本发明基于汉语电子词典提取出汉字与其对应的拼音,组成汉字-拼音字典。在对汉字字符串进行分词后,在处理输入的汉字字符时,基于所述汉字-拼音字典,将分词后的汉字字符串转换为拼音串。举例如下:

输入语句:最让我品味不尽的秋韵

转换后的拼音串:zui4rang4wo3pin3_wei4bu2_jin4de5qiu1_yun4。

其中,数字(1,2,3,4)代表汉字的声调。

进一步地,根据每一所述字符串对应的拼音串,采用预设的韵律结构预测模型,对每一所述字符串进行韵律结构划分。在本发明实施例中,对汉语语种的韵律结构设置有三个层级,从小到大依次是韵律词、韵律短语和语调短语。

以“致以诚挚的问候和良好的祝愿”为例,将该字符串转换为拼音串后,输入所述韵律结构预测模型,参见图4,是本发明实施例二中的韵律结构划分示意图。其中pw、pp、ip、s分别表示韵律词、韵律短语、语调短语和句子。通过所述韵律结构预测模型,输出该字符串对应的韵律结构划分结果。

在本发明实施例二的一种实施方式下,所述预设的韵律结构预测模型的训练方法,具体包括步骤s212a至s212b:

s212a、获取训练语料库;其中,所述训练语料库中包括若干个汉语句子及其对应的韵律结构划分结果。

在本发明实施例中,用于对韵律结构预测模型进行训练的语料库包括汉语20000句,总计40多万个音节,均进行了三个层级(韵律词、韵律短语、语调短语)的韵律边界标注。

s212b、根据所述训练语料库对rnn循环神经网络进行训练,得到训练后的循环神经网络模型。

本发明基于rnn(循环神经网络)来预测韵律词、韵律短语和语调短语。选用词向量(word2vec)作为特征。word2vec通过训练,可以把每个词表示为n维向量的一个特征。从而两个词之间的距离可以用词向量空间的相似度来表示。如表1所示,表1为rnn深度学习网络模型的f-score(分类模型的评价指标)结果:

表1rnn模型f-score结果

s223、采用分类回归树算法,对所述循环神经网络模型进行线性融合训练,得到训练完成的循环神经网络模型,作为所述韵律结构预测模型。

rnn模型较其他模型相比,准确率有所提升。但是其对于极少部分输入,会出现输出近似1或者0这样不够平滑的结果。通常的解决方法是将其与其他模型作一个线性融合。本发明选取分类回归树算法(cart)、循环神经网络(rnn)、条件随机场模型(crf)模型所输出的概率结果以及部分重要特征进行模型的融合。首先用线性模型来训练线性模型融合的系数。训练时选取的指数损失函数为:

l(y,f)=e-yf(x)

其中y是预测值,f是目标值。经过计算,crf、cart、rnn的融合系数分别为0.43、0.11、0.49,偏置项系数为-0.14。可见结果对rnn和crf的依赖程度远高于cart。不同系数结果如表2所示:

表2融合系数结果

为了提高模型融合的准确率,将短语长度的约束引入,加入了到上一个边界距离、当前语法词音节数、下一个语法词音节数这个三个特征,用cart对rnn进行融合。具体训练步骤如下所示:

step1:根据多模型的融合结果,得到训练语料库中每个训练样本的“到上一个边界的距离”。

step2:随机抽取75%的训练样本,用cart进行训练。

step3:用剩余的25%的训练样本进行交叉验证,判断结果是否达到预值。如果达到预值,结束训练。

step4:如果没有达到预值,用cart训练的结果,更新短语长度约束特征,并转到step2继续训练。

需要说明的是,这里需要考虑的超参数除了cart自带的超参数外,还有判断结果是否理想的f-score值。即如果结果优于此值,则停止训练。

在本发明实施例二中,通过所述韵律结构预测模型获得每一汉字字符串的韵律结构后,即可根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中直接获取对应的目标语音拼接单元。

采用本发明实施例的技术手段,能够提高对汉字字符串的韵律结构划分的准确性,以进一步提高合成语音的自然度和流畅度。

本发明实施例三提供了一种多语种的语音合成方法,在实施例一的基础上进一步实施。当所述待处理文本中包括英语语种时,所述语种字符库包括英文字符库。

则步骤s2具体通过步骤s221至s222执行:

s221、确定所述英文字符库中的字符串的文本属性;其中,所述文本属性与上下文环境相关。

s222、根据每一所述字符串的文本属性,采用预设的韵律结构预测模型,对每一所述字符串进行韵律结构划分。

在本发明实施例中,针对英文语种,所述韵律结构预测模型采用二叉决策回归树。所述二叉决策回归树反映了所述文本属性与韵律结构的映射关系。根据英文字符串的文本属性,即可通过所述二叉决策回归树,确定对应的韵律结构。

在本发明实施例二的一种实施方式下,所述二叉决策回归树的构建方法,具体包括步骤s222a至s222c:

s222a、确定所述语音拼接单元库中的每一语音拼接单元的文本属性。

s222b、使用决策回归树算法,以语音拼接单元间的平均距离作为不纯度度量,对所述语音拼接单元进行聚类,以划分得到不同层级的韵律结构;

s222c、根据所述文本属性与所述韵律结构之间的映射关系,构建得到所述二叉决策回归树。

在本发明实施例中,由于英文字符串没有预先定义的韵律结构层级,则需要对语音拼接单元库中的每一语音拼接单元进行聚类,从而划分出相应的韵律结构层级。

在语音拼接单元库中,根据上下文环境对单词,音节和音素进行聚类,筛选出具有相似的韵律特征的语音拼接单元,作为同一韵律层级。本发明采用二叉决策回归树cart(classificationandregressiontree),对语音拼接单元库中样本数超过20的单词,音节和音素进行聚类,得到反映上下文与韵律信息映射关系的二叉决策回归树。

在一种实施方式下,根据英语语言学的知识,本发明选取以下与上下文环境有关的属性作为cart的文本属性:

a1:语音拼接单元前一个单音的类型

a2:语音拼接单元后一个单音的类型

a3:语音拼接单元前一个音节的重音(无重音,有重音,前一个音节不存在)

a4:语音拼接单元后一个音节的重音(无重音,有重音,后一个音节不存在)

a5:语音拼接单元所在单词前的停顿级别

a6:语音拼接单元所在单词后的停顿级别

a7:语音拼接单元所在单词在段落中的位置(段首,段中,段末,段中仅一个单词)

a8:语音拼接单元所在单词在句子中的位置(句首,句中,句末,句中仅一个单词)

a9:语音拼接单元所在单词在短句中的位置(短句首,短句中,短句末,短句中仅一个单词)

a10:语音拼接单元所在单词在短语中的位置(短语首,短语中,短语末,短语中仅一个单词)

a11:语音拼接单元所在单词在韵律词中的位置(韵律词首,韵律词中,韵律词末,韵律词中仅一个单词)。

a12:语音拼接单元所在音节在单词中的位置(词首,词中,词末,单词仅一个音节)

a13:语音拼接单元所在单词的音节数

a14:phone在音节中的位置(音节首,音节中,音节末,音节仅一个phone)

a15:phone所在音节的单音数

对单词进行聚类时,用属性a1~a11;对音节聚类时,用属性a1~a13;对phone聚类时用到a1~a15所有15个属性。

基于上述属性,使用cart算法,并用“样本单元间的平均距离”作为不纯度度量方法进行聚类。在聚类过程中,两个语音拼接单元间韵律特征的差异,差异越小,则韵律越相似,二者进行拼接的效果越好。因此,通过度量两个语音拼接单元间韵律特征的差异,若差异大于预设阈值,则需要调整相应权值并重新进行聚类。

用以下公式来度量两个语音拼接单元间韵律特征的差异:

其中,n表示音频采样点数,pa、pb分别表示对a、b单元顺序采样的第i点的基音周期的大小;ea、eb表示a、b单元的能量;da、db分别表示a、b单元的时长;α、β、γ为权值,三者之和为1。由于英语的语调本身比较平稳,基音周期的权值α的取值可以较小,而能量和时长的权值β、γ基本相当,可以取较大的值。

在此基础上,作为优选的实施方式,步骤s3,具体通过步骤s31至s33执行:

s31、根据所述英文字符库中的每一字符串对应的韵律结构,在所述预设的语音拼接单元库中获取符合所述韵律结构的候选语音拼接单元;

s32、根据每一所述候选语音拼接单元的目标代价和连接代价,通过以下计算公式,计算每一候选语音拼接单元的拼接代价:

其中,c为候选语音拼接单元的拼接代价,ct(i)为候选语音拼接单元的目标代价,cc为候选语音拼接单元的连接代价;wt和wc分别为目标代价和连接代价的权值,n为所述候选语音拼接单元的长度,p为所述文本属性的个数,为第j个文本属性的规则距离,ωj为第j个文本属性的权值;

s33、获取使得所述拼接代价最小对应的候选语音拼接单元,作为目标语音拼接单元。

本发明通过对每个文本属性制定一个规则距离表来确定目标单元和候选单元间相互替换时代价的大小。制定的规则距离表如表3所示,其中a1t为目标语音拼接单元的属性值,a1u候选语音拼接单元的属性值。

表3文本属性规则距离表

连接代价主要考虑候选语音拼接单元在字符串中的位置,如果路径中前一字符与后一字符在语料中是相邻的,那么代价为0,否则代价为1。

综合考虑目标代价和连接代价,在候选单元网络中,分别对连续的单词、音节和phone组成的子网络,选择一条代价最小的路径,进而组合为一个目标语音拼接单元的序列。由于单词内部各个音位之间的联系很紧密,相互之间会产生较大的影响,故在phone和phone的拼接点处,给连接代价赋以更高的权值,而在单词和单词的拼接点处,目标代价权值更高,音节和音节的拼接点,连接代价和目标代价的权值基本相当。

采用本发明实施例的技术手段,能够提高对英文字符串的韵律结构划分的准确性,以进一步提高合成语音的自然度和流畅度。

本发明实施例四提供了一种多语种的语音合成方法,在实施例一至实施例三任一实施例的基础上进一步实施。步骤s4,具体通过步骤s41至s45执行:

s41、对每一所述目标拼接单元进行分帧处理,并提取每一所述目标拼接单元的前m帧和后m帧的mfcc特征参数;

在本发明实施例中,参见图5,是本发明实施例四中的mfcc特征参数提取步骤的流程示意图。对每一目标语音拼接单元进行分帧,得到语言信号。用离散傅立叶变换得到的频谱需要通过一系列三角形滤波器来变换到mel频率域,这是因为人对音调的感觉和声音的频率并不成正比关系。mel频率和频率之间的对应关系可用以下公式近似表示:

由mfcc具有良好的识别性能和抗噪能力,能反映出音频的特征参数,所以,本发明拟采用通过提取语音拼接单元的mfcc参数来进行频谱分析。

s42、按识别顺序确定相邻的目标语音拼接单元,获取前一目标拼接单元的后m帧中的任一帧和后一目标拼接单元的前m帧中的任一帧作为相邻的目标语音拼接单元的拼接点,以得到m2个拼接组合。

作为举例,取m=2。则,对于相邻的两个目标语音拼接单元a和b,存在4中拼接组合,分别为:a单元的最后一帧与b单元的第一帧作为拼接点、a单元的倒数第二帧与b单元的第一帧作为拼接点、a单元的最后一帧与b单元的第二帧作为拼接点、a单元的倒数第二帧与b单元的第二帧作为拼接点。

s43、通过以下计算公式,计算每一所述拼接组合对应的拼接代价;并根据拼接代价最小对应的拼接组合,确定相邻的目标语音拼接单元之间的最佳拼接点:

其中,为拼接组合对应的拼接代价;mfcc1,m(i)为前一目标拼接单元的第m个拼接点对应的mfcc特征参数值,mfcc2,m(i)为后一目标拼接单元的第m个拼接点,mfccdim为一帧的mfcc特征参数的维数,tm为基频拼接代价函数的门限;m≥1。

同样以m=2作为举例,则分别计算出4种拼接组合对应的拼接代价c1、c2、c3和c4。若拼接代价c1最小,则对应的拼接组合(a单元的最后一帧与b单元的第一帧作为拼接点)作为最佳拼接组合,则a单元的最后一帧与b单元的第一帧作为最佳拼接点。

s44、根据所述最佳拼接点对相邻的目标拼接单元进行拼接,得到初始合成语音;

s45、计算前一目标语音拼接单元的后n帧的能量和后一目标语音拼接单元的前n帧的能量;当前一目标语音拼接单元的后n帧的能量和后一目标语音拼接单元的前n帧的能量之差高于预设的静音能量阈值时,通过以下计算公式计算相邻的目标语音拼接单元的音量调整分贝;并通过所述音量调整分贝,对所述目标语音拼接单元进行音量调整,以得到最终的合成语音:

db1=(e1–e2)×w1;

db2=(e1–e2)×w2;

其中,db1为前一目标语音拼接单元的音量调整分贝,db2为后一目标语音拼接单元的音量调整分贝;e1前一目标语音拼接单元的后n帧的能量,e2为后一目标语音拼接单元的前n帧的能量,n≥1;w1和w2分别为预设的权值。

具体地,由于不同语义单位(段、句、词等)的分割处,语音的某些特征有明显变化,比如在句子边界处,音频的能量特征就显著减少。因此,本发明可以利用这一特点来做边界检测,以检测语音合成时,语言拼接单元的拼接处是否足够平滑,以降低拼接处的断层程度。

参见图6,是本发明实施例四中的目标语音拼接单元的拼接平滑步骤的流程示意图。通过判断前一目标语音拼接单元的后n帧的能量和后一目标语音拼接单元的前n帧的能量之差是否高于预设的静音能量阈值,来对相邻的目标语音拼接单元进行音量调整。

作为举例,当计算得到db1为负值时,对所述前一目标语音拼接单元的后n帧进行减音量,当计算得到db1为正值时,对所述前一目标语音拼接单元的后n帧进行加音量。具体的db1的绝对值即为加减音量的分贝值。对后一目标语音拼接单元的音量调整同理可得。

采用本发明实施例的技术手段,先通过分析频谱寻找最佳拼接点,再通过基于双阈值语音拼接平滑算法调整原始音素文件的音量,可有效解决使用拼接单元所合成的语音不平滑的问题。

本发明实施例五提供了一种多语种的语音合成方法,在实施例一至四任一实施例的基础上进一步实施。在步骤s4之后,所述方法还包括步骤s5:

s5、采用基于tacotron模型的语音拼接平滑算法对所述合成语音进行平滑处理。

在本发明实施例中,在获得合成语音之后,由于合成语音中可能还存在过度不自然的地方,因此通过基于tacotron的语音拼接平滑算法,对合成语音加一层滤镜。它不对整体做出太大的改动,而是磨掉不自然的地方。

tacotron模型由encoder模块,decoder模块和post-processing网络顺序连接组成。将所述合成语音的频谱图,依次经过encoder模块、decoder模块、post-processing模块,可获取平滑后的频谱图。encoder模块将频谱转换成更好处理的序列数据,decoder模块负责处理、预测数据,post-process模块将平滑后的序列转换成频谱。

以下对tacotron模型的各个模块进行解释说明:

encoder模块:

平滑时,首先将所述合成语音放到encoder的预训练层(pre-net),它有两个隐藏层,层与层之间的连接均是全连接;第一层的隐藏单元数目与输入单元数目一致,第二层的隐藏单元数目为第一层的一半;两个隐藏层采用的激活函数均为relu,dropout设置为来提高泛化能力。

接着将预训练层网络的输出输入到cbhc模块中,从而获得原始输入的高鲁棒性序列。

cbhg模块由一维卷积层(1-dconvolutionbank),高速路神经网络(highwaynetworks),双向门控循环单元(bidirectionalgru)组成。它的功能是从输入中提取有价值的特征,有利于提高模型的泛化能力。

输入序列首先会经过一个卷积层,然后进行残差连接(residualconnection),用于弥补经过多层卷积后丢失的信息。然后下一层输入到高速路神经网络(highwaynetwork),这个网络的结构为:把输入(input)同时放进到两个一层的全连接网络中,两个网络的激活函数为relu和sigmoid,两个网络的输出为output1和output2,那么highway层的输出(output)为:

output=output1*output2 input*(1-output2)

本发明实施例中,highway层数为四层。其中highwaynetwork的公式为

y=h(x,wh)·(x,wt) x·c(x,wc)

然后将highway层的输出输入到双向gru,gru的输出结果就是encoder的输出。gru是lstm的优化版,gru只有更新门与重置门,使得训练速度有所加快。两个门的公式如下:

z(t)=σ(w(z)x(t) u(z)h(t-1))(updategate)

r(t)=σ(w(r)x(t) uh(r)h(t-1))(resetgate)

z(t)=tanh(r(t)。uh(t-1) wx(t))(newmemory)

重置门(resetgate):r(t)负责决定h(t-1)对newmemoryh(t)的权重,如果r(t)约等于0的话,h(t-1)就不会传递给newmemoryh(t)

newmemory:h(t)是对新的输入x(t)和上一时刻的hiddenstateh(t-1)的总结。计算总结出的新的向量h(t)包含上文信息和新的输入x(t)

更新门(updategate):z(t)负责决定传递多少h(t-1)给h(t)。如果z(t)约等于1的话,h(t-1)几乎会直接复制给h(t),相反,如果z(t)约等于0,newmemoryh(t)直接传递给h(t)

隐藏状态(hiddenstate):h(t)由h(t-1)和h(t)相加得到,两者的权重由updategatez(t)控制。

decoder模块:

经由cbhg模块处理后获得序列将输入到decoder模块。decoder分为三个部分:预训练(pre-net)、聚焦层(attention-rnn)、解码层(decoder-rnn)。decoder的预训练(pre-net)的结构与encoder的预训练(pre-net)结构相同,作用为对输入做一些非线性变换。

聚焦层(attention-rnn)的结构为一层包含256个gru的rnn,它将pre-net的输出和attention的输出作为输入,经过gru单元后输出到decoder-rnn中。解码层(decode-rnn)为两层residualgru,它的输出为输入与经过gru单元输出之和。每层包含了256个gru单元。第一步decoder的输入为0矩阵,之后都会把第t步的输出作为第t 1步的输入。

post-processing模块:

因为decoder-rnn输出的并不是音频文件,因此需要后处理(post-processing),将decoder-rnn的输出转换成频谱。以decoder模块的输出作为后处理(post-processing)模块的输入,使用cbhg模块作为后处理层(post-processingnet)进行转换。

进一步地,再通过wavenet可将频谱图逆转换成音频,从而得到经过平滑处理后的最优的合成语音。

具体地,本发明使用了一个修正过的wavenet结构来将梅尔频谱图特征表现转换为时域的波形图,从而获得最终的音频文件。该wavenet有30个扩大的卷积层,分组为三个扩大的周期。用rixelcnn 和parallelwavenet来代替softmax层,使用mol来生成16为的采样,频率为24khz。为了计算逻辑混合分布,wavenet堆叠的输出通过relu激励函数后,通过线性投影来预测每个混合部分的参数。损失(loss)通过负对数最大似然估计(negativelog-likehood)得到。

训练过程:首先训练特征预测网络,然后通过第一层的输入来训练第二层修正的wavenet网络。训练特征预测网络时,使用极大似然估计方法(maxinum-likehood)。使用adam优化器优化训练速度,学习率为0.001,在每50000次迭代之后,学习率会衰减0.00001。使用l2正则化的方法,权重为0.000001。

之后通过特征预测网络得出的预测信息来训练修正的wavenet,。通过32个gpu进行同步训练,batch_size=128,并且也是用adam作为优化器,固定学习率为0.0001。在每次参数更新的过程中来平均模型的权重。

采用本发明实施例的技术手段,通过对合成语音进一步进行平滑处理,能够有效提高合成语音的自然度和流畅度。考虑到tacotron模型强大的学习能力,通过对tacotron模型进行简化,将其任务从文本转语音削减至只应用于平滑语音拼接合成所带来的的断层。如此,tacotron模型的强大学习能力得以充分利用,能够进一步提升合成语音的自然度和流畅度,同时弥补了端对端模型难以调参和优化的缺陷。

参见图7,是本发明实施例六中的一种多语种的语音合成装置的结构示意图。本发明实施例六提供的一种多语种的语音合成装置60,包括:语种识别模块61、韵律结构划分模块62、目标单元获取模块63和语音合成模块64,其中,

所述语种识别模块61,用于获取待处理文本;对所述待处理文本中的每一字符进行语种识别,并存入对应的预设的字符库中;其中,所述待处理文本中包含至少两种语种;所述预设的字符库包括特殊字符库和至少两个语种对应的语种字符库;在所述语种字符库中存储的所述字符以句子为单位形成对应的字符串;

所述韵律结构划分模块62,用于采用预先训练完成的韵律结构预测模型,对所述语种字符库中的每一字符串进行韵律结构划分;

所述目标单元获取模块63,用于根据每一所述字符串及其对应的韵律结构,在预设的语音拼接单元库中获取对应的目标语音拼接单元;

所述语音合成模块64,用于按识别顺序确定相邻的目标语音拼接单元,计算相邻的目标语音拼接单元之间的最佳拼接点;并根据所述最佳拼接点对相邻的目标拼接单元进行拼接,以得到合成语音。

需要说明的是,本发明实施例提供的一种多语种的语音合成装置用于执行上述实施例一至五的一种多语种的语音合成方法的所有流程步骤,两者的工作原理和有益效果一一对应,因而不再赘述。

参见图8,是本发明实施例七中的一种多语种的语音合成系统的结构示意图。本发明实施例七提供了一种多语种的语音合成系统70,包括处理器71、存储器72以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如实施例一至五任一实施例所述的多语种的语音合成方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜