语音合成方法、装置及计算机可读存储介质转让专利

申请号 : CN202110640245.0

文献号 : CN113096637B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐灿叶旭文

申请人 : 北京世纪好未来教育科技有限公司

摘要 :

本公开实施例提供一种语音合成方法、装置及计算机可读存储介质,语音合成方法包括:响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;基于所述至少两个子文本生成至少两个合成子任务,其中,每个合成子任务用于指示将对应的子文本进行语音合成得到对应的音频数据,一个合成子任务对应一个子文本;基于目标文本的请求时间以及子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;基于处理优先级执行合成子任务,得到合成子任务对应的音频数据。本公开实施例用于语音合成。

权利要求 :

1.一种语音合成方法,其特征在于,包括:响应于接收到的目标文本,将所述目标文本进行切分处理,得到所述目标文本对应的至少两个子文本;

基于所述至少两个子文本生成至少两个合成子任务,其中,每个所述合成子任务用于指示将对应的所述子文本进行语音合成得到对应的音频数据,一个所述合成子任务对应一个所述子文本;

基于所述目标文本的请求时间以及所述子文本在所述目标文本中的顺序,确定所述至少两个合成子任务中每个合成子任务的处理优先级;

基于所述处理优先级执行所述合成子任务,得到所述合成子任务对应的音频数据;

其中,所述目标文本的数量为至少两个,所述基于所述目标文本的请求时间以及所述子文本在所述目标文本中的顺序,确定所述至少两个合成子任务中每个合成子任务的处理优先级,包括:

根据所述合成子任务所属的目标文本的请求时间以及所述子文本在所述目标文本中的顺序,得到所述至少两个合成子任务中每个合成子任务的交付时间,每个所述合成子任务的交付时间用于指示完成所述合成子任务的时间;

基于交付时间确定所述至少两个合成子任务的处理优先级。

2.根据权利要求1所述的方法,其特征在于,所述根据所述合成子任务所属的目标文本的请求时间以及所述子文本在所述目标文本中的顺序,得到所述至少两个合成子任务中每个合成子任务的交付时间,包括:对于每个所述合成子任务,根据所述子文本在所述目标文本中的顺序确定所述合成子任务对应的子文本的偏移时间,所述偏移时间用于指示所述合成子任务开始执行的时间相对于所述合成子任务所属的目标文本的请求时间的偏移量;

根据所述合成子任务所属的目标文本的请求时间,所述合成子任务对应的子文本的偏移时间,以及语音合成的处理速度确定所述合成子任务的交付时间。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述合成子任务完成并得到所述合成子任务的音频数据时,基于所述合成子任务的交付时间输出所述音频数据。

4.根据权利要求1所述的方法,其特征在于,所述切分处理包括分词,并且其中,所述将所述目标文本进行切分处理,得到所述目标文本对应的至少两个子文本,包括:

将所述目标文本进行分词得到m个词组,m为大于0的整数;

基于所述m个词组确定所述目标文本对应的至少两个子文本。

5.根据权利要求4所述的方法,其特征在于,所述切分处理还包括重组,并且其中,所述基于所述m个词组确定所述目标文本对应的至少两个子文本,包括:基于语音合成的处理速度,将所述m个词组进行重组得到n个子文本,n为大于0的整数,且n≤m。

6.根据权利要求1所述的方法,其特征在于,所述基于所述至少两个子文本生成至少两个合成子任务,包括:

响应于确定缓存数据库中包含所述子文本对应的音频数据,从所述缓存数据库中获取所述音频数据;以及,

响应于确定所述缓存数据库中不包含所述子文本对应的音频数据,则对所述子文本生成合成子任务;得到所述至少两个合成子任务。

7.根据权利要求6所述的方法,其特征在于,所述基于所述处理优先级执行所述合成子任务,得到所述合成子任务对应的音频数据之后,所述方法还包括:在所述缓存数据库中存储所述合成子任务对应的音频数据。

8.根据权利要求1所述的方法,其特征在于,所述基于所述处理优先级执行所述合成子任务,得到所述合成子任务对应的音频数据之后,所述方法还包括:在所述目标文本的至少两个合成子任务中,至少一个合成子任务完成得到至少一个音频数据后,将所述目标文本的至少一个音频数据进行音频拼接得到合成音频,并输出所述合成音频。

