语音合成方法、装置及计算机可读存储介质转让专利
申请号 : CN202110640245.0
文献号 : CN113096637B
文献日 : 2021-11-02
发明人 : 徐灿 , 叶旭文
申请人 : 北京世纪好未来教育科技有限公司
摘要 :
权利要求 :
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中任一项所述的语音合成方法。
说明书 :
语音合成方法、装置及计算机可读存储介质
技术领域
背景技术
成得到音频数据,但语音合成模型在速度上往往不能满足实时性要求。
发明内容
本生成至少两个合成子任务,其中,每个合成子任务用于指示将对应的子文本进行语音合
成得到对应的音频数据,一个合成子任务对应一个子文本;基于目标文本的请求时间以及
子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;
基于处理优先级执行合成子任务,得到合成子任务对应的音频数据。
任务模块,配置为基于至少两个子文本并生成至少两个合成子任务,其中,每个合成子任务
用于指示将对应的子文本进行语音合成得到对应的音频数据,一个合成子任务对应一个子
文本;优先级模块,配置为基于目标文本的请求时间以及子文本在目标文本中的顺序,确定
至少两个合成子任务中每个合成子任务的处理处理优先级;语音合成模块,配置为基于按
照确定的处理处理优先级执行合成子任务,得到合成子任务对应的音频数据。
处理器实现根据本公开实施例的方法。
开如第一方面或第一方面的任意一些实施例所描述的语音合成方法。
至少两个子文本生成至少两个合成子任务,其中,每个合成子任务 用于指示将对应的子文
本进行语音合成得到对应的音频数据,一个合成子任务对应一个子文本;基于目标文本的
请求时间以及子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的
处理优先级;基于处理优先级执行合成子任务,得到合成子任务对应的音频数据。因为将目
标文本切分为至少两个子文本,并生成至少两个合成子任务,使得一个目标文本可以按照
合成子任务多次交付,只要完成一个合成子任务,就可以输出一段对应的音频数据,提高了
语音合成的实时性。
附图说明
解,这些附图未必是按比值绘制的。附图中:
具体实施方式
该文本对应的音频数据,或者说将文本转换为音频。
语音合成请求,一个语音合成请求对应至少一个目标文本,语音合成请求用于指示将对应
的目标文本转换为音频数据输出。此处只是示例性说明。
组,m为大于0的整数;基于m个词组确定目标文本对应的至少两个子文本。进一步可选地,在
本公开的另一些实施例中,切分处理还包括重组,并且其中,基于m个词组确定目标文本对
应的至少两个子文本,包括:基于语音合成的处理速度,将m个词组进行重组得到n个子文
本,n为大于0的整数,且n≤m。需要说明的是,一个词组可以是最小的语音合成单位,一个词
组可以包含一个或多个文字,一个子文本可以包含一个或多个连续的词组。在本公开中,文
本包含的文字可以是汉语文字、英语文字、日语文字等各种语言文字。示例性地,如图2所
示,图2根据为本公开实施例的一种切分效果示意图,图2示出了一个目标文本21,该目标文
本21包含文字“中华人民共和国是一个伟大的国家”,对该目标文本进行分词后,得到6个词
组22,分别为:“中华人民共和国”、“是”、“一个”、“伟大”、“的”、“国家”,这些词组是最小的
语音合成单元,不可再分割,然后将“中华人民共和国”作为一个子文本23,将“是”和“一个”
组成一个子文本23,将“伟大”、“的”、“国家”组成一个子文本23,得到3个子文本。此处只是
示例性说明。
标文本进行切分处理得到至少一个子文本,所有目标文本切分处理得到的子文本的集合即
为目标文本对应的至少两个子文本。
务,包括:响应于确定缓存数据库中包含子文本对应的音频数据,从缓存数据库中获取音频
数据;以及响应于确定缓存数据库中不包含子文本对应的音频数据,则对子文本生成合成
子任务;得到至少两个合成子任务。如果缓存数据库中包含子文本对应的音频数据,则可以
直接从缓存数据库中获取该音频数据,不需要对该子文本生成合成子任务,减少运算量和
资源占用,对于缓存数据库没有包含对应的音频数据的子文本,生成合成子任务,对每一个
子文本都进行判断,得到至少两个合成子任务。
请求时间越早,优先级越高。
子文本在目标文本中的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级,
包括:
示完成合成子任务的时间;基于交付时间确定至少两个合成子任务的处理优先级。
至少两个合成子任务中每个合成子任务的交付时间,包括:
目标文本的请求时间的偏移量;根据合成子任务所属的目标文本的请求时间,合成子任务
对应的子文本的偏移时间,以及语音合成的处理速度确定至少两个合成子任务的交付时
间。需要说明的是,合成子任务对应的子文本的偏移时间可以是该子文本所属的目标文本
中,该子文本之前的所有子文本的处理时间之和。
偏移时间相加之和,作为合成子任务的交付时间,此处只是示例性说明。示例性地,如图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。
合成子任务的交付时间输出音频数据。需要说明的是,输出音频数据可以是将音频数据发
送给请求方,也可以是直接播放音频数据。因为在该实施例中,处理优先级是基于交付时间
确定的,因此,可以按照交付时间输出音频数据,使得每个合成子任务都按照交付时间交付
并输出音频数据,提高了语音合成的实时性。结合图3对应的说明,一个合成子任务可以生
成一个音频数据,在A1交付后,A1的音频数据即可输出,在A1的音频数据输出的过程中,执
行了合成子任务B1、A2等,然后可以输出B1的音频数据和A2的音频数据,不需要等到A对应
的目标文本全部进行语音合成得到一个合成音频后再进行输出,提高了语音合成的实时
性。
之后,该方法还包括:在目标文本的至少两个合成子任务中,至少一个合成子任务完成得到
至少一个音频数据后,将目标文本的至少一个音频数据进行音频拼接得到合成音频,并输
出合成音频。需要说明的是,此处目标文本的至少一个音频数据指的是,一个目标文本包含
的所有子文本对应的音频数据或者部分子文本对应的音频数据,在另一些实施例中,也可
以将多个目标文本的至少两个音频数据进行拼接得到合成音频,并输出合成音频。结合步
骤102中的实施例,目标文本对应的至少一个音频数据,可以是一部分音频数据从缓存数据
库直接获得,一部分音频数据通过执行合成子任务进行语音合成得到;或者,目标文本对应
的至少一个音频数据全部从缓存数据库获得;或者,目标文本对应的至少一个音频数据全
部通过执行合成子任务进行语音合成得到。示例性地,对音频数据的格式进行说明,如下表
所示,音频数据可以包含资源互换文件格式(Resources Interchange File Format,RIFF)
部分,编排文本文件(fmt)部分,以及数据(data)部分。
据的格式,例如,音频格式可以是无损的wav格式;
Per Sample)。其中,fmt的ID表示当前部分是fmt,fmt的Size表示不包括ID和Size的字节
数;
的拼接。此处只是示例性说明。
点,以使得至少两个计算节点并行执行合成子任务,并接收计算节点发送的音频数据。示例
性地,如图4所示,图4为根据本公开实施例的一种并行处理的效果示意图,按照处理优先
级,将合成子任务41分配到3个计算节点并行处理,提高了语音合成的效率,也进一步提高
了语音合成的实时性。
如果已经存在音频数据,则不需要进行语音合成,直接从缓存中获取音频数据放入音频池;
对于缓存中没有查找到对应的音频数据的子文本,生成合成子任务,得到至少两个合成子
任务,将至少两个合成子任务加入到任务池中。任务池可以包含多个目标文本的合成子任
务,将多个目标文本的合成子任务一起进行处理优先级。然后按照处理优先级,将至少两个
合成子任务下发到语音合成端503。
将音频数据进行拼接得到子文本对应的音频数据,按照各个合成子任务的交付时间向调用
端501传输对应的音频数据,调用端501将音频数据实时传输至终端设备,以便终端设备播
放音频数据,终端设备可以实时播放音频数据,或者等待一个目标文本的所有音频数据传
输完毕后,对目标文本的至少一个音频数据进行拼接得到合成音频后,播放合成音频。另一
种实现方式中,语音合成端503也等待获取到一个目标文本的所有子文本的音频数据后,对
目标文本的至少一个音频数据进行拼接得到合成音频,调用端501将合成音频传输至终端
设备。
子任务,其中,每个合成子任务 用于指示将对应的子文本进行语音合成得到对应的音频数
据,一个合成子任务对应一个子文本;基于目标文本的请求时间以及子文本在目标文本中
的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;基于处理优先级执行
合成子任务,得到合成子任务对应的音频数据。因为将目标文本切分为至少两个子文本,并
生成至少两个合成子任务,使得一个目标文本可以按照合成子任务多次交付,只要完成一
个合成子任务,就可以输出一段对应的音频数据,提高了语音合成的实时性。
任务对应一个子文本;
至少两个合成子任务中每个合成子任务的交付时间,每个合成子任务的交付时间用于指示
完成合成子任务的时间;基于交付时间确定至少两个合成子任务的处理优先级。
指示合成子任务开始执行的时间相对于合成子任务所属的目标文本的请求时间的偏移量;
根据合成子任务所属的目标文本的请求时间,合成子任务对应的子文本的偏移时间,以及
语音合成的处理速度确定合成子任务的交付时间。
个子文本。
库中不包含子文本对应的音频数据,则对子文本生成合成子任务;得到至少两个合成子任
务。
少一个音频数据进行音频拼接得到合成音频,并输出合成音频。
成子任务,并接收计算节点发送的音频数据。
子任务,其中,每个合成子任务 用于指示将对应的子文本进行语音合成得到对应的音频数
据,一个合成子任务对应一个子文本;基于目标文本的请求时间以及子文本在目标文本中
的顺序,确定至少两个合成子任务中每个合成子任务的处理优先级;基于处理优先级执行
合成子任务,得到合成子任务对应的音频数据。因为将目标文本切分为至少两个子文本,并
生成至少两个合成子任务,使得一个目标文本可以按照合成子任务多次交付,只要完成一
个合成子任务,就可以输出一段对应的音频数据,提高了语音合成的实时性。
器(processor)702、存储器(memory)704、总线706及通信接口(Communications
Interface)708。
路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可
以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
务,其中,每个合成子任务 用于指示将对应的子文本进行语音合成得到对应的音频数据,
一个合成子任务对应一个子文本;基于目标文本的请求时间以及子文本在目标文本中的顺
序,确定至少两个合成子任务中每个合成子任务的处理优先级;基于处理优先级执行合成
子任务,得到合成子任务对应的音频数据。因为将目标文本切分为至少两个子文本,并生成
至少两个合成子任务,使得一个目标文本可以按照合成子任务多次交付,只要完成一个合
成子任务,就可以输出一段对应的音频数据,提高了语音合成的实时性。
处理器实现如本公开实施例所描述的语音合成方法。
端手机等。
可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺
序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、
电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
示例。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动
态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除
可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算
机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存
储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形
式。
件、数据结构等等。也可以在分布式计算环境中实践本公开,在这些分布式计算环境中,由
通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以
位于包括存储设备在内的本地和远程计算机存储介质中。
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
替换、改进等,均应包含在本公开的权利要求范围之内。