首页 / 专利库 / 人工智能 / 声学模型 / 语音合成方法、装置、系统和存储介质

语音合成方法、装置、系统和存储介质

阅读:767发布:2020-05-13

专利汇可以提供语音合成方法、装置、系统和存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供了一种语音合成方法、装置、系统和存储介质,所述方法包括:将待合成文本转换为包含多个音子元素的输入序列;将所述输入序列输入基于注意 力 机制的序列到序列神经网络模型,以获取所述输入序列 和声 学特征序列之间相关度矩阵,并输出包含语音 帧 集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。上述技术方案不仅获得了自然流畅的语音,而且提供了音子元素发音时长的信息,有效提高了用户体验。,下面是语音合成方法、装置、系统和存储介质专利的具体信息内容。

1.一种语音合成方法,其特征在于,包括:
将待合成文本转换为包含多个音子元素的输入序列;
将所述输入序列输入基于注意机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;
基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;
根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
2.根据权利要求1所述的语音合成方法,其特征在于,所述基于注意力机制的序列到序列神经网络模型包括编码器解码器
所述将所述输入序列输入基于注意力机制的序列到序列神经网络模型以获取所述输入序列和所述声学特征序列之间相关度矩阵包括:
将所述输入序列输入所述编码器进行编码,以获取与所述多个音子元素分别对应的多个编码器隐含状态;
确定解码器隐含状态;
基于所述多个编码器隐含状态和解码器隐含状态确定所述相关度矩阵。
3.根据权利要求2所述的语音合成方法,其特征在于,
所述确定解码器隐含状态包括:
对所述解码器初始化,以确定所述解码器的初始隐含状态;
基于所述多个编码器隐含状态和解码器前一隐含状态确定所述相关度矩阵中的当前相关度向量;
基于所述多个编码器隐含状态和所述当前相关度向量确定当前加权特征;
基于所述解码器前一隐含状态和所述当前加权特征确定所述解码器当前隐含状态;所述基于所述多个编码器隐含状态和解码器隐含状态确定所述相关度矩阵包括:
根据所有相关度向量确定所述相关度矩阵。
4.根据权利要求3所述的语音合成方法,其特征在于,所述基于所述多个编码器隐含状态和所述解码器前一隐含状态确定所述相关度矩阵中的当前相关度向量包括:
计算每个编码器隐含状态相对于所述解码器前一隐含状态的概率;
对所述概率归一化处理,以得到归一化概率;
基于所有归一化概率确定所述当前相关度向量。
5.根据权利要求1所述的语音合成方法,其特征在于,在所述根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长之后,所述方法还包括:
基于每个音子元素在所述声学特征序列中的发音时长,确定所述每个音子元素在所述声学特征序列中的发音时间段。
6.一种视频播放方法,其特征在于,包括:
利用权利要求5所述的语音合成方法合成视频中虚拟主播的语音,并确定每个音子元素在所述语音的声学特征序列中的发音时间段;
由所述虚拟主播发出所述语音,并根据所述每个音子元素在所述语音的声学特征序列中的发音时间段确定所述虚拟主播发出所述语音时的播音口型。
7.一种文本播放方法,其特征在于,包括:
利用权利要求5所述的语音合成方法合成所述文本的语音并确定每个音子元素在所述语音的声学特征序列中的发音时间段;
利用所述语音播放所述文本,同时显示所述文本,其中,根据所述每个音子元素在所述语音的声学特征序列中的发音时间段控制所述文本中对应文字的显示状态,以突出所述语音的当前播放位置
8.一种语音合成装置,其特征在于,包括:
输入序列模,用于将待合成文本转换为包含多个音子元素的输入序列;
输出序列模块,用于将所述输入序列输入基于注意力机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音帧集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;
单位时长确定模块,用于基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;
总时长确定模块,用于根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
9.一种语音合成系统,包括:处理器和存储器,其中,所述存储器中存储有计算机程序指令,其特征在于,所述计算机程序指令被所述处理器运行时用于执行如权利要求1至5任一项所述的语音合成方法。
10.一种存储介质,在所述存储介质上存储了程序指令,其特征在于,所述程序指令在运行时用于执行如权利要求1至5任一项所述的语音合成方法。

说明书全文

语音合成方法、装置、系统和存储介质

技术领域