9.根据权利要求1‑8任一项所述的方法,其特征在于,所述基于所述处理优先级执行所述合成子任务,得到所述合成子任务对应的音频数据,包括:基于所述处理优先级,将至少两个所述合成子任务分别下发至至少两个计算节点,以使得所述至少两个计算节点并行执行所述合成子任务,并接收所述计算节点发送的所述音频数据。

10.一种语音合成装置,其特征在于,包括:切分模块,配置为响应于接收到的目标文本,将所述目标文本进行切分处理,得到所述目标文本对应的至少两个子文本;

任务模块,配置为基于所述至少两个子文本并生成至少两个合成子任务,其中,每个所述合成子任务用于指示将对应的所述子文本进行语音合成得到对应的音频数据,一个所述合成子任务对应一个所述子文本;

优先级模块,配置为基于所述目标文本的请求时间以及所述子文本在所述目标文本中的顺序,确定所述至少两个合成子任务中每个合成子任务的处理优先级;

语音合成模块,配置为基于所述处理优先级执行所述合成子任务,得到所述合成子任务对应的音频数据;

其中,所述目标文本的数量为至少两个,优先级模块,具体配置为根据合成子任务所属的目标文本的请求时间以及子文本在目标文本中的顺序,得到至少两个合成子任务中每个合成子任务的交付时间,每个合成子任务的交付时间用于指示完成合成子任务的时间;基于交付时间确定至少两个合成子任务的处理优先级。

11.一种电子设备,其特征在于,包括:至少一个处理器;以及,

存储器,

其中,所述存储器存储有至少一个程序,所述至少一个程序在被所述至少一个处理器执行时,使得所述至少一个处理器实现如权利要求1‑9中任一项所述的语音合成方法。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,致使处理器实现如权利要求1‑9中任一项所述的语音合成方法。

说明书 :

语音合成方法、装置及计算机可读存储介质

技术领域

[0001] 本公开实施例涉及计算机技术领域,尤其涉及一种语音合成方法、装置及计算机可读存储介质。

背景技术

[0002] 语音合成技术可以将文字数据转换为音频数据进行播放,在许多技术有着广泛应用,例如,在线教育行业,翻译行业等。通常,可以利用语音合成模型对文字数据进行语音合
成得到音频数据,但语音合成模型在速度上往往不能满足实时性要求。

发明内容

[0003] 有鉴于此,本公开实施例提供一种语音合成方法、装置及计算机可读存储介质,用以改善因为合成模型的处理速度,导致语音合成实时性差的缺陷。
[0004] 第一方面,本公开实施例提供了一种语音合成方法,其包括:响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;基于至少两个子文
本生成至少两个合成子任务,其中,每个合成子任务用于指示将对应的子文本进行语音合
成得到对应的音频数据,一个合成子任务对应一个子文本;基于目标文本的请求时间以及
子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;
基于处理优先级执行合成子任务,得到合成子任务对应的音频数据。
[0005] 第二方面,本公开实施例提供了一种语音合成装置,其包括:切分模块,配置为响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;
任务模块,配置为基于至少两个子文本并生成至少两个合成子任务,其中,每个合成子任务
用于指示将对应的子文本进行语音合成得到对应的音频数据,一个合成子任务对应一个子
文本;优先级模块,配置为基于目标文本的请求时间以及子文本在目标文本中的顺序,确定
至少两个合成子任务中每个合成子任务的处理处理优先级;语音合成模块,配置为基于按
照确定的处理处理优先级执行合成子任务,得到合成子任务对应的音频数据。
[0006] 第三方面,本公开实施例提供了一种电子设备,其包括:至少一个处理器和存储器。存储器存储有至少一个程序,至少一个程序在被至少一个处理器执行时,使得至少一个
处理器实现根据本公开实施例的方法。
[0007] 第四方面,本申请公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序在被处理器执行时,使所述处理器实现根据本公
开如第一方面或第一方面的任意一些实施例所描述的语音合成方法。
[0008] 本公开实施例提供的语音合成方法、装置及计算机可读存储介质,响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;基于所 述
至少两个子文本生成至少两个合成子任务,其中,每个合成子任务 用于指示将对应的子文
本进行语音合成得到对应的音频数据,一个合成子任务对应一个子文本;基于目标文本的
请求时间以及子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的
处理优先级;基于处理优先级执行合成子任务,得到合成子任务对应的音频数据。因为将目
标文本切分为至少两个子文本,并生成至少两个合成子任务,使得一个目标文本可以按照
合成子任务多次交付,只要完成一个合成子任务,就可以输出一段对应的音频数据,提高了
语音合成的实时性。

