1.本发明涉及人工智能技术领域,尤其涉及一种基于人工智能的语音合成的方法、装置、电子设备及计算机可读存储介质。
背景技术:2.语音合成在近二十年以及近几年中都发展迅猛,尤其是结合深度学习以及机器学习的方法,使得合成的语音质量接近真人的发声,在合成语音的自然度上也均有大幅度的提升,例如相关的语音合成系统wavenet,已被广泛应用于各种不同的语言合成过程中,例如英语、中文、日语等等。
3.目前,基于神经网络的端到端的文本到语音合成(text
‑
to
‑
speech,tts)技术发展迅速,与传统语音合成中的拼接法(concatenativesynthesis)和参数法(statistical parametric synthesis)相比,端到端的文本到语音合成技术生成的语音数据通常具有更好的声音自然度,该技术的基本思想是采用基于注意力机制的编解码框架,直接从输入的字符序列或者音素序列上预测对应的声学特征序列,在学术界和工业界都获得了较为广泛的运用。
4.但是,现有的语音合成方式在对不同的语言进行合成处理时,需要按照对应语言的发音规则进行文字到因素序列的转化,当需要处理的语言种类较多时,会涉及到相关语言的知识依赖,导致合成工作量大、通用性低,整体合成精度差等问题。
技术实现要素:5.本发明提供一种基于人工智能的语音合成方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高基于人工智能的语音合成的效率及准确度。
6.为实现上述目的,本发明提供的一种基于人工智能的语音合成方法,所述方法包括:
7.获取预设语言的语言文本数据,并基于所述语言文本数据确定训练数据;
8.将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示;
9.将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素;其中,与所述目标因素对应的语言种类与所述语言文本数据对应的语言种类不同;
10.基于所述目标因素迭代训练所述神经网络模型,直至所述神经网络模型的损失收敛在预设范围内,形成文本处理模型;
11.基于所述文本处理模型获取与待处理文本数据对应的目标语言的声学特征;
12.基于所述声学特征以及外设声码器,获取所述待处理文本数据的目标语音的合成语音。
13.此外,可选的技术方案是,所述获取预设语言的语言文本数据,并基于所述语言文
本数据确定训练数据,包括:
14.基于预设多音字识别模型获取所述语言文本数据中的各文字的预测读音;
15.基于预设韵律停顿准则,对所述语言文本数据进行停顿标记处理,以获取带有停顿标记的文本数据;
16.对所述文本数据以及所述预测读音进行预处理,获取与所述语言文本数据相对应的字符串信息,作为所述训练数据。
17.此外,可选的技术方案是,所述将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示,包括:
18.将所述训练数据输入所述编码器模块,获取与所述训练数据相对应的编码信息以及位置信息;
19.基于所述编码器模块的多头自注意力层获取所述编码信息及位置信息的中间向量;
20.基于所述编码器模块的llayernorm层对所述中间向量、所述编码信息以及所述位置信息进行正则化处理,得到所述特征表示。
21.此外,可选的技术方案是,所述获取与所述训练数据相对应的编码信息以及位置信息,包括:
22.根据预设分割字母对所述字符串进行编码拆分,得到对应的单元组作为获取所述字符串的编码信息;
23.按照所述字符串的顺序,对各单元组内的字符进行位置编码,确定与所述各单元组对应的位置信息。
24.此外,可选的技术方案是,所述将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素,包括:
25.通过所述解码器模块中的掩蔽注意力层对所述解码器模块的历史输出进行掩蔽注意力处理,获取对应的掩蔽变量;
26.基于所述解码器模块中的layernorm层对所述掩蔽变量以及所述上一步迭代的输出进行标准化处理,获取对应的标准变量;
27.基于所述解码器模块中的多头自注意力层对所述标准变量以及所述特征表示进行自注意力机制处理,获取对应的中间变量;
28.基于所述中间变量输出与所述特征表示对应的目标因素。
29.此外,可选的技术方案是,所述神经网络模型的损失包括所述目标因素与所述训练数据的真实音频频谱之间的损失函数;其中,
30.所述损失函数包括平均绝对误差函数、均方误差函数或交叉熵损失函数;
31.所述平均绝对误差函数的表达公式为:
[0032][0033]
所述均方误差函数的表达公式为:
[0034][0035]
其中,n表示输入训练数据的个数,y
i
表示第i个训练数据的真实音频频谱值,表示第i个训练数据预测的目标因素;
[0036]
所述交叉熵损失函数的表达公式为:
[0037][0038]
其中,y表示输入训练数据的音频频谱的真实值,表示与y对应的预测的目标因素。
[0039]
为了解决上述问题,本发明还提供一种基于人工智能的语音合成装置,所述装置包括:
[0040]
训练数据确定单元,用于获取预设语言的语言文本数据,并基于所述语言文本数据确定训练数据;
[0041]
特征表示获取单元,用于将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示;
[0042]
目标因素获取单元,用于将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素;其中,与所述目标因素对应的语言种类与所述语言文本数据对应的语言种类不同;
[0043]
文本处理模型形成单元,用于基于所述目标因素迭代训练所述神经网络模型,直至所述神经网络模型的损失收敛在预设范围内,形成文本处理模型;
[0044]
声学特征获取单元,用于基于所述文本处理模型获取与所待处理文本数据对应的目标语言的声学特征;
[0045]
音频数据获取单元,用于基于所述声学特征以及外设声码器,获取所述待处理数据的目标语言的合成语音。
[0046]
此外,可选的技术方案是,所述将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示,包括:
[0047]
将所述训练数据输入所述编码器模块,获取与所述训练数据相对应的编码信息以及位置信息;
[0048]
基于所述编码器模块的多头自注意力层获取所述编码信息及位置信息的中间向量;
[0049]
基于所述编码器模块的layernorm层对所述中间向量、所述编码信息以及所述位置信息进行正则化处理,得到所述特征表示。
[0050]
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
[0051]
存储器,存储至少一个指令;及
[0052]
处理器,执行所述存储器中存储的指令以实现上述所述的基于人工智能的语音合成方法。
[0053]
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存
储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的基于人工智能的语音合成方法。
[0054]
本发明实施例基于获取的预设语言的语言文本数据获取训练数据,然后通过训练数据训练神经网络模型,能够在训练过程中获取与训练数据对应的目标因素,通过transformer的神经网络模型,输出目标语言的目标因素,该目标因素对应的语种或语言种类与语言文本数据对应的语言种类不同,然后根据训练完成的文本处理模型获取待处理数据的目标语言的声学特征,并根据声学特征获取对应的合成语音,合成精度高,可实现多语种的合成场景,且当需要处理的语言种类较多时,可减小数据处理的工作量,提高合成速度。
附图说明
[0055]
图1为本发明一实施例提供的基于人工智能的语音合成方法的流程示意图;
[0056]
图2为本发明一实施例的神经网络模型的结构示意图;
[0057]
图3为本发明一实施例提供的基于人工智能的语音合成装置的模块示意图;
[0058]
图4为本发明一实施例提供的实现基于人工智能的语音合成方法的电子设备的内部结构示意图;
[0059]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0060]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0061]
为解决现有语音合成方式在对不同的语言进行合成处理时,需要按照对应语言的发音规则进行文字到因素序列的转化,导致合成工作量大、整体精度差等问题,本发明提供一种基于人工智能的语音合成方法,能够同时应对多种不同语言的转换,并且能够很简单的扩展到新的语言上进行语音合成,其主要针对tts的前端句子层级的输入进行建模,包含文本归一化以及发音的建模,可以达到语言无关的发音学习,达到跨语言的语音合成目的。
[0062]
本发明提供一种基于人工智能的语音合成方法,实现任意语言的语音合成。本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
[0063]
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
[0064]
参照图1所示,为本发明一实施例提供的基于人工智能的语音合成方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件来实现。
[0065]
如图1所示在本实施例中,基于人工智能的语音合成方法包括:
[0066]
s100:获取预设语言的语言文本数据,并基于所述语言文本数据确定训练数据。
[0067]
s200:将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数
据相对应的特征表示;
[0068]
s300:将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素;其中,与所述目标因素对应的语言种类与所述语言文本数据对应的语言种类不同;
[0069]
s400:基于所述目标因素迭代训练所述神经网络模型,直至所述神经网络模型的损失收敛在预设范围内,形成文本处理模型;
[0070]
s500:基于所述文本处理模型获取与待处理文本数据对应的目标语言的声学特征;
[0071]
s600:基于所述声学特征以及外设声码器,获取待处理文本数据的目标语种的合成语音。
[0072]
在上述步骤s100中,所述获取预设语言的语言文本数据,并基于所述语言文本数据确定训练数据,可进一步包括:
[0073]
s110:基于预设多音字识别模型获取所述语言文本数据中的各文字的预测读音。
[0074]
其中,预设的多音字识别模型可以包括多个自注意力层以及全连接层,通过多个自注意力层对语言文本数据进行运算,在经过带有激活函数的全连接层,可输出多音字的预测读音,该读音可以是包含有声调的拼音。此外,而自注意力层的设置个数可以根据实际需求进行设定。
[0075]
在执行上述步骤s110的同时,还可以同时执行以下步骤:
[0076]
步骤s120:基于预设韵律停顿准则,对所述语言文本数据进行停顿标记处理,以获取带有停顿标记的文本数据。
[0077]
其中,所述预设韵律停顿准则,可以是根据语言文本数据中的原有标点符号进行设定的规则,当语言文本数据中不存在标点符号时,该准则也可以通过预训练的韵律停顿模型来完成,例如,韵律停顿模型可包括多个自注意力层以及全连接层等,在处理过程中,可首先利用layernorm层对语言文本数据进行归一化处理,然后依次经过多层的自注意力层、带有relu激活函数的全连接层,最终输出韵律停顿等级序列。例如:该序列可表示为:a、b1、a、b2、a、b3等,其中,a可以表示不停顿,而b1、b2、b3可以表示不同的停顿等级或停顿时长等,可知,此处的字母仅是进行举例示意说明,在进行韵律停顿标记时,也可采用其他的标记符号。
[0078]
s130:对所述文本数据以及所述预测读音进行预处理,获取与所述语言文本数据相对应的字符串信息,作为所述训练数据。
[0079]
其中,上述预处理过程主要是,基于预测读音将各种目标语言的文本数据预处理为字符串的表示形式,例如,当目标语言是中文“你好”时,对应的字符串可以为对应的中文拼音以及音调组合(即预测读音),即ni3hao3。可知,当目标语言不存在读音以及声调情况时,可直接获取语言文本数据对应的字符串信息,无需进行读音预测步骤。例如,当目标语言是英语hello时,对应的字符串可以为英语文本的单词串,即hello。
[0080]
上述步骤s200所述将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示,可进一步包括:
[0081]
s210:将所述训练数据输入所述编码器模块,获取与所述训练数据相对应的编码信息以及位置信息。
[0082]
其中,所述编码信息是对字符串进行完整句子级别的编码,可以保障不同语言之间在长时序上的依赖关系,具体地,获取编码信息以及位置信息的过程可包括:
[0083]
1、根据预设分割字母对所述字符串进行编码拆分,得到对应的单元组作为获取所述字符串的编码信息;
[0084]
2、按照所述字符串的顺序,对各单元组内的字符进行位置编码,确定与所述各单元组对应的位置信息;
[0085]
具体地,对所述字符串进行编码拆分的获取过程可包括:
[0086]
第一种情况,当所述字符串为英文时,基于所述英文单词中的元音(分割字母)对所述字符串进行切分,获取切分后的单元组;其中每个单元组中仅能包括一个元音(a、e、i、o、u)字母;
[0087]
第二中情况,当所述字符串为中文拼音时,基于所述中文拼音中的韵母(分割字母)进行切分,获取切分后的单元组;其中,每个单元组中仅能包括一个韵母。
[0088]
可知,在针对不同的语言进行编码拆分时,可根据对应的语言形的特点可设置对应的分割字母,或设定对应的分割规则,例如,集合长度、停顿等多种参数,设定对应的分割规则,对字符串进行编码拆分,保障不同语言之间在长时序上的依赖关系,实现对不同语种实现多语言的语音合成效果。
[0089]
作为具体示例,在本方案中可首先对整个句子的字符串中的词进行二元组拆分,得到对应的单元组,其中,所述元组表示发音单元中元音的个数,例如,拆分之前的输入字符串为“most watched tv show(scripted):bonanza”,编码后的编码信息可表示为“most wat@@ched tv show(s@@crip@@ted@@):@@bon@@an@@za@@”,这样进行正则化编码后可以解决不在训练覆盖范围内的词语,其中@@指出了基于编码的词句划分位置,实现将二元词组拆分为两个单元词组,对整句的字符串进行拆分后,即可获取对应的编码信息。
[0090]
进而,对编码信息添加位置信息,例如,以编码器模块的第一层输出为hello为例,对应的位置信息为【0,1,2,3,4,】,即输出的每个字母在编码信息中的顺序位置,确保相同字符串在处理过程中的唯一位置信息。其中,位置信息的编码过程可通过位置编码函数等多种方式进行自动编码生成。
[0091]
s220:基于所述编码器模块的多头自注意力层获取所述编码信息及位置信息的中间向量。
[0092]
s230:基于所述编码器模块的layernorm层对所述中间向量、所述编码信息以及所述位置信息进行正则化处理,得到所述特征表示。
[0093]
其中,后续编码器模型的其他中间层输出可以统称为隐变量,例如经过多头自注意力层(multi
‑
head self
‑
attention)之后的输出是对其输入的多个注意力机制的结果的一种特征表示,采用layernorm加上之前的输入进行正则化得到融合注意力机制和原始输入的编码的特征表示,即对输入的处理。
[0094]
作为具体示例,自注意力可表示为:head_i=attention(qi,ki,vi),进而多投自注意力机制可表示为:
[0095]
multi
‑
head(q,k,v)=concat(head_1,..,head_n)*wo,其中qkv分别表示注意力机制中的上述query,key和value矩阵,多头注意力机制同时采用了多组注意力机制的不同权重矩阵即wq以及wk和wv,最终经过attention操作得到每一组的输出,再经过concat多头
的结果,乘以一个权重矩阵wo得到multi
‑
head attention的结果。
[0096]
进一步地,如果多投自注意力层输入的数据为:表示一个输入字符串的特征表示,其中n为输入样本个数(字符串的长度),d表示单个样本的纬度。则query、key和value定义如下:
[0097]
query:q=x
·
w
q
,其中q表示query矩阵,wq表示q的权重,x表示输入数据,dq表示q的维度,r表示实数集;
[0098]
key:k=x
·
w
k
,其中k表示key矩阵,wk表示k的权重,x表示输入数据,dk表示k的维度,r表示实数集;
[0099]
value:v=x
·
w
k
,其中其中,v表示value矩阵,wv表示v的权重矩阵,x表示输入数据,dv表示v的维度,r表示实数集。
[0100]
其中,q、k和v矩阵均可以认为是空间变换矩阵。
[0101]
在本发明的步骤s300中,所述将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素,其中,与所述目标因素对应的语言种类与所述语言文本数据对应的语言种类不同;可进一步包括:
[0102]
s310:通过所述解码器模块中的掩蔽注意力层对所述解码器模块的历史输出进行掩蔽注意力处理,获取对应的掩蔽变量;其中,该历史输出可理解为解码器模块在上一步迭代处理过程中的输出,将其应用至当前处理过程中,实现数据的迭代处理。
[0103]
s320:基于所述解码器模块中的layernorm层对所述掩蔽变量以及所述上一步迭代的输出进行标准化处理,获取对应的标准变量;
[0104]
s330:基于所述解码器模块中的多头自注意力层对所述标准变量以及所述特征表示进行自注意力机制处理,获取对应的中间变量;
[0105]
s340:基于所述中间变量输出与所述特征表示对应的目标因素。
[0106]
在上述过程中,目标因素也可理解为语音频谱,获取的该目标因素即可用于合成对应的合成语音,在上述过程中通过神经网络模型的处理,能够实现文本类型的训练数据到目标因素的转换过程,同时实现了对训练数据的翻译过程,目标因素的种类也对应了合成语音的语种,进而实现跨语种的文本转语音过程。
[0107]
具体地,图2示出了根据本发明实施例的神经网络模型的示意结构。
[0108]
如图2所示,解码器模块的中间变量可依次通过解码器模块中的另一layernorm层、线性层和softmax层映射输出对应的二维声学特征,作为目标因素。其中,模型左侧的输入、第一层输入编码和位置信息(即编码信息和位置信息)、多头自注意力(multi
‑
head self
‑
attention)层和layernorm层可构成编码器模块,右侧的输出编码和位置信息、掩蔽注意力层(masked multi
‑
head self
‑
attention)、layernorm层、多头自注意力层(multi
‑
head self
‑
attention)、layernorm层线性层和softmax层构成解码器模块,编码器模块和解码器模块是分别对应训练数据的输入序列和输出序列的两个循环神经网络,在具体应用过程中,可以在输入字符串序列的开始和最后分别附加特殊字符,表示序列的起始和终止,即当输出预设的特殊字符时,例如,<bos>标志作为启动,直至解码输出<eso>(end of sequence)停止。
[0109]
此外,在步骤s400中基于所述目标因素迭代训练所述神经网络模型,直至所述神
经网络模型的损失收敛在预设范围内,形成文本处理模型。
[0110]
具体地,神经网络模型在迭代过程中的损失可通过输出的目标因素与训练数据的真实音频频谱之间的loss进行确定,该loss可选用平均绝对误差(mae)、均方误差(mse)或交叉熵损失函数等。例如,当该损失连续100次迭代均不低于历史最低损失的情况下,可确认训练结束,文本处理模型达到收敛效果。
[0111]
其中,所述平均绝对误差函数的表达公式为:
[0112][0113]
所述均方误差函数的表达公式为:
[0114][0115]
其中,n表示输入训练数据的个数,y
i
表示第i个训练数据的真实音频频谱值,表示第i个训练数据预测的目标因素;
[0116]
所述交叉熵损失函数的表达公式为:
[0117][0118]
其中,y表示输入训练数据的音频频谱的真实值,表示与y对应的预测的目标因素。
[0119]
然后在步骤s500中,基于所述文本处理模型获取与待处理文本数据对应的目标语言的声学特征;
[0120]
最后,在步骤s600中,基于声学特征以及外设声码器,获取待处理文本数据的目标语音的合成语音。
[0121]
其中,文本处理模型能够根据待处理数据输出对应的目标因素,目标因素对应的语音的语种可以是和待处理文本的语种不同,进而通过声码器对该目标因素进行语音合成处理,获取最终的音频数据,能够降低不同语言进行语音合成时对发音知识的依赖,进而将不同语言转化为相同语言进行因素发音表示,完成文本数据值音频数据的转换。
[0122]
可知,根据本提案的基于人工智能的语音合成方法,由于采用的文本的编码拆分处理,将所有语言的发音单元都分割成了最小的发音单元组,虽然单个的单元组不具备语言上的含义,但是具备语音发音的含义,进而通过预设的编码器模块和解码器模块的处理,构建整个句子级别的长时序依赖关系,进而结合单元组序列,输出目标语言的声学特征,完成翻译以及输出,通过跨语言的整句输入到输出的成对语料,可以达到字符串输入到目标语言音素的翻译转换。
[0123]
如图3所示,是本发明基于人工智能的语音合成装置的功能模块图。
[0124]
本发明所述基于人工智能的语音合成装置200可以安装于电子设备中。根据实现的功能,所述基于人工智能的语音合成装置可以包括训练数据确定单元210、特征表示获取单元220、目标因素获取单元230、文本处理模型形成单元240、声学特征获取单元250以及音
频数据获取单元260。本发所述单元也可以称之为模块,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0125]
在本实施例中,关于各模块/单元的功能如下:
[0126]
训练数据确定单元210,用于获取预设语言的语言文本数据,并基于所述语言文本数据确定训练数据。
[0127]
具体地,所述获取包预设语言的语言文本数据,并基于所述语言文本数据确定训练数据,可进一步包括:
[0128]
预测读音获取单元:基于预设多音字识别模型获取所述语言文本数据中的各文字的预测读音。
[0129]
其中,预设的多音字识别模型可以包括多个自注意力层以及全连接层,通过多个自注意力层对语言文本数据进行运算,在经过带有激活函数的全连接层,可输出多音字的预测读音,该读音可以是包含有声调的拼音。此外,而自注意力层的设置个数可以根据实际需求进行设定。
[0130]
在执行上述预测读音获取单元的同时,还可以同时执行:
[0131]
文本数据获取单元,用于基于预设韵律停顿准则,对所述语言文本数据进行停顿标记处理,以获取带有停顿标记的文本数据。
[0132]
其中,所述预设韵律停顿准则,可以是根据语言文本数据中的原有标点符号进行设定的规则,当语言文本数据中不存在标点符号时,该准则也可以通过预训练的韵律停顿模型来完成,例如,韵律停顿模型可包括多个自注意力层以及全连接层等,在处理过程中,可首先利用layernorm层对语言文本数据进行归一化处理,然后依次经过多层的自注意力层、带有relu激活函数的全连接层,最终输出韵律停顿等级序列。例如:该序列可表示为:a、b1、a、b2、a、b3等,其中,a可以表示不停顿,而b1、b2、b3可以表示不同的停顿等级或停顿时长等,可知,此处的字母仅是进行举例示意说明,在进行韵律停顿标记时,也可采用其他的标记符号。
[0133]
训练数据获取单元,用于对所述文本数据以及所述预测读音进行预处理,获取与所述语言文本数据相对应的字符串信息,作为所述训练数据。
[0134]
其中,上述预处理过程主要是,基于预测读音将各种目标语言的文本数据预处理为字符串的表示形式,例如,当目标语言是中文“你好”时,对应的字符串可以为对应的中文拼音以及音调组合(即预测读音),即ni3hao3。可知,当目标语言不存在读音以及声调情况时,可直接获取语言文本数据对应的字符串信息,无需进行读音预测步骤。例如,当目标语言是英语hello时,对应的字符串可以为英语文本的单词串,即hello。
[0135]
特征表示获取单元220,用于将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示。
[0136]
其中,所述将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示,可进一步包括:
[0137]
编码信息以及位置信息获取子单元,用于将所述训练数据输入所述编码器模块,获取与所述训练数据相对应的编码信息以及位置信息。
[0138]
其中,所述编码信息是对字符串进行完整句子级别的编码,可以保障不同语言之间在长时序上的依赖关系,具体地,获取编码信息以及位置信息的过程可包括:
[0139]
1、根据预设分割字母对所述字符串进行编码拆分,得到对应的单元组作为获取所述字符串的编码信息;
[0140]
2、按照所述字符串的顺序,对各单元组内的字符进行位置编码,确定与所述各单元组对应的位置信息;
[0141]
具体地,对所述字符串进行编码拆分的获取过程可包括:
[0142]
第一种情况,当所述字符串为英文时,基于所述英文单词中的元音(分割字母)对所述字符串进行切分,获取切分后的单元组;其中每个单元组中仅能包括一个元音(a、e、i、o、u)字母;
[0143]
第二中情况,当所述字符串为中文拼音时,基于所述中文拼音中的韵母(分割字母)进行切分,获取切分后的单元组;其中,每个单元组中仅能包括一个韵母。
[0144]
可知,在针对不同的语言进行编码拆分时,可根据对应的语言形的特点可设置对应的分割字母,或设定对应的分割规则,例如,集合长度、停顿等多种参数,设定对应的分割规则,对字符串进行编码拆分,保障不同语言之间在长时序上的依赖关系,实现对不同语种实现多语言的语音合成效果。
[0145]
作为具体示例,在本方案中可首先对整个句子的字符串中的词进行二元组拆分,得到对应的单元组,其中,所述元组表示发音单元中元音的个数,例如,拆分之前的输入字符串为“most watched tv show(scripted):bonanza”,编码后的编码信息可表示为“most wat@@ched tv show(s@@crip@@ted@@):@@bon@@an@@za@@”,这样进行正则化编码后可以解决不在训练覆盖范围内的词语,其中@@指出了基于编码的词句划分位置,实现将二元词组拆分为两个单元词组,对整句的字符串进行拆分后,即可获取对应的编码信息。
[0146]
进而,对编码信息添加位置信息,例如,以编码器模块的第一层输出为hello为例,对应的位置信息为【0,1,2,3,4,】,即输出的每个字母在编码信息中的顺序位置,确保相同字符串在处理过程中的唯一位置信息。其中,位置信息的编码过程可通过位置编码函数等多种方式进行自动编码生成。
[0147]
中间向量获取子单元,用于基于所述编码器模块的多头自注意力层获取所述编码信息及位置信息的中间向量。
[0148]
特征表示获取子单元,用于基于所述编码器模块的layernorm层对所述中间向量、所述编码信息以及所述位置信息进行正则化处理,得到所述特征表示。
[0149]
其中,后续编码器模型的其他中间层输出可以统称为隐变量,例如经过多头自注意力层(multi
‑
head self
‑
attention)之后的输出是对其输入的多个注意力机制的结果的一种特征表示,采用layernorm加上之前的输入进行正则化得到融合注意力机制和原始输入的编码的特征表示,即对输入的处理。
[0150]
作为具体示例,自注意力可表示为:head_i=attention(qi,ki,vi),进而多投自注意力机制可表示为:
[0151]
multi
‑
head(q,k,v)=concat(head_1,..,head_n)*wo,其中qkv分别表示注意力机制中的上述query,key和value矩阵,多头注意力机制同时采用了多组注意力机制的不同权重矩阵即wq以及wk和wv,最终经过attention操作得到每一组的输出,再经过concat多头的结果,乘以一个权重矩阵wo得到multi
‑
head attention的结果。
[0152]
进一步地,如果多投自注意力层输入的数据为:表示一个输入字符串
的特征表示,其中n为输入样本个数(字符串的长度),d表示单个样本的纬度。则query、key和value定义如下:
[0153]
query:q=x
·
w
q
,其中q表示query矩阵,wq表示q的权重,x表示输入数据,dq表示q的维度,r表示实数集;
[0154]
key:k=x
·
w
k
,其中k表示key矩阵,wk表示k的权重,x表示输入数据,dk表示k的维度,r表示实数集;
[0155]
value:v=x
·
w
k
,其中其中,v表示value矩阵,wv表示v的权重矩阵,x表示输入数据,dv表示v的维度,r表示实数集。
[0156]
其中,q、k和v矩阵均可以认为是空间变换矩阵。
[0157]
目标因素获取单元230,用于将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素;其中,与所述目标因素对应的语言种类与所述语言文本数据对应的语言种类不同。
[0158]
所述将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素,可进一步包括:
[0159]
掩蔽变量获取子单元,用于通过解码器模块中的掩蔽注意力层对所述解码器模块的历史输出进行掩蔽注意力处理,获取对应的掩蔽变量;
[0160]
标准变量获取子单元,用于基于所述解码器模块中的layernorm层对所述掩蔽变量以及所述上一步迭代的输出进行标准化处理,获取对应的标准变量;
[0161]
中间变量获取子单元,用于基于解码器模块中的多头自注意力层对所述标准变量以及所述特征表示进行自注意力机制处理,获取对应的中间变量;
[0162]
目标因素输出子单元,用于基于所述中间变量输出与所述特征表示对应的目标因素。
[0163]
在上述过程中,目标因素也可理解为语音频谱,获取的该目标因素即可用于合成对应的合成语音,在上述过程中通过神经网络模型的处理,能够实现文本类型的训练数据到目标因素的转换过程,同时实现了对训练数据的翻译过程,目标因素的种类也对应了合成语音的语种,进而实现跨语种的文本转语音过程。文本处理模型形成单元240,用于基于所述目标因素迭代训练所述神经网络模型,直至神经网络模型的损失收敛在预设范围内,形成文本处理模型。
[0164]
具体地,神经网络模型在迭代过程中的损失可通过输出的目标因素与训练数据的真实音频频谱之间的loss进行确定,该loss可选用平均绝对误差(mae)、均方误差(mse)或交叉熵损失函数等。例如,当该损失连续100次迭代均不低于历史最低损失的情况下,可确认训练结束,文本处理模型达到收敛效果。
[0165]
其中,所述平均绝对误差函数的表达公式为:
[0166][0167]
所述均方误差函数的表达公式为:
[0168][0169]
其中,n表示输入训练数据的个数,y
i
表示第i个训练数据的真实音频频谱值,表示第i个训练数据预测的目标因素;
[0170]
所述交叉熵损失函数的表达公式为:
[0171][0172]
其中,y表示输入训练数据的音频频谱的真实值,表示与y对应的预测的目标因素。
[0173]
声学特征获取单元250,用于基于所述文本处理模型获取与待处理文本数据对应的目标语言的声学特征;
[0174]
音频数据获取单元260,用于基于所述声学特征以及外设声码器,获取所述待处理数据的目标语言的合成语音。
[0175]
其中,文本处理模型能够根据待处理数据输出对应的目标因素,目标因素对应的语音的语种可以是和待处理文本的语种不同,进而通过声码器对该目标因素进行语音合成处理,获取最终的音频数据,能够降低不同语言进行语音合成时对发音知识的依赖,进而将不同语言转化为相同语言进行因素发音表示,完成文本数据值音频数据的转换。
[0176]
如图4所示,是本发明实现基于人工智能的语音合成方法的电子设备的结构示意图。
[0177]
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如基于人工智能的语音合成程序12。
[0178]
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于人工智能的语音合成程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0179]
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如基于人工智能的语音合成程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
[0180]
所述总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
[0181]
图4仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0182]
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi
‑
fi模块等,在此不再赘述。
[0183]
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi
‑
fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
[0184]
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light
‑
emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
[0185]
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
[0186]
所述电子设备1中的所述存储器11存储的基于人工智能的语音合成程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
[0187]
获取预设语言的语言文本数据,并基于所述语言文本数据确定训练数据;
[0188]
将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示;
[0189]
将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素;其中,与所述目标因素对应的语言种类与所述语言文本数据对应的语言种类不同;
[0190]
基于所述目标因素迭代训练所述神经网络模型,直至所述神经网络模型的损失收敛在预设范围内,形成文本处理模型;
[0191]
基于所述文本处理模型获取与待处理文本数据对应的目标语言的声学特征;
[0192]
基于所述声学特征以及外设声码器,获取所述待处理文本数据的目标语言的合成语音。
[0193]
此外,可选的技术方案是,所述获取预设语言的语言文本数据,并基于所述语言文本数据确定训练数据,包括:
[0194]
基于预设多音字识别模型获取所述语言文本数据中的各文字的预测读音;
[0195]
基于预设韵律停顿准则,对所述语言文本数据进行停顿标记处理,以获取带有停顿标记的文本数据;
[0196]
对所述文本数据以及所述预测读音进行预处理,获取与所述语言文本数据相对应的字符串信息,作为所述训练数据。
[0197]
此外,可选的技术方案是,所述将所述训练数据输入预设神经网络模型的编码器模块,获取与所述训练数据相对应的特征表示,包括:
[0198]
将所述训练数据输入所述编码器模块,获取与所述训练数据相对应的编码信息以及位置信息;
[0199]
基于所述编码器模块的多头自注意力层获取所述编码信息及位置信息的中间向量;
[0200]
基于所述编码器模块的layernorm层对所述中间向量、所述编码信息以及所述位置信息进行正则化处理,得到所述特征表示。
[0201]
此外,可选的技术方案是,所述获取与所述训练数据相对应的编码信息以及位置信息,包括:
[0202]
根据预设分割字母对所述字符串进行编码拆分,得到对应的单元组作为获取所述字符串的编码信息;
[0203]
按照所述字符串的顺序,对各单元组内的字符进行位置编码,确定与所述各单元组对应的位置信息。
[0204]
此外,可选的技术方案是,所述将所述特征表示输入所述预设神经网络模型的解码器模块,获取与所述特征表示相对应的目标因素,包括:
[0205]
通过所述解码器模块中的掩蔽注意力层对所述解码器模块的历史输出进行掩蔽注意力处理,获取对应的掩蔽变量;
[0206]
基于所述解码器模块中的layernorm层对所述掩蔽变量以及所述上一步迭代的输出进行标准化处理,获取对应的标准变量;
[0207]
基于所述解码器模块中的多头自注意力层对所述标准变量以及所述特征表示进行自注意力机制处理,获取对应的中间变量;
[0208]
基于所述中间变量输出与所述特征表示对应的目标因素。
[0209]
此外,可选的技术方案是,所述神经网络模型的损失包括所述目标因素与所述训练数据的真实音频频谱之间的损失函数;其中,
[0210]
所述损失函数包括平均绝对误差函数、均方误差函数或交叉熵损失函数;
[0211]
所述平均绝对误差函数的表达公式为:
[0212][0213]
所述均方误差函数的表达公式为:
[0214][0215]
其中,n表示输入训练数据的个数,y
i
表示第i个训练数据的真实音频频谱值,表
示第i个训练数据预测的目标因素;
[0216]
所述交叉熵损失函数的表达公式为:
[0217][0218]
其中,y表示输入训练数据的音频频谱的真实值,表示与y对应的预测的目标因素。
[0219]
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read
‑
only memory)。
[0220]
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0221]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0222]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0223]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
[0224]
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
[0225]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0226]
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。