[0001] 本发明涉及数据处理领域,更具体地涉及一种语音合成方法、装置、系统和存储介质。

背景技术

[0002] 语音合成技术,通过将文本转换成语音来让机器发声,是实现人机交互的重要环节。将文本转化为语音,一般是先将文本处理成对应的输入序列,再利用不同的语音合成模型将输入序列转化为对应的语音。随着语音合成技术的迅速发展,语音中每个音子的发音时长也受到了越来越广泛的重视。例如在虚拟主播、卡通动画等应用中,根据每个音子的发音时长信息可以模仿发音的正确口型,使得虚拟人物的表现更逼真。
[0003] 现有的语音合成技术中,有的语音合成质量较差,所合成的语音较生硬,用户体验较差;有的虽然所合成的语音更流畅自然,但无法提供音子时长信息,给用户带来不便。

发明内容

[0004] 考虑到上述问题而提出了本发明。
[0005] 根据本发明一个方面,提供了一种语音合成方法,包括:
[0006] 将待合成文本转换为包含多个音子元素的输入序列;
[0007] 将所述输入序列输入基于注意机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵,并输出包含语音集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;
[0008] 基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;
[0009] 根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
[0010] 示例性地,所述基于注意力机制的序列到序列神经网络模型包括编码器解码器,所述将所述输入序列输入基于注意力机制的序列到序列神经网络模型以获取所述输入序列和所述声学特征序列之间相关度矩阵包括:
[0011] 将所述输入序列输入所述编码器进行编码,以获取与所述多个音子元素分别对应的多个编码器隐含状态;
[0012] 确定解码器隐含状态;
[0013] 基于所述多个编码器隐含状态和解码器隐含状态确定所述相关度矩阵。
[0014] 示例性地,所述确定解码器隐含状态包括:
[0015] 对所述解码器初始化,以确定所述解码器的初始隐含状态;
[0016] 基于所述多个编码器隐含状态和解码器前一隐含状态确定所述相关度矩阵中的当前相关度向量;
[0017] 基于所述多个编码器隐含状态和所述相关度矩阵中的当前相关度向量确定当前加权特征;
[0018] 基于所述解码器前一隐含状态和所述当前加权特征确定所述解码器当前隐含状态;
[0019] 所述基于所述多个编码器隐含状态和解码器隐含状态确定所述相关度矩阵包括:
[0020] 根据所有相关度向量确定所述相关度矩阵。
[0021] 示例性地,所述基于所述多个编码器隐含状态和所述解码器前一隐含状态确定所述相关度矩阵中的当前相关度向量包括:
[0022] 计算每个编码器隐含状态相对于所述解码器前一隐含状态的概率;
[0023] 对所述概率归一化处理,以得到归一化概率;
[0024] 基于所有归一化概率确定所述当前相关度向量。
[0025] 示例性地,所述计算每个编码器隐含状态相对于所述解码器前一隐含状态的概率包括:
[0026] 计算每个编码器隐含状态与所述解码器前一隐含状态的点积值;
[0027] 将所述点积值作为所述概率。
[0028] 示例性地,所述基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长包括:
[0029] 获取所述每个语音帧集的单位时长;
[0030] 将所述单位时长与所述权重值的相乘,以将乘积作为每个音子元素在每个语音帧集中所占的发音时长。
[0031] 示例性地,所述根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长包括:
[0032] 根据标识符将每个音子元素在所有语音帧集中所占的发音时长相加,以获得每个音子元素在所述声学特征序列中所占的发音总时长,其中所述标识符用于标识音子元素在所述输入序列中的位置
[0033] 示例性地,在所述根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长之后,所述方法还包括:
[0034] 基于每个音子元素在所述声学特征序列中的发音时长,确定所述每个音子元素在所述声学特征序列中的发音时间段。
[0035] 示例性地,所述声学特征序列为梅尔谱参数序列、基频参数序列、bark谱参数序列中的任一种或几种的组合。
[0036] 根据本发明再一个方面,提供了一种视频播放方法,包括:
[0037] 利用上述的语音合成方法合成视频中虚拟主播的语音并确定每个音子元素在所述语音的声学特征序列中的发音时间段;
[0038] 由所述虚拟主播发出所述语音,并根据所述每个音子元素在所述语音的声学特征序列中的发音时间段确定所述虚拟主播发出所述语音时的播音口型。
[0039] 根据本发明另一个方面,提供一种文本的播放方法,包括:
[0040] 利用上述的语音合成方法合成所述文本的语音并确定每个音子元素在所述语音的声学特征序列中的发音时间段;
[0041] 利用所述语音播放所述文本,同时显示所述文本,其中,根据所述每个音子元素在所述语音的声学特征序列中的发音时间段控制所述文本中对应文字的显示状态,以突出所述语音的当前播放位置。
[0042] 根据本发明第四方面,提供了一种语音合成装置,包括:
[0043] 输入序列模,用于将待合成文本转换为包含多个音子元素的输入序列;
[0044] 输出序列模块,用于将所述输入序列输入基于注意力机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵,并输出包含语音帧集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;
[0045] 单位时长确定模块,用于基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;
[0046] 总时长确定模块,用于根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
[0047] 根据本发明第五方面,提供了一种语音合成系统,包括:处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述的语音合成方法。
[0048] 根据本发明第六方面,提供了一种存储介质,在所述存储介质上存储了程序指令,所述程序指令在运行时用于执行如上述的语音合成方法。
[0049] 根据本发明实施例的技术方案,利用基于注意力机制的序列到序列神经网络模型获取的相关度矩阵,为输入序列中的音子元素分配在输出的声学特征序列中的发音时长。由此,该技术方案不仅获得了自然流畅的语音,而且提供了音子元素发音时长的信息,有效提高了用户体验。
[0050] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明
[0051] 通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
[0052] 图1示出了根据本发明一个实施例的语音合成方法的示意性流程图
[0053] 图2A示出了根据本发明一个实施例的相关度矩阵的组成示意图;
[0054] 图2B示出了根据本发明一个实施例的基于相关度矩阵计算音子时长的示意图;
[0055] 图3示出了根据本发明一个实施例根据该基于注意力机制的序列到序列神经网络模型获取相关度矩阵的示意性流程图;
[0056] 图4示出了根据本发明一个实施例确定解码器隐含状态的示意性流程图;
[0057] 图5示出了根据本发明一个实施例的语音合成的示意图;
[0058] 图6示出了根据本发明一个实施例的确定相关度向量的示意性流程图;
[0059] 图7示出了根据本发明一个实施例的视频播放方法的示意性流程图;
[0060] 图8示出了根据本发明一个实施例的文本播放方法的示意性流程图;
[0061] 图9示出了根据本发明一个实施例的语音合成装置的示意性框图;以及[0062] 图10示出了根据本发明一个实施例的语音合成系统的示意性框图。