附图说明

[0009] 后文将参照附图以示例性而非限制性的方式详细描述本公开实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理
解,这些附图未必是按比值绘制的。附图中:
[0010] 图1为根据本公开实施例的一种语音合成方法的流程图;
[0011] 图2为根据本公开实施例的一种切分效果示意图;
[0012] 图3为根据本公开实施例的一种处理优先级示意图;
[0013] 图4为根据本公开实施例的一种并行处理的效果示意图;
[0014] 图5为根据本公开实施例的一种语音合成方法的架构图;
[0015] 图6为根据本公开实施例的一种语音合成装置的结构图;
[0016] 图7为根据本公开实施例的一种电子设备的结构图。

具体实施方式

[0017] 下面结合本公开实施例附图进一步说明本公开实施例具体实现。实施例
[0018] 图1为根据本公开实施例的一种语音合成方法的流程图。该语音合成方法包括以下步骤:
[0019] 101、响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本。
[0020] 在本公开中,文本包含文字信息,或者文本用于记录文字信息,目标文本是等待进行语音合成的文本,目标文本的数量可以是一个或多个。语音合成指的是将根据文本生成
该文本对应的音频数据,或者说将文本转换为音频。
[0021] 需要说明的是,目标文本的数量可以是至少一个,对每个目标文本都可以进行切分处理。目标文本可以是通过语音合成请求获得的,可选地,在一种示例中,接收至少一个
语音合成请求,一个语音合成请求对应至少一个目标文本,语音合成请求用于指示将对应
的目标文本转换为音频数据输出。此处只是示例性说明。
[0022] 可选地,在本公开的一些实施例中,切分处理包括分词,并且其中,将目标文本进行切分处理,得到目标文本对应的至少两个子文本,包括:将目标文本进行分词得到m个词
组,m为大于0的整数;基于m个词组确定目标文本对应的至少两个子文本。进一步可选地,在
本公开的另一些实施例中,切分处理还包括重组,并且其中,基于m个词组确定目标文本对
应的至少两个子文本,包括:基于语音合成的处理速度,将m个词组进行重组得到n个子文
本,n为大于0的整数,且n≤m。需要说明的是,一个词组可以是最小的语音合成单位,一个词
组可以包含一个或多个文字,一个子文本可以包含一个或多个连续的词组。在本公开中,文
本包含的文字可以是汉语文字、英语文字、日语文字等各种语言文字。示例性地,如图2所
示,图2根据为本公开实施例的一种切分效果示意图,图2示出了一个目标文本21,该目标文
本21包含文字“中华人民共和国是一个伟大的国家”,对该目标文本进行分词后,得到6个词
组22,分别为:“中华人民共和国”、“是”、“一个”、“伟大”、“的”、“国家”,这些词组是最小的
语音合成单元,不可再分割,然后将“中华人民共和国”作为一个子文本23,将“是”和“一个”
组成一个子文本23,将“伟大”、“的”、“国家”组成一个子文本23,得到3个子文本。此处只是
示例性说明。
[0023] 102、基于至少两个子文本生成至少两个合成子任务。
[0024] 其中,每个合成子任务用于指示将对应的子文本进行语音合成得到对应的音频数据,一个合成子任务对应一个子文本。需要说明的是,如果目标文本有多个,可以对每个目
标文本进行切分处理得到至少一个子文本,所有目标文本切分处理得到的子文本的集合即
为目标文本对应的至少两个子文本。
[0025] 可选地,在本公开的一些实施例中,可以是每一个子文本都生成一个合成子任务,也可以是部分子文本生成合成子任务,基于所述至少两个子文本生成至少两个合成子任
务,包括:响应于确定缓存数据库中包含子文本对应的音频数据,从缓存数据库中获取音频
数据;以及响应于确定缓存数据库中不包含子文本对应的音频数据,则对子文本生成合成
子任务;得到至少两个合成子任务。如果缓存数据库中包含子文本对应的音频数据,则可以
直接从缓存数据库中获取该音频数据,不需要对该子文本生成合成子任务,减少运算量和
资源占用,对于缓存数据库没有包含对应的音频数据的子文本,生成合成子任务,对每一个
子文本都进行判断,得到至少两个合成子任务。
[0026] 103、基于目标文本的请求时间以及子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级。
[0027] 结合步骤101的示例,目标文本的请求时间可以是获取目标文本对应的语音合成请求的时间,每个目标文本的请求时间可以是相同或者不同的,在一种可选的实现方式中,
请求时间越早,优先级越高。
[0028] 此处,列举一具体实施例说明如何确定至少两个合成子任务的处理优先级。可选地,在本公开的一些实施例中,目标文本的数量为至少两个,基于目标文本的请求时间以及
子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级,
包括:
[0029] 根据合成子任务所属的目标文本的请求时间以及子文本在目标文本中的顺序,得到至少两个合成子任务中每个合成子任务的交付时间,每个合成子任务的交付时间用于指
示完成合成子任务的时间;基于交付时间确定至少两个合成子任务的处理优先级。
[0030] 按照交付时间对合成子任务确定处理优先级,可以使得应该早交付的合成子任务优先处理,提高语音合成的实时性。
[0031] 基于上述实施例,进一步地,列举一个具体的实现方式说明如何确定交付时间,可选地,根据合成子任务所属的目标文本的请求时间以及子文本在目标文本中的顺序,得到
至少两个合成子任务中每个合成子任务的交付时间,包括:
[0032] 对于每个合成子任务,根据子文本在目标文本中的顺序确定合成子任务对应的子文本的偏移时间,偏移时间用于指示合成子任务开始执行的时间相对于合成子任务所属的
目标文本的请求时间的偏移量;根据合成子任务所属的目标文本的请求时间,合成子任务
对应的子文本的偏移时间,以及语音合成的处理速度确定至少两个合成子任务的交付时
间。需要说明的是,合成子任务对应的子文本的偏移时间可以是该子文本所属的目标文本
中,该子文本之前的所有子文本的处理时间之和。
[0033] 示例性地,可以将合成子任务对应的子文本的数据量除以处理速度计算出处理时间,将处理时间、合成子任务所属的目标文本的请求时间以及合成子任务对应的子文本的
偏移时间相加之和,作为合成子任务的交付时间,此处只是示例性说明。示例性地,如图3所
示,图3为根据本公开实施例的一种处理优先级示意图。图3示出了三个目标文本的语音合
成请求,分别为语音合成请求A,语音合成请求B,语音合成请求C,图3中,将语音合成请求A
标记为31,将语音合成请求B标记为32,将语音合成请求C标记位33,其中,每个请求的语音
合成任务都被分割为3个合成子任务,其中,合成子任务A1的交付时间最早,处理优先级最
高,合成子任务A2的处理时间较长,处理优先级低于交付时间更早的合成子任务B1,合成子
任务A2、B2、C1的交付时间相同,A2、B2、C1的处理优先级可以相同,因此,所有的合成子任务
中,按照处理优先级最高的为A1,其次为B1,再次为A2、B2、C1,再次为A3、B3,再次为C2,处理
优先级最低的为C3。
[0034] 104、基于处理优先级执行合成子任务,得到合成子任务对应的音频数据。
[0035] 可选地,结合步骤103中的具体实施例,按照交付时间确定处理优先级,在本公开的一些实施例中,该方法还包括:在合成子任务完成并得到合成子任务的音频数据时,基于
合成子任务的交付时间输出音频数据。需要说明的是,输出音频数据可以是将音频数据发
送给请求方,也可以是直接播放音频数据。因为在该实施例中,处理优先级是基于交付时间
确定的,因此,可以按照交付时间输出音频数据,使得每个合成子任务都按照交付时间交付
并输出音频数据,提高了语音合成的实时性。结合图3对应的说明,一个合成子任务可以生
成一个音频数据,在A1交付后,A1的音频数据即可输出,在A1的音频数据输出的过程中,执
行了合成子任务B1、A2等,然后可以输出B1的音频数据和A2的音频数据,不需要等到A对应
的目标文本全部进行语音合成得到一个合成音频后再进行输出,提高了语音合成的实时
性。
[0036] 可选地,在本公开的另一些实施例中,将各个子文本对应的音频数据进行拼接得到合成音频后再输出,基于处理优先级执行合成子任务,得到合成子任务对应的音频数据
之后,该方法还包括:在目标文本的至少两个合成子任务中,至少一个合成子任务完成得到
至少一个音频数据后,将目标文本的至少一个音频数据进行音频拼接得到合成音频,并输
出合成音频。需要说明的是,此处目标文本的至少一个音频数据指的是,一个目标文本包含
的所有子文本对应的音频数据或者部分子文本对应的音频数据,在另一些实施例中,也可
以将多个目标文本的至少两个音频数据进行拼接得到合成音频,并输出合成音频。结合步
骤102中的实施例,目标文本对应的至少一个音频数据,可以是一部分音频数据从缓存数据
库直接获得,一部分音频数据通过执行合成子任务进行语音合成得到;或者,目标文本对应
的至少一个音频数据全部从缓存数据库获得;或者,目标文本对应的至少一个音频数据全
部通过执行合成子任务进行语音合成得到。示例性地,对音频数据的格式进行说明,如下表
所示,音频数据可以包含资源互换文件格式(Resources Interchange File Format,RIFF)
部分,编排文本文件(fmt)部分,以及数据(data)部分。
[0037]
[0038] 其中,RIFF部分包含RIFF的ID(标识),Size(大小),Type(类型),RIFF的ID用于表示当前部分是RIFF,RIFF的Size表示不包括ID和Size的总字节数,RIFF的Type表示音频数
据的格式,例如,音频格式可以是无损的wav格式;
[0039] fmt部分可以包含ID、Size、音频格式(Audio Format)、通道数(Num Channels)、采样率(Sample Rate)、每秒字节数(Byte Rate)、采样字节数(Block Align)、采样宽度(Bits 
Per Sample)。其中,fmt的ID表示当前部分是fmt,fmt的Size表示不包括ID和Size的字节
数;
[0040] data部分可以包含ID、Size和数据,data的ID表示当前部分是data部分,data的Size表示不包括ID和Size的字节数,数据即为音频内容。
[0041] 在拼接过程中,取第一个音频数据的头部(0‑44字节),以及其余音频数据的data部分(44‑其他字节),然后重新计算RIFF部分的Size和data部分的Size,就完成了音频数据
的拼接。此处只是示例性说明。
[0042] 还需要说明的是,在执行合成子任务的时候,可以利用多个计算节点对多个合成子任务进行并行处理,以提高处理效率,此处,列举一个具体示例分别进行说明:
[0043] 可选地,在第一个示例中,基于处理优先级执行合成子任务,得到合成子任务对应的音频数据,包括:基于处理优先级,将至少两个合成子任务分别下发至至少两个计算节
点,以使得至少两个计算节点并行执行合成子任务,并接收计算节点发送的音频数据。示例
性地,如图4所示,图4为根据本公开实施例的一种并行处理的效果示意图,按照处理优先
级,将合成子任务41分配到3个计算节点并行处理,提高了语音合成的效率,也进一步提高
了语音合成的实时性。
[0044] 结合上述步骤101‑104描述的语音合成方法,如图5所示,图5为根据本公开实施例的一种语音合成方法的架构图。图5示出了调用端501、转发服务端502和语音合成端503。
[0045] 需要说明的是,调用端501、转发服务端502和语音合成端503可以集成在一个设备上,也可以是独立的多个设备,本申请对该架构具体的硬件实现形式此不做限制。
[0046] 其中,调用端501可以和终端设备进行数据交互,可以接收终端设备发送的语音合成请求和目标文本,调用端501可以根据语音合成请求将目标文本传输至转发服务端502。
[0047] 转发服务端502可以对目标文本进行分词得到至少两个词组,然后将至少两个词组进行重组得到至少两个子文本,在缓存(即缓存数据库)中查找子文本对应的音频数据,
如果已经存在音频数据,则不需要进行语音合成,直接从缓存中获取音频数据放入音频池;
对于缓存中没有查找到对应的音频数据的子文本,生成合成子任务,得到至少两个合成子
任务,将至少两个合成子任务加入到任务池中。任务池可以包含多个目标文本的合成子任
务,将多个目标文本的合成子任务一起进行处理优先级。然后按照处理优先级,将至少两个
合成子任务下发到语音合成端503。
[0048] 一种实现方式中,语音合成端503利用多个计算节点,并行处理合成子任务,将合成子任务得到的音频数据传输至转发服务端502的音频池,转发服务端502根据合成子任务
将音频数据进行拼接得到子文本对应的音频数据,按照各个合成子任务的交付时间向调用
端501传输对应的音频数据,调用端501将音频数据实时传输至终端设备,以便终端设备播
放音频数据,终端设备可以实时播放音频数据,或者等待一个目标文本的所有音频数据传
输完毕后,对目标文本的至少一个音频数据进行拼接得到合成音频后,播放合成音频。另一
种实现方式中,语音合成端503也等待获取到一个目标文本的所有子文本的音频数据后,对
目标文本的至少一个音频数据进行拼接得到合成音频,调用端501将合成音频传输至终端
设备。
[0049] 本公开实施例的语音合成方法,响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;基于所 述至少两个子文本生成至少两个合成
子任务,其中,每个合成子任务 用于指示将对应的子文本进行语音合成得到对应的音频数
据,一个合成子任务对应一个子文本;基于目标文本的请求时间以及子文本在目标文本中
的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;基于处理优先级执行
合成子任务,得到合成子任务对应的音频数据。因为将目标文本切分为至少两个子文本,并
生成至少两个合成子任务,使得一个目标文本可以按照合成子任务多次交付,只要完成一
个合成子任务,就可以输出一段对应的音频数据,提高了语音合成的实时性。
[0050] 本公开实施例提供了一种语音合成装置,用于执行上述实施例所描述的语音合成方法,如图6所示,该语音合成装置60包括:
[0051] 切分模块601,配置为响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;
[0052] 任务模块602,配置为基于至少两个子文本并生成至少两个合成子任务,其中,每个合成子任务 用于指示将对应的子文本进行语音合成得到对应的音频数据,一个合成子
任务对应一个子文本;
[0053] 优先级模块603,配置为基于目标文本的请求时间以及子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;
[0054] 语音合成模块604,配置为基于处理优先级执行合成子任务,得到合成子任务对应的音频数据。
[0055] 可选地,在本公开的一些实施例中,目标文本的数量为至少两个,优先级模块603,配置为根据合成子任务所属的目标文本的请求时间以及子文本在目标文本中的顺序,得到
至少两个合成子任务中每个合成子任务的交付时间,每个合成子任务的交付时间用于指示
完成合成子任务的时间;基于交付时间确定至少两个合成子任务的处理优先级。
[0056] 可选地,在本公开的一些实施例中,优先级模块603,配置为对于每个合成子任务,根据子文本在目标文本中的顺序确定合成子任务对应的子文本的偏移时间,偏移时间用于
指示合成子任务开始执行的时间相对于合成子任务所属的目标文本的请求时间的偏移量;
根据合成子任务所属的目标文本的请求时间,合成子任务对应的子文本的偏移时间,以及
语音合成的处理速度确定合成子任务的交付时间。
[0057] 可选地,在本公开的一些实施例中,语音合成模块604,还配置为在合成子任务完成并得到合成子任务的音频数据时,基于合成子任务的交付时间输出音频数据。
[0058] 可选地,在本公开的一些实施例中,切分处理包括分词,任务模块602,配置为将目标文本进行分词得到m个词组,m为大于0的整数;基于m个词组确定目标文本对应的至少两
个子文本。
[0059] 可选地,在本公开的一些实施例中,切分处理还包括重组,任务模块602,配置为基于语音合成的处理速度,将m个词组进行重组得到n个子文本,n为大于0的整数,且n≤m。
[0060] 可选地,在本公开的一些实施例中,任务模块602,配置为响应于确定缓存数据库中包含子文本对应的音频数据,从缓存数据库中获取音频数据;以及响应于确定缓存数据
库中不包含子文本对应的音频数据,则对子文本生成合成子任务;得到至少两个合成子任
务。
[0061] 可选地,在本公开的一些实施例中,语音合成模块604,还配置为在缓存数据库中存储合成子任务对应的音频数据。
[0062] 可选地,在本公开的一些实施例中,语音合成模块604,配置为在目标文本的至少两个合成子任务中,至少一个合成子任务完成得到至少一个音频数据后,将目标文本的至
少一个音频数据进行音频拼接得到合成音频,并输出合成音频。
[0063] 可选地,在本公开的一些实施例中,语音合成模块604,配置为基于处理优先级,将至少两个合成子任务分别下发至至少两个计算节点,以使得至少两个计算节点并行执行合
成子任务,并接收计算节点发送的音频数据。
[0064] 本公开实施例的语音合成装置,响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;基于所 述至少两个子文本生成至少两个合成
子任务,其中,每个合成子任务 用于指示将对应的子文本进行语音合成得到对应的音频数
据,一个合成子任务对应一个子文本;基于目标文本的请求时间以及子文本在目标文本中
的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;基于处理优先级执行
合成子任务,得到合成子任务对应的音频数据。因为将目标文本切分为至少两个子文本,并
生成至少两个合成子任务,使得一个目标文本可以按照合成子任务多次交付,只要完成一
个合成子任务,就可以输出一段对应的音频数据,提高了语音合成的实时性。
[0065] 基于上述实施例所描述的语音合成方法,本公开实施例提供了一种电子设备,用于执行上述实施例所描述的语音合成方法,如图7所示,该电子设备70包括:至少一个处理
器(processor)702、存储器(memory)704、总线706及通信接口(Communications 
Interface)708。
[0066] 其中:
[0067] 处理器702、通信接口708、以及存储器704通过通信总线706完成相互间的通信。
[0068] 通信接口708,用于与其它设备进行通信。
[0069] 处理器702,用于执行程序710,具体可以执行上述实施例所描述的方法中的相关步骤。
[0070] 具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
[0071] 处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本公开实施例的一个或多个集成电
路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可
以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0072] 存储器704,用于存放程序710。存储器704可能包含高速RAM存储器,也可能还包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。
[0073] 本公开实施例的电子设备,响应于接收到的目标文本,将目标文本进行切分处理,得到目标文本对应的至少两个子文本;基于所 述至少两个子文本生成至少两个合成子任
务,其中,每个合成子任务 用于指示将对应的子文本进行语音合成得到对应的音频数据,
一个合成子任务对应一个子文本;基于目标文本的请求时间以及子文本在目标文本中的顺
序,确定至少两个合成子任务中每个合成子任务的处理优先级;基于处理优先级执行合成
子任务,得到合成子任务对应的音频数据。因为将目标文本切分为至少两个子文本,并生成
至少两个合成子任务,使得一个目标文本可以按照合成子任务多次交付,只要完成一个合
成子任务,就可以输出一段对应的音频数据,提高了语音合成的实时性。
[0074] 基于上述实施例所描述的语音合成方法,本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序在被处理器执行时,使得
处理器实现如本公开实施例所描述的语音合成方法。
[0075] 本公开实施例的语音合成装置以多种形式存在,包括但不限于:
[0076] (1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低
端手机等。
[0077] (2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
[0078] (3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0079] (4) 其他具有数据交互功能的电子设备。
[0080] 至此,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然
可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺
序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
[0081] 上述实施例阐明的装置、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算
机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、
电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0082] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0083] 本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0084] 本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0085] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0086] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0087] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0088] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的
示例。
[0089] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动
态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除
可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算
机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0090] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
[0091] 本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的
形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存
储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形
式。
[0092] 本公开可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组
件、数据结构等等。也可以在分布式计算环境中实践本公开,在这些分布式计算环境中,由
通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以
位于包括存储设备在内的本地和远程计算机存储介质中。
[0093] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
[0094] 以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同
替换、改进等,均应包含在本公开的权利要求范围之内。