具体实施方式

[0063] 为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
[0064] 目前较常用的语音合成方法包括参数方法、拼接方法、序列到序列方法等。其中参数方法、拼接方法需要带音子边界信息的语料训练,可以较容易地获得语音对应的音子时长信息,这两种方式在工业界已经大规模稳定服务很多年。但是这两种方法所生成语音较生硬,用户体验差。基于注意力机制的序列到序列语音合成模型所合成的语音相对两种传统方法音质明显要更流畅自然,但是目前不能够给出音子时长信息。
[0065] 本发明的语音合成方案是利用基于注意力机制的序列到序列(Seq2Seq)神经网络模型实现的。所谓注意力机制是指从众多信息中选择出对当前目标任务更关键的信息。所谓序列到序列神经网络模型能够通过循环神经网络的作用将一个序列转换为另一个序列。基于注意力机制的序列到序列神经网络模型,不仅能够将一个输入序列转化为对应的输出序列,而且还可以确定对于输出序列中的任一输出元素,输入序列中的哪些输入元素是更关键的,即输入元素与输出元素之间的相关度。
[0066] 图1示出了根据本发明一个实施例的语音合成方法100的示意性流程图。如图1所示,语音合成方法100包括以下步骤。
[0067] S110:将待合成文本转换为包含多个音子元素的输入序列。
[0068] 待合成文本是需要进行语音合成的文本。在一个示例中,以待合成文本“你好”为例,可以将其转换为带调音子输入序列[n,i3,h,ao3]。对于输入序列中的每一个元素,可以称为音子元素。在该示例中,“n”、“i3”、“h”和“ao3”分别为输入序列中的音子元素。
[0069] S120:将所述输入序列输入基于注意力机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音帧集的声学特征序列。其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值。
[0070] 本步骤用于通过基于注意力机制的序列到序列神经网络模型生成与待合成文本对应的合成语音。对于上述神经网络模型,其生成的合成语音是通过声学特征序列的形式表示的。通过播放器可以直接将声学特征序列转化为听觉可以感知到的语音。该声学特征序列可以为梅尔谱参数序列、基频参数序列、bark谱参数序列中的任一种或几种的组合。声学特征序列中可以包括一个或多个语音帧集。
[0071] 在一个示例中,声学特征序列为包含语音帧集的梅尔谱参数序列。对于基于注意力机制的序列到序列神经网络模型来说,每当要生成梅尔谱参数序列中的一个语音帧集时,计算输入序列中的所有音子元素与当前语音帧集之间的相关度向量。其中,相关度向量中的每一个元素表示对应音子元素与当前语音帧集中所占的权重值。所有的相关度向量构成输入序列和声学特征序列之间的相关度矩阵。
[0072] 图2A示出了根据本发明一个实施例的相关度矩阵的组成示意图。如图2A所示的表格,表格中的第一行表示声学特征序列,包括6个语音帧集;表格中的第一列表示输入序列,包括4个音子元素。表格中大于0小于1的数值表示对应音子元素在对应语音帧集中所占的权重值,数值为空的位置代表对应权重值为0。例如第二行第六列的数值0.7表示音子元素“ao3”在第五个语音帧集中所占的权重值为0.7,第五行第二列的数值0.7表示音子元素“n”在第一个语音帧集中所占的权重为0.7。
[0073] S130:基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长。
[0074] 如前所示,权重值反映了输入序列中的音子元素在声学特征序列中的语音帧集中的比例关系。例如,在图2A所示示例中,在第一个语音帧集中,“n”这个音子元素占比0.7,而“i3”这个音子元素占比0.3。
[0075] 在语音帧集实际发音时,音子音素在每个语音帧集中所占时长和该权重值具有很强的相关性。在本申请的实施例中,基于权重值为每个音子元素分配在每个语音帧集中的发音时长。
[0076] 在图2A所示示例中,输入序列为包含4个音子元素的序列[n,i3,h,ao3],输出序列为包含6个语音帧集的梅尔谱参数序列[y1,y2,y3,y4,y5,y6]。其中,每个语音帧集包含一个或多个语音帧,每个语音帧具有特定的发音时长。也就是说,每个语音帧集的发音时长t0是可以确定的。在此基础上,若已知音子元素“n”在语音帧集“y1”中所占的权重值为a1,则该音子元素“n”在语音帧集“y1”中所占的发音时长为t1=a1×t0。
[0077] S140:根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
[0078] 在图2A所示的示例中,声学特征序列包含6个语音帧集。分别计算音子元素“n”在每个语音帧集中所占的发音时长t1、t2、t3、t4、t5和t6,则音子元素“n”在声学特征序列[y1,y2,y3,y4,y5,y6]中所占的发音总时长为:t(n)=t1+t2+t3+t4+t5+t6。
[0079] 图2B示出了根据本发明一个实施例基于相关度矩阵计算音子时长的示意图。如图2B所示,已知每个语音帧集的发音时长为100ms,音子元素“n”在第一个语音帧集中所占的权重为0.7(见图2A),则音子元素“n”在第一个语音帧集中的发音时长为100×0.7=70ms。
根据图2B,音子元素“n”在第二个语音帧集中的发音时长为60ms,音子元素“n”在第三个语音帧集中的发音时长为10ms,在其余语音帧集中的发音时长为空(代表0),因此音子元素“n”在整个声学特征序列中所占的发音总时长为70+60+10=140ms。
[0080] 上述技术方案中,利用基于注意力机制的序列到序列神经网络模型进行语音合成,并根据上所生成的相关度矩阵为输入序列中的音子元素分配在输出的声学特征序列中的发音时长。不仅获得了自然流畅的语音,而且提供了音子元素发音时长的信息,有效提高用户体验。
[0081] 在一个示例中,基于注意力机制的序列到序列神经网络模型包括编码器(Encode)和解码器(Decode)。
[0082] 编码器可以利用具有特定参数的神经网络实现。对于其不同的输入元素,编码器会产生不同的隐含输出,该隐含输出称为编码器隐含状态。
[0083] 解码器也可以利用具有特定参数的神经网络实现。解码器与编码器相连接。解码器的输入元素包括编码器的所有输出元素。对于解码器的不同的输入元素,解码器也会产生不同的隐含输出,该隐含输出称为解码器隐含状态。
[0084] 如前所述,在步骤120中,将所述输入序列输入基于注意力机制的序列到序列神经网络模型以获取所述输入序列和所述声学特征序列之间相关度矩阵。在本发明一个实施例中该基于注意力机制的序列到序列神经网络模型包括上述编码器和解码器。图3示出了根据本发明一个实施例根据该基于注意力机制的序列到序列神经网络模型获取相关度矩阵的示意性流程图。如图3所示,获取相关度矩阵包含以下步骤:
[0085] S310:将所述输入序列输入所述编码器进行编码,以获取与所述多个音子元素分别对应的多个编码器隐含状态。在该实施例中,利用编码器对输入序列中的多个音子元素进行编码。进而可以获取与音子元素分别对应的多个编码器隐含状态。
[0086] S320:确定解码器隐含状态。解码器隐含状态可以包括预设的初始隐含状态。如前所述,还可以将编码器的输出元素作为解码器的输入元素,以获得解码器隐含状态。
[0087] S330:基于所述多个编码器隐含状态和解码器隐含状态确定所述相关度矩阵。编码器隐含状态和解码器隐含状态包含了音子元素和语音帧集的信息。由此,可以准确地确定相关度矩阵,进而准确地确定音子元素时长。
[0088] 图4示出了根据本发明一个实施例的上述步骤S320确定解码器隐含状态的示意性流程图。如图4所示,步骤S320确定解码器隐含状态包括以下步骤:
[0089] S321:对所述解码器初始化,以确定所述解码器的初始隐含状态。可以将预设的初始化参数输入解码器,以得到解码器的初始隐含状态。
[0090] S322:基于所述多个编码器隐含状态和解码器前一隐含状态确定所述相关度矩阵中的当前相关度向量。
[0091] S323:基于编码器的多个编码器隐含状态和相关度矩阵中的当前相关度向量确定当前加权特征。
[0092] S324:基于所述解码器前一隐含状态和所述当前加权特征确定所述解码器当前隐含状态。
[0093] 下面参考图5详细描述上述确定解码器隐含状态的过程。
[0094] 图5示出了根据本发明一个实施例的语音合成的示意图。如图5所示,对于基于注意力机制的序列到序列神经网络模型来说,x1、x2、x3、x4分别为输入序列中的输入元素,y1、y2、y3、y4、y5、y6分别为输出序列中的输出元素。在一个示例中,x1、x2、x3、x4分别为音子元素,y1、y2、y3、y4、y5、y6分别为声学特征序列中的梅尔谱帧集。其中,每个语音帧集包含特定个数的语音帧,例如每个语音帧集包含5个语音帧。每个语音帧具有特定时长。因此,每个语音帧集也相应地具有特定时长,例如100ms。
[0095] 图5所示的基于注意力机制的序列到序列神经网络模型包括编码器和解码器。图5中分别用h1、h2、h3、h4来表示编码器对于音子元素x1、x2、x3、x4分别产生的编码器隐含状态。在一个示例中,编码器隐含状态h1、h2、h3和h4分别与音子元素x1,x2,x3,x4呈线性关系。
[0096] 在基于注意力机制的序列到序列神经网络模型中的数据处理是有时序性的。模型最终输出的声学特征序列中的梅尔谱帧集为时序序列,输出序列中不同的输出元素分别是在不同时刻生成的。其中,解码器的解码器隐含状态也是有时序性的。在图5的实施例中,解码器隐含状态表示为H0、H1、H2、H3、H4、H5和H6。其中H0表示解码器初始隐含状态。H0可以预设为元素都是0的向量。H1、H2、H3、H4、H5和H6表示解码器后续隐含状态,其分别对应不同的语音帧集。
[0097] 在将输入序列输入到编码器进行编码并获得编码器隐含状态h1、h2、h3和h4后,可以基于这些编码器隐含状态和解码器前一隐含状态确定相关度矩阵中的当前相关度向量。编码器隐含状态和解码器前一隐含状态之间的关系决定了二者之间的相关度,由此可以确定当前相关度向量[a1,a2,a3,a4]。
[0098] 可以根据编码器隐含状态h1、h2、h3和h4和相关度矩阵中的当前相关度向量[a1,a2,a3,a4]确定当前加权特征。该当前加权特征可以是基于当前相关度向量[a1,a2,a3,a4]对编码器隐含状态h1、h2、h3和h4的加权求和。如图5所示,a1、a2、a3和a4分别为h1、h2、h3和h4对应的权重值。对于不同时刻的加权特征,相关度向量的具体取值是不同的。
[0099] 解码器隐含状态H1、H2、H3、H4、H5和H6中的每一个都分别对应一个加权特征。可以基于解码器前一隐含状态和当前加权特征确定解码器当前隐含状态。
[0100] 在图5所示实施例中,首先对解码器初始化,以确定解码器的初始隐含状态H0。
[0101] 根据编码器隐含状态h1、h2、h3和h4和解码器初始隐含状态H0确定相关度矩阵中的第一相关度向量。基于编码器隐含状态h1、h2、h3和h4和第一相关度向量确定第一加权特征C1。由解码器初始隐含状态H0和第一加权特征C1共同确定解码器第一隐含状态H1。
[0102] 根据编码器隐含状态h1、h2、h3和h4和解码器第一隐含状态H1确定相关度矩阵中的第二相关度向量。基于编码器隐含状态h1、h2、h3和h4和第二相关度向量确定第二加权特征C2。由解码器第一隐含状态H1和第二加权特征C2共同确定解码器二隐含状态H2。
[0103] 以此类推,根据编码器隐含状态h1、h2、h3和h4和解码器第(i-1)隐含状态H(i-1)确定相关度矩阵中的第i相关度向量。基于编码器隐含状态h1、h2、h3和h4和第i相关度向量确定第i加权特征Ci。由解码器第(i-1)隐含状态H(i-1)和第i加权特征Ci共同确定解码器第i隐含状态Hi。
[0104] 在上述步骤S323确定了解码器隐含状态后,执行步骤S330确定相关度矩阵。如上所述,基于多个编码器隐含状态和解码器前一隐含状态可以确定相关度矩阵中的当前相关度向量。由所有相关度向量构成相关度矩阵。
[0105] 上述方案中确定的相关度矩阵,准确地反应了输出声学特征序列和输入序列之间的相关性。进而,保证了该方案能够获得更准确的音子元素的时长。
[0106] 图6示出了根据本发明一个实施例步骤S322确定相关度向量的示意性流程图。如图6所示,步骤S322确定当前相关度向量具体包括以下步骤:
[0107] S331:计算每个编码器隐含状态相对于解码器前一隐含状态的概率。
[0108] 假设当前相关度向量为第i个相关度向量Ai,i为自然数。在图5的示例中,计算编码器隐含状态h1、h2、h3和h4中的每一个相对于解码器前一隐含状态H(i-1)的概率。
[0109] 在一个示例中,计算每个编码器隐含状态与解码器前一隐含状态的点积值,以将所述点积值作为所述概率。即分别计算h1·H(i-1)、h2·H(i-1)、h3·H(i-1)和h4·H(i-1)。
[0110] S332:对所述概率归一化处理,以得到归一化概率。
[0111] 在一个示例中,利用softmax函数对上述概率进行归一化处理,分别得到softmax(h1·H(i-1))、softmax(h2·H(i-1))、softmax(h3·H(i-1))和softmax(h4·H(i-1))。
[0112] S333:基于所有归一化概率确定所述当前相关度向量。
[0113] 在上述示例中,在得到每个归一化概率的基础上,[softmax(h1·H(i-1)),softmax(h2·H(i-1)),softmax(h3·H(i-1)),softmax(h4·H(i-1))]即为当前相关度向量。
[0114] 在上述确定每个当前相关度向量的基础上,可以获得更准确的相关度矩阵。其中相关度向量代表了每个输入的音子元素在输出的语音帧集中所占的权重值。根据权重值为每个输入元素分配时长,使每个输入元素的发音时长与其在输出元素中所占的比例相对应,可以准确预测声学特征序列中的音子时长。
[0115] 在一个示例中,根据每个音子元素在所述输入序列中的位置,为所述每个音子元素分别添加唯一的标识符。可以理解,每个音子元素在输入序列中的位置是唯一确定的,根据位置信息来为每个音子元素添加标识符,因此该标识符也是唯一确定的。在这种情况下,根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长的步骤包括:根据所述标识符将每个音子元素在所有语音帧集中所占的发音时长相加,以获得每个音子元素在所述声学特征序列中所占的发音总时长。例如,图2B中所示的音子元素“n”,其在第一个语音帧集中所占的发音时长为70ms,在第二个语音帧集中所占的发音时长为60ms,在第三个语音帧集中所占的发音时长为10ms。由此,该音子元素“n”在声学特征序列中所占的发音总时长为140ms。
[0116] 每个音子元素具有唯一的位置标识符,根据位置标识符将对应音子元素在所有语音帧集中所占的发音时长相加,可以避免将出现在输入序列不同位置的同一个音子元素的发音时长错误叠加的情况,从而保证音子时长的准确性。
[0117] 在一个示例中,可以基于每个音子元素在所述声学特征序列中的发音时长,确定所述每个音子元素在所述声学特征序列中的发音时间段。可以理解,输入序列中的音子元素是确定的,当每个音子元素的发音时长进一步确定时,可以准确获得每个音子元素在声学特征序列中的发音时间段。每个音子元素的发音时间段的起始时刻为在该音子元素之前的其余音子元素的时长之和对应的时刻;每个音子元素的发音时间段的结束时刻为在该音子元素之前的其余音子元素的时长之和再加上该音子元素的发音时长后对应的时刻。例如,对于图2B中的音子元素“h”,其开始时刻为第一个语音帧集的结束时刻后音子元素“n”和“i3”发音完毕的时刻,结束时刻为开始时刻后又经历了10ms的时刻,即第二个语音帧集结束的时刻。换言之,音子元素“h”的发音时段为自第190(100+60+30)ms起,至第200ms结束。
[0118] 基于音子的发音时长确定因子的发音时间段,有利于根据在不同时间段发音的音子元素调整具体应用对象,使语音合成的应用范围更加广泛。
[0119] 根据本发明的另一方面,还提供了一种视频播放方法。该视频涉及虚拟主播,例如动画形象等。图7示出了根据本发明一个实施例的视频播放方法的示意性流程图。如图7所示,视频播放方法包括:
[0120] S710:利用上文中的语音合成方法合成视频中虚拟主播的语音,并确定每个音子元素在所述语音的声学特征序列中的发音时间段。
[0121] 虚拟主播是数字技术处理出来的仿真人物形象,能够在视听媒体中代替真实人物形象与观众互动。虚拟主播发出的语音是根据预先准备好的文本,通过语音合成方法合成的。可以理解,音子元素是语音所对应的文本所转换获得的。该文本可以转换为包含多个音子元素的输入序列。将输入序列输入基于注意力机制的序列到序列神经网络模型,可以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音帧集的声学特征序列。基于该声学特征序列即可获得虚拟主播的语音。所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值。可以基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长。根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。基于每个音子元素在所述声学特征序列中的发音时长,确定所述每个音子元素在所述声学特征序列中的发音时间段。
[0122] S720:由所述虚拟主播发出所述语音,并根据所述每个音子元素在所述语音的声学特征序列中的发音时间段确定所述虚拟主播发出所述语音时的播音口型。在视频中,播放该虚拟主播并且该虚拟主播发出所述语音时,根据步骤S710确定的音子元素在语音的声学特征序列中的发音时段,确定虚拟主播的播音口型。换言之,该播音口型与音子元素的发音时段呈对应关系。
[0123] 通过上述视频播放方法,可以使视频中的虚拟主播形象更加生动真实,提高视频播放质量,为观众提供更好的视听体验。
[0124] 根据本发明的第三方面,还提供一种文本播放方法。图8示出了根据本发明一个实施例的文本播放方法的示意性流程图。如图8所示,文本播放方法包括:
[0125] S810:利用上文中的语音合成方法合成所述文本的语音并确定每个音子元素在所述语音的声学特征序列中的发音时间段。可以理解,所述文本可以转换为包括多个音子元素的输入序列。将输入序列输入基于注意力机制的序列到序列神经网络模型,可以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音帧集的声学特征序列。基于该声学特征序列即可获得所合成的语音。所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值。可以基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长。根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。基于每个音子元素在所述声学特征序列中的发音时长,确定所述每个音子元素在所述声学特征序列中的发音时间段。
[0126] S820:利用所述语音播放所述文本,同时显示所述文本,其中,根据所述每个音子元素在所述语音的声学特征序列中的发音时间段控制所述文本中对应文字的显示状态,以突出所述语音的当前播放位置。
[0127] 在文本播放过程中,可以边用语音播放该文本,边显示该文本。在显示文本时,根据每个音子元素在语音的声学特征序列中的发音时间段控制文本中对应文字的显示状态,以突出语音的当前播放位置。例如,将当前正在发出其语音的文字高亮显示。
[0128] 通过上述文本播放方法,能够将文本中对应文字的显示状态与语音播放进度相对应,使用户明了当前语音播放内容在文字中的位置,便于显示文本播放进度,提升用户的阅读收听体验。
[0129] 根据本发明第四方面,还提供了一种语音合成装置。图9示出了根据本发明一个实施例的语音合成装置的示意性框图。
[0130] 如图9所示,装置900包括输入序列模块910、输出序列模块920、单位时长确定模块930和总时长确定模块940。
[0131] 所述各个模块可分别执行上文中所述的语音合成方法的各个步骤/功能。以下仅对该装置900的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。
[0132] 输入序列模块910,用于将待合成文本转换为包含多个音子元素的输入序列;
[0133] 输出序列模块920,用于将所述输入序列输入基于注意力机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音帧集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;
[0134] 单位时长确定模块930,用于基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;
[0135] 总时长确定模块940,用于根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
[0136] 根据本发明第五方面,还提供了一种语音合成系统,包括:处理器和存储器,其中,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器运行时用于执行上述的语音合成方法。
[0137] 图10示出了根据本发明一个实施例的用于语音合成系统1000的示意性框图。如图10所示,系统1000包括输入装置1010、存储装置1020、处理器1030以及输出装置1040。
[0138] 所述输入装置1010用于接收用户所输入的操作指令以及采集数据。输入装置1010可以包括键盘鼠标、麦克触摸屏图像采集装置等中的一个或多个。
[0139] 所述存储装置1020存储用于实现根据本发明实施例的语音合成方法中的相应步骤的计算机程序指令。
[0140] 所述处理器1030用于运行所述存储装置1020中存储的计算机程序指令,以执行根据本发明实施例的语音合成方法的相应步骤,并且用于实现根据本发明实施例的语音合成装置中的输入序列模块910、输出序列模块920、单位时长确定模块930和总时长确定模块940。
[0141] 所述输出装置1040用于向外部(例如用户)输出各种信息(例如图像和/或声音),并且可以包括显示器、扬声器等中的一个或多个。
[0142] 在一个实施例中,在所述计算机程序指令被所述处理器1030运行时使所述系统1000执行以下步骤:
[0143] 将待合成文本转换为包含多个音子元素的输入序列;
[0144] 将所述输入序列输入基于注意力机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音帧集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;
[0145] 基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;
[0146] 根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
[0147] 此外,根据本发明第六方面,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时使得所述计算机或处理器执行本发明实施例的上述语音合成方法的相应步骤,并且用于实现根据本发明实施例的上述语音合成装置中的相应模块或上述用于语音合成系统中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
[0148] 在一个实施例中,所述计算机程序指令被计算机或处理器运行时,使得所述计算机或处理器执行以下步骤:
[0149] 将待合成文本转换为包含多个音子元素的输入序列;
[0150] 将所述输入序列输入基于注意力机制的序列到序列神经网络模型,以获取所述输入序列和声学特征序列之间相关度矩阵并输出包含语音帧集的声学特征序列,其中,所述相关度矩阵中的每个元素表示对应音子元素在对应语音帧集中所占的权重值;
[0151] 基于所述权重值确定每个音子元素在每个语音帧集中所占的发音时长;
[0152] 根据每个音子元素在每个语音帧集中所占的发音时长确定每个音子元素在所述声学特征序列中所占的发音总时长。
[0153] 本领域普通技术人员通过阅读上述关于语音合成方法的描述,能够理解上述语音合成装置、语音合成系统和存储介质的具体实现和技术效果。为了简洁,在此不再赘述。
[0154] 尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
[0155] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0156] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
[0157] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0158] 类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0159] 本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0160] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0161] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于语音合成装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0162] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0163] 以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