虚拟数字人的视频生成方法及装置、存储介质、终端转让专利

申请号 : CN202111674444.X

文献号 : CN114401438B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 柴金祥谭宏冰熊兴堂王从艺王斌梁志强戴鹭琳

申请人 : 魔珐(上海)信息科技有限公司上海墨舞科技有限公司

摘要 :

一种虚拟数字人的视频生成方法及装置、存储介质、终端,所述方法包括:获取输入信息,所述输入信息包括输入文本和/或输入语音;根据所述输入信息,确定文本驱动指令,所述文本驱动指令包括文本;根据所述文本驱动指令中所述文本的语义,生成所述文本驱动指令对应的动作驱动指令;根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频;其中,所述音频数据和面部动画数据是根据所述文本驱动指令得到的,所述动作动画数据是根据所述动作驱动指令得到的。通过本发明的方案,可以快速高效地生成用户所需的视频。

权利要求 :

1.一种虚拟数字人的视频生成方法,其特征在于,所述方法包括:获取输入信息,所述输入信息包括输入文本和/或输入语音;

根据所述输入信息,确定文本驱动指令,所述文本驱动指令包括文本;

根据所述文本驱动指令中所述文本的语义,生成所述文本驱动指令对应的动作驱动指令;

根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频;

其中,所述音频数据和面部动画数据是根据所述文本驱动指令得到的,所述动作动画数据是根据所述动作驱动指令得到的;

其中,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法还包括:获取用户在所述输入信息对应的文本内容中选择的第二文本;

获取用户针对所述第二文本输入的展示内容;

根据所述展示内容生成第二文本驱动指令对应的展示驱动指令,其中,第二文本驱动指令为包含所述第二文本的文本驱动指令;

根据所述展示驱动指令,生成所述展示驱动指令对应的动作驱动指令;

在根据所述文本驱动指令中的语义生成所述动作驱动指令之前,如果该文本驱动指令已有对应的展示驱动指令,且已根据所述展示驱动指令生成了所述动作驱动指令,则不再根据所述文本驱动指令中文本的语义生成所述动作驱动指令。

2.根据权利要求1所述的虚拟数字人的视频生成方法,其特征在于,根据所述输入信息,确定文本驱动指令包括:对所述输入文本进行分词处理,以得到多个文本;

根据每个文本,生成该文本对应的文本驱动指令。

3.根据权利要求1所述的虚拟数字人的视频生成方法,其特征在于,根据所述输入信息,确定文本驱动指令包括:对所述输入语音进行语音识别,以得到所述输入语音对应的文本内容;

对所述文本内容进行分词处理,以得到多个文本;

根据每个文本,生成该文本对应的文本驱动指令。

4.根据权利要求1所述的虚拟数字人的视频生成方法,其特征在于,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法还包括:根据所述动作驱动指令中的动作标识,从预设的动作数据库中选择确定对应的动作动画数据。

5.根据权利要求1所述的虚拟数字人的视频生成方法,其特征在于,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法包括:获取反馈信息,所述反馈信息用于指示正在输出的音频数据对应的文本驱动指令;

根据所述反馈信息判断下一条文本驱动指令是否具有对应的动作驱动指令,如果是,则根据所述动作驱动指令确定对应的动作动画数据。

6.根据权利要求1所述的虚拟数字人的视频生成方法,其特征在于,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法包括:获取用户在所述输入信息对应的文本内容中选择的第一文本;

获取用户针对所述第一文本输入的动作标识;

根据用户针对所述第一文本输入的动作标识,生成所述第一文本驱动指令对应的动作驱动指令,其中,所述第一文本驱动指令为包含所述第一文本的文本驱动指令。

7.根据权利要求6所述的虚拟数字人的视频生成方法,其特征在于,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法包括:获取反馈信息,所述反馈信息用于指示正在输出的音频数据对应的文本驱动指令;

根据所述反馈信息判断下一条文本驱动指令是否具有对应的展示驱动指令,如果是,则展示所述展示驱动指令对应的展示内容。

8.根据权利要求1所述的虚拟数字人的视频生成方法,其特征在于,根据音频数据、面部动画数据和动作数据,生成所述虚拟数字人的视频包括:对所述音频数据、面部动画数据和所述动作动画数据进行融合处理,以得到处理后的动画数据;

对所述处理后的动画数据进行解算和渲染,以得到所述虚拟数字人的视频。

9.根据权利要求1所述的虚拟数字人的视频生成方法,其特征在于,根据音频数据、面部动画数据和所述动作动画数据,生成所述虚拟数字人的视频之前,所述方法还包括:获取用户输入的对象信息,所述对象信息用于描述所述虚拟数字人的形象;根据所述对象信息生成所述虚拟数字人。

10.一种虚拟数字人的视频生成装置,其特征在于,所述装置包括:获取模块,用于获取输入信息,所述输入信息包括输入文本或输入语音;文本驱动指令生成模块,用于根据所述输入信息,确定文本驱动指令,所述文本驱动指令包括文本;

动作驱动指令生成模块,用于根据所述文本驱动指令中所述文本的语义,生成所述文本驱动指令对应的动作驱动指令;

视频生成模块,用于根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频;

其中,所述音频数据和面部动画数据是根据所述文本驱动指令得到的,所述动作动画数据是根据所述动作驱动指令得到的;

其中,所述动作驱动指令生成模块还用于:

获取用户在所述输入信息对应的文本内容中选择的第二文本;

获取用户针对所述第二文本输入的展示内容;

根据所述展示内容生成第二文本驱动指令对应的展示驱动指令,其中,第二文本驱动指令为包含所述第二文本的文本驱动指令;

根据所述展示驱动指令,生成所述展示驱动指令对应的动作驱动指令;

在根据所述文本驱动指令中的语义生成所述动作驱动指令之前,如果该文本驱动指令已有对应的展示驱动指令,且已根据所述展示驱动指令生成了所述动作驱动指令,则不再根据所述文本驱动指令中文本的语义生成所述动作驱动指令。

11.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时,执行权利要求1至9中任一项所述的虚拟数字人的视频生成方法的步骤。

12.一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至9中任一项所述的虚拟数字人的视频生成方法的步骤。

说明书 :

虚拟数字人的视频生成方法及装置、存储介质、终端

技术领域

[0001] 本发明涉及视频生成技术领域,尤其涉及一种虚拟数字人的视频生成方法及装置、存储介质、终端。

背景技术

[0002] 随着互联网技术和自媒体的发展,原有的以文本和图片为主的内容呈现方式,已经逐渐以视频内容为主的趋势发展,目前越来越多的用户在各种视频平台发布创作的长视频和短视频,视频制作的需求越来越大。目前的视频以真人为主,例如,在产品宣传类视频中,通常由真人对产品进行介绍和讲解等,在直播类视频中,也通常由真人主播进行直播。制作这样的视频依赖于真人,因此,制作效率低、成本较高。
[0003] 因此,亟需一种虚拟数字人的视频生成方法,无需对真人进行视频录制,能够快速高效地生成用户需要的视频

发明内容

[0004] 本发明解决的技术问题是提供一种虚拟数字人的视频生成方法,能够快速高效地生成用户所需的视频。
[0005] 为解决上述技术问题,本发明实施例提供一种虚拟数字人的视频生成方法,所述方法包括:获取输入信息,所述输入信息包括输入文本和/或输入语音;根据所述输入信息,确定文本驱动指令,所述文本驱动指令包括文本;根据所述文本驱动指令中所述文本的语义,生成所述文本驱动指令对应的动作驱动指令;根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频;其中,所述音频数据和面部动画数据是根据所述文本驱动指令得到的,所述动作动画数据是根据所述动作驱动指令得到的。
[0006] 可选的,根据所述输入信息,确定文本驱动指令包括:对所述输入文本进行分词处理,以得到多个文本;根据每个文本,生成该文本对应的文本驱动指令。
[0007] 可选的,根据所述输入信息,确定文本驱动指令包括:对所述输入语音进行语音识别,以得到所述输入语音对应的文本内容;对所述文本内容进行分词处理,以得到多个文本;根据每个文本,生成该文本对应的文本驱动指令。
[0008] 可选的,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法还包括:根据所述动作驱动指令中的动作标识,从预设的动作数据库中选择确定对应的动作动画数据。
[0009] 可选的,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法包括:获取反馈信息,所述反馈信息用于指示正在输出的音频数据对应的文本驱动指令;根据所述反馈信息判断下一条文本驱动指令是否具有对应的动作驱动指令,如果是,则根据所述动作驱动指令确定对应的动作动画数据。
[0010] 可选的,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法包括:获取用户在所述输入信息对应的文本内容中选择的第一文本;获取用户针对所述第一文本输入的动作标识;根据用户针对所述第一文本输入的动作标识,生成所述第一文本驱动指令对应的动作驱动指令,其中,所述第一文本驱动指令为包含所述第一文本的文本驱动指令。
[0011] 可选的,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法还包括:获取用户在所述输入信息对应的文本内容中选择的第二文本;获取用户针对所述第二文本输入的展示内容;根据所述展示内容生成所述第二文本驱动指令对应的展示驱动指令,其中,第二文本驱动指令为包含所述第二文本的文本驱动指令;根据所述展示驱动指令,生成所述展示驱动指令对应的动作驱动指令。
[0012] 可选的,根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频之前,所述方法包括:获取反馈信息,所述反馈信息用于指示正在输出的音频数据对应的文本驱动指令;根据所述反馈信息判断下一条文本驱动指令是否具有对应的展示驱动指令,如果是,则展示所述展示驱动指令对应的展示内容。
[0013] 可选的,根据音频数据、面部动画数据和动作数据,生成所述虚拟数字人的视频包括:对所述音频数据、面部动画数据和所述动作动画数据进行融合处理,以得到处理后的动画数据;对所述处理后的动画数据进行解算和渲染,以得到所述虚拟数字人的视频。
[0014] 可选的,根据音频数据、面部动画数据和所述动作动画数据,生成所述虚拟数字人的视频之前,所述方法还包括:获取用户输入的对象信息,所述对象信息用于描述所述虚拟数字人的形象;根据所述对象信息生成所述虚拟数字人。
[0015] 为了解决上述技术问题,本发明实施例还提供一种虚拟数字人的视频生成装置,所述装置包括:获取模块,用于获取输入信息,所述输入信息包括输入文本或输入语音;文本驱动指令生成模块,用于根据所述输入信息,确定文本驱动指令,所述文本驱动指令包括文本;动作驱动指令生成模块,用于根据所述文本驱动指令中所述文本的语义,生成所述文本驱动指令对应的动作驱动指令;视频生成模块,用于根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频,其中,所述音频数据和面部动画数据是根据所述文本驱动指令得到的,所述动作动画数据是根据所述动作驱动指令得到的。
[0016] 本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的虚拟数字人的视频生成方法的步骤。
[0017] 本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的虚拟数字人的视频生成方法的步骤。
[0018] 与现有技术相比,本发明实施例的技术方案具有以下有益效果:
[0019] 在本发明实施例的方案中,获取输入信息,然后根据输入信息确定文本驱动指令和动作驱动指令,最后根据音频动画数据、面部动画数据和动作动画数据生成虚拟数字人的视频。由于动作驱动指令是根据文本驱动指令中文本的语义得到的,因此,具有对应关系的文本驱动指令和动作驱动指令在语义上是一致的。由于音频数据和面部动画数据是根据文本驱动指令得到的,动作动画数据是根据动作驱动指令得到的,因此,动作动画数据与音频数据、面部动画数据也可以具有相同的含义,以使得虚拟数字人能够具有真实自然的声音、面部表情和肢体动作,从而无需对真人进行视频录制,可以高效地生成高质量的虚拟数字人的视频。

附图说明

[0020] 图1是本发明实施例中一种虚拟数字人的视频生成方法的流程示意图;
[0021] 图2是本发明实施例中一种虚拟数字人的视频生成方法的场景示意图;
[0022] 图3是本发明实施例中一种虚拟数字人的视频生成装置的结构示意图。

具体实施方式

[0023] 如背景技术所述,亟需一种虚拟数字人的视频生成方法,以快速高效地生成用户所需的视频。
[0024] 本发明的发明人经过研究发现,现有技术中的视频制作通常依赖于真人的录制,视频生成的效率较低。因此,出现了通过虚拟数字人替代真人进行视频录制的技术,但采用现有技术生成的虚拟数字人的视频质量较低,与对真人录制的视频存在明显差异。
[0025] 为了解决上述技术问题,本发明实施例提供一种虚拟数字人的视频生成方法,在本发明实施例的方案中,在本发明实施例的方案中,获取输入信息,然后根据输入信息确定文本驱动指令和动作驱动指令,最后根据音频动画数据、面部动画数据和动作动画数据生成虚拟数字人的视频。由于动作驱动指令是根据文本驱动指令中文本的语义得到的,因此,具有对应关系的文本驱动指令和动作驱动指令在语义上是一致的。由于音频数据和面部动画数据是根据文本驱动指令得到的,动作动画数据是根据动作驱动指令得到的,因此,动作动画数据与音频数据、面部动画数据也可以具有相同的含义,以使得虚拟数字人能够具有真实自然的声音、面部表情和肢体动作,从而无需对真人进行视频录制,可以高效地生成高质量的虚拟数字人的视频。
[0026] 为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0027] 参照图1,图1是本发明实施例中一种虚拟数字人的视频生成方法的流程示意图,所述方法可以由终端执行,所述终端可以是各种现有的具有数据接收和处理能力的终端设备,例如,可以是手机、计算机和平板电脑等,但并不限于此。其中,所述虚拟数字人可以是各种形象的虚拟人,例如,可以是虚拟新闻播报员、虚拟老师和虚拟主播等等,但并不限于此。需要说明的是,虚拟数字人可以是三维的,也可以是二维的,本发明实施例对此并不进行限制。通过本发明实施例的方案,用户只需输入一段文本或语音,即可快速高效地生成高质量的虚拟数字人的视频,本发明实施例对于视频的具体内容并不进行任何限制,例如,可以是新闻播报类视频、产品介绍类视频和知识科普类视频等,但并不限于此。图1示出的虚拟数字人的视频生成方法可以包括以下步骤:
[0028] 步骤S101:获取输入信息,所述输入信息包括输入文本和/或输入语音;
[0029] 步骤S102:根据所述输入信息,确定文本驱动指令;
[0030] 步骤S103:根据所述文本驱动指令中所述文本的语义,生成所述文本驱动指令对应的动作驱动指令;
[0031] 步骤S104:根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频。
[0032] 可以理解的是,在具体实施中,所述方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中;或者,该方法可以采用硬件或者软硬结合的方式来实现。
[0033] 在步骤S101的具体实施中,可以获取输入信息,所述输入信息可以是由用户输入的,例如,可以是从用户终端获取的,也可以是由用户终端预先上传至服务器,再从服务器获取的,输入信息还可以是预先存储在本地的数据库中的,但并不限于此。本发明实施例对于获取输入信息的方法并不进行限制。
[0034] 其中,输入信息可以包括输入文本,也可以包括输入语音,还可以既包括输入文本,又包括输入语音。输入文本为以文本为表现形式的输入信息,本发明实施例对于文本的类型和内容并不进行限制,例如,输入文本可以包括汉字、英文、数字、特殊字符等常见字符,但并不限于此。输入语音为以音频为表现形式的输入信息,输入语音可以是预先录制得到的,但并不限于此。
[0035] 在步骤S102的具体实施中,可以根据输入信息,可以确定多个文本驱动指令,其中,每个文本驱动指令可以包括文本。
[0036] 在一个具体的例子中,可以对输入文本进行分词处理,以得到多个文本,其中,文本可以是输入文本中能够表征特定含义的最小单元的字词,所述最小单元的字词可以是单个的字,也可以是能够表征特定含义的词组、成语等。本发明实施例对于最小单元的字词的字数并不进行限制,例如,可以是“你好”、“我”、“谢谢”等等,但并不限于此。
[0037] 在另一个具体的例子中,可以对输入语音进行语音识别,以得到输入语音对应的文本内容,也即,将输入语音转化为文本形式的输入信息。进一步地,可以对输入语音对应的文本内容进行分词处理,以得到多个文本。对文本内容进行处理的更多内容可以参照上文关于对输入文本进行分词处理的相关内容,在此不再赘述。
[0038] 进一步地,可以根据多个文本,生成多个文本驱动指令。需要说明的是,文本驱动指令与文本是一一对应的。也即,针对每个文本,可以生成该文本对应的文本驱动指令,其中,每个文本对应的文本驱动指令中包含该文本。更具体地,文本驱动指令可以仅包括文本。
[0039] 在步骤S103的具体实施中,可以生成动作驱动指令。
[0040] 具体而言,对于至少一个文本驱动指令,可以根据该文本驱动指令中文本的语义,生成该文本驱动指令对应的动作驱动指令。
[0041] 其中,文本的语义可以是通过对文本进行语义分析得到的。需要说明的是,本发明实施例对确定文本的语义的方法并不进行任何限制,例如,可以是通过自然语言处理(Natural Language Processing,NLP)技术对输入文本进行处理得到的,但并不限于此。
[0042] 在一个具体的例子中,可以根据文本驱动指令中的文本的语义,生成该文本驱动指令对应的动作驱动指令。其中,动作驱动指令包括动作标识,所述动作标识可以是字符串等,本实施例对于动作标识的表现形式并不进行限制。换言之,动作标识可以是根据文本的语义确定的。
[0043] 更具体地,相同语义的文本确定得到的为同一个动作标识,语义不同的文本确定得到的动作标识也不同。也即,动作标识与语义能够具有对应关系。
[0044] 其中,动作标识不同,动作驱动指令对应的动作的含义也不同,也即,动作标识相同,则动作驱动指令对应的动作的含义也相同。因此,动作标识能够指示语义,也能够指示动作的含义。
[0045] 在另一个具体的例子中,可以获取用户从输入信息对应的文本内容中选择的文本,记为第一文本。当输入信息为文本信息时,对应的文本内容为输入信息本身;当输入信息为音频信息时,对应的文本内容为对输入语音进行语音识别,以得到输入语音对应的文本内容。
[0046] 进一步地,可以获取用户针对第一文本设置的动作标识,然后根据用户针对第一文本设置的动作标识生成第一文本驱动指令对应的动作驱动指令。其中,第一文本驱动指令为包含第一文本的文本驱动指令,也即,是指第一文本对应的文本驱动指令。采用这样的方案,用户可以自行配置虚拟数字人的肢体动作,实现肢体动作的个性化设置。
[0047] 在具体实施中,根据第一文本驱动指令中的语义生成动作驱动指令之前,可以先判断第一文本驱动指令是否已有对应的动作驱动指令,如果是,则不再根据第一文本的语义生成动作驱动指令。换言之,可以先判断用户是否配置了动作驱动指令,如果是,则不再根据文本的语义生成动作驱动指令。
[0048] 此外,如果预先根据第一文本驱动指令中文本的语义生成了对应的动作驱动指令,则可以采用根据用户针对第一文本设置的动作标识生成的动作驱动指令进行更新。
[0049] 在又一个具体的例子中,还可以获取用户在输入信息对应的文本内容中选择的第二文本,然后获取用户针对第二文本输入的展示内容;进一步地,根据用户针对第二文本输入的展示内容生成第二文本驱动指令对应的展示驱动指令,其中,第二文本驱动指令为包含所述第二文本的文本驱动指令。其中,展示内容是指需要展示内容。
[0050] 进一步地,可以根据所述展示驱动指令,生成所述展示驱动指令对应的动作驱动指令,也即,根据展示驱动指令生成第二文本驱动指令对应的动作驱动指令。例如,如果展示驱动指令为图片、文字、表格等,则根据展示驱动指令生成的动作驱动指令可以是引导动作对应的动作驱动指令。换言之,对应的动作为引导动作。
[0051] 进一步地,可以根据所述文本驱动指令中所述文本的语义和展示驱动指令,生成所述文本驱动指令对应的动作驱动指令。其中,生成动作驱动指令的过程中会将展示驱动指令作为参考。生成动作驱动指令的过程中将展示驱动指令作为参考是指,在根据文本驱动指令中的语义生成动作驱动指令之前,如果该文本驱动指令已有对应的展示驱动指令,且已根据展示驱动指令生成了动作驱动指令,则不再根据文本驱动指令中文本的语义生成动作驱动指令。
[0052] 由上,可以获取用户输入的输入信息、针对一个或多个第一文本输入的动作标识以及针对一个或多个第二文本输入的展示内容,然后生成多个动作驱动指令。具体而言,可以先根据用户输入的动作标识生成第一文本驱动指令对应的动作驱动指令,以及,根据用户输入的展示内容生成第二文本驱动指令对应的动作驱动指令;然后针对输入信息中除第一文本驱动指令和第二文本驱动指令以外的文本驱动指令,可以根据文本的语义生成对应的动作驱动指令。
[0053] 参照图2,图2是本发明实施例中一种虚拟数字人的视频生成方法的场景示意图。下面结合图2对本实施例的方案进行非限制性的说明。
[0054] 本实施例的方案中,获取输入信息后,可以确定多个文本驱动指令,多个文本驱动指令按照输入信息的顺序依次排列,可以得到文本轴21。更具体地,文本轴的不同位置对应不同的文本,文本在文本轴上是按照语义排列的。其中,每个文本均具有与其一一对应的文本驱动指令。
[0055] 进一步地,可以确定一个或多个文本驱动指令对应的动作驱动指令,以得到动作轴22。如图2所示,文本驱动指令“嗨”对应的动作标识为ID1的动作驱动指令,文本驱动指令“我叫”对应动作标识为ID2的动作驱动指令。其中,每个动作驱动指令驱动的动作序列持续的时间长短,动作的速率快慢可以是由用户设置的。
[0056] 进一步,生成的动作驱动指令可以在动作轴22上显示为对应的动作标识,如果不符合需求,用户可以在动作轴22上,调整动作标识。具体而言,用户可以针对任意位置处的文本设置对应的动作标识,以新增动作驱动指令,或者调整已有的动作驱动指令。其中,具有对应关系的文本和动作标识可以是对齐的。
[0057] 进一步地,用户可以针对任意位置处的文本设置对应的展示内容,以得到展示轴23。在具体实施中,用户可以通过鼠标在界面上点击的位置确定用户选择的文本,记为第二文本,然后可以设置第二文本对应的展示内容。
[0058] 如图2所示,用户可以设置第二文本“世界”对应的展示内容P1,用户可以设置第二文本“产品”对应的展示内容P2。其中,获取用户输入的展示内容后,还可以生成对应的展示驱动指令。更进一步地,展示驱动指令生成后,还可以进一步生成展示驱动指令对应的动作驱动指令。例如,展示内容P2为图片,则可以确定对应的动作标识为ID3的动作驱动指令。其中,动作标识ID3对应的动作为引导动作。
[0059] 由上,可以根据输入信息、用户设置的动作标识和展示内容中的一项或多项,得到多个文本驱动指令、多个动作驱动指令和展示信息驱动指令,其中,文本驱动指令、动作驱动指令和展示信息驱动指令在语义上均是对齐的。
[0060] 继续参考图1,在步骤S104的具体实施中,可以根据多种指令,生成虚拟数字人的视频。
[0061] 具体而言,可以依次根据多个文本驱动指令生成音频数据。更具体地,可以按照文本轴从前到后的顺序,依次响应于每个文本驱动指令,生成该文本驱动指令对应的语音片段。更具体地,可以采用文本到语音(Text‑to‑Speech,TTS)技术生成该文本驱动指令对应的语音片段。可以理解的是,多个文本驱动指令对应的语音片段即为最终输入的音频数据。
[0062] 具体地,可以采用文本到语音和动画技术根据文本驱动指令中的文本生成音频数据和动画数据。其中,文本驱动指令中的文本与输入的原始文本对应。具体过程参照以下描述。
[0063] 获取文本信息,其中,所述文本信息包括待生成虚拟对象动画数据的文本;分析文本信息的情感特征和韵律边界;根据情感特征、韵律边界和文本信息进行语音合成,以得到音频数据,其中,音频数据包括基于文本信息转换得到的带有情感的语音;基于文本信息和音数据生成对应的虚拟对象动画数据,并且,虚拟对象动画数据与所述音频数据在时间上是同步的,虚拟对象动画数据可以包括虚拟对象的面部动画数据。
[0064] 进一步,分析文本信息的情感特征和韵律边界包括:对文本信息进行分词处理;对于分词得到的每一字词,对字词进行情感分析以得到字词的情感特征;确定每一字词的韵律边界。
[0065] 进一步,分析文本信息的情感特征和韵律边界还可以包括:基于预设文本前端预测模型分析文本信息的情感特征,预设文本前端预测模型的输入为文本信息,预设文本前端预测模型的输出为文本信息的情感特征、韵律边界和分词。
[0066] 在一个具体实施中,预设文本前端预测模型可以包括耦接的循环神经网络(Recurrent Neural Network,简称RNN)和条件随机场(Conditional Random Fields,简称CRF)。也就是说,本具体实施采用RNN+CRF的深度学习模型快速预测文本信息的各个字词的情感特征以及韵律边界估计。
[0067] 需要指出的是,预设文本前端预测模型可以是同时输出文本信息的情感特征、韵律边界和分词结果的。而在预设文本前端预测模型内部,则可以先进行分词,然后再处理分词结果以得到对应的情感特征和韵律边界。
[0068] 进一步,根据情感特征、韵律边界和文本信息进行语音合成,以得到音频数据包括:将文本信息、情感特征和韵律边界输入预设语音合成模型,其中,预设语音合成模型用于将输入的文本序列按时序转换成语音序列,且语音序列中的语音带有对应时间点上文本的情感;获取预设语音合成模型输出的音频数据。
[0069] 进一步,预设语音合成模型是基于训练数据训练得到的,其中,训练数据包括文本信息样本以及对应的音频数据样本,音频数据样本是根据所述文本信息样本预先录制得到的。
[0070] 具体地,预设语音合成模型可以为序列到序列(Sequence to Sequence,简称Seq‑to‑Seq)模型。
[0071] 进一步,基于所述文本信息和音频数据生成对应的虚拟对象动画包括:将文本信息和音频数据输入预设时序映射模型,以生成对应的虚拟对象动画数据。
[0072] 需要说明的是,如果输入信息为语音信息,则可以直接将输入信息作为音频数据。进一步地,可以根据音频数据得到面部动画数据,例如,可以采用基于语音的动画合成技术,根据音频数据得到面部动画数据。更具体地,可以将音频数据转换为发音单元序列,并对发音单元序列进行特征分析,以得到对应的语言学特征序列,再将语言学特征序列输入至预设时序映射模型,以得到面部动画数据。其中,发音单元是可以是音素,语言学特征可以用于表征发音单元的发音特征,预设时序映射模型是基于深度学习技术训练构建的,用于将输入的语言学特征序列映射至对应的面部动画数据。
[0073] 进一步,预设时序映射模型可以用于基于深度学习按时序将输入的语言学特征序列映射至虚拟对象的表情参数,以生成对应的虚拟对象的面部动画数据。
[0074] 具体地,将音频数据转换为发音单元序列可以包括步骤:将音频数据转换为发音单元及对应的时间码;根据时间码对发音单元进行时间对齐操作,以得到时间对齐后的发音单元序列。为便于表述,本实施例将时间对齐后的发音单元序列简称为发音单元序列。
[0075] 进一步,可以将所述音频数据转换为文本信息后,再对文本信息进行处理以得到发音单元和对应的时间码。
[0076] 具体地,可以基于自动语音识别(Automatic Speech Recognition,简称ASR)技术和预设发音字典将所述音频数据转换为发音单元及对应的时间码。
[0077] 进一步,对发音单元序列进行特征分析,得到对应的语言学特征序列包括:对发音单元序列中的每个发音单元进行特征分析,得到每个发音单元的语言学特征;基于每个发音单元的语言学特征,生成对应的语言学特征序列。
[0078] 进一步,对发音单元序列中的每个发音单元进行特征分析,得到每个发音单元的语言学特征可以包括:对于每个发音单元,分析发音单元的发音特征,以得到发音单元的独立语言学特征;基于发音单元的独立语言学特征生成发音单元的语言学特征。
[0079] 进一步,可以在一定的时间窗口范围内对每个发音单元的所有邻接发音单元进行分析,分析的维度包括但不限于当前发音单元的左侧窗口内有多少个元音或辅音、当前发音单元的右侧窗口内有多少个前鼻音或后鼻音等。例如,统计所述邻接发音单元所具有发音特征的种类以及同种发音特征的数量,并根据统计结果得到邻接语言学特征。
[0080] 进一步,可以将量化后的统计特征作为当前发音单元的邻接语言学特征。
[0081] 进一步,发音单元的邻接发音单元可以包括:以发音单元为中心,在时序上位于发音单元前后的预设数量的发音单元。
[0082] 进一步,对于每一发音单元,将发音单元的独立语言学特征和邻接语言学特征相组合,以得到发音单元的完整的语言学特征。
[0083] 进一步,将语言学特征序列输入预设时序映射模型,以基于语言学特征序列生成对应的虚拟对象的面部动画数据包括:基于预设时序映射模型对语言学特征序列进行多维度的信息提取,其中,多维度包括时间维度和语言学特征维度;基于预设时序映射模型对多维度的信息提取结果进行特征域的映射和特征维度变换,以得到虚拟对象的表情参数。
[0084] 其中,特征域的映射是指语言学特征域到虚拟对象面部动画数据特征域的映射,虚拟对象的面部动画数据特征域至少包括虚拟对象的表情特征。
[0085] 具体地,由于音频数据的长度并不固定,因此,可以基于循环神经网络(Recurrent Neural Network,简称RNN)及其变体(如长短时记忆网络(Long Short‑Term Memory,简称LSTM)等)处理基于输入信息处理得到的变长序列信息(即所述语言学特征序列),从而从整体上提取特征信息。特征映射模型通常涉及到特征域转换以及特征维度变换。对此,可以基于全链接网络(Fully Connected Network,简称FCN)实现此转换功能。
[0086] 进一步,RNN网络可从时间维度上对输入特征进行处理,而为了在更多维度上对特征进行处理从而提取出更高维度的特征信息,进而增强模型的泛化能力,可以基于卷积神经网络(Convolutional Neural Network,简称CNN)及其变体(如膨胀卷积、因果卷积等)对输入信息进行处理。
[0087] 在一个具体实施中,预设时序映射模型可以为卷积网络‑长短时记忆网络‑深度神经网络(Convolutional LSTM Deep Neural Networks,简称CLDNN)。
[0088] 具体地,预设时序映射模型可以包括:多层卷积网络,用于接收语言学特征序列,并对语言学特征序列进行多维度的信息提取。
[0089] 例如,多层卷积网络可以包括四层膨胀卷积网络,对语言学特征序列进行多维度的信息提取。语言学特征序列可以为二维数据,假设对于每一发音单元都由600位长度的发音特征表示且共有100个发音单元,则输入所述预设时序映射模型的语言学特征序列为100×600的二维数组。其中100这个维度代表时间维度,600这个维度代表语言学特征维度。相应的,多层卷积网络在时间和语言学特征两个维度上进行特征运算。
[0090] 进一步,预设时序映射模型还可以包括:长短时记忆网络,用于对时间维度的信息提取结果进行信息聚合处理。由此,可以在时间维度上对经过多层卷积网络卷积处理后的特征从整体上进行连续性考虑。
[0091] 例如,长短时记忆网络可以包括两层堆叠的双向LSTM网络,与多层卷积网络的耦接以获取多层卷积网络输出的对语言学特征序列在时间维度上的信息提取结果。进一步,两层堆叠的双向LSTM网络对语言学特征序列在时间维度上的信息提取结果进行高维度的信息加工,以进一步得到时间维度上的特征信息。
[0092] 进一步,预设时序映射模型还可以包括:深度神经网络,与多层卷积网络和长短时记忆网络耦接,深度神经网络用于对多层卷积网络和长短时记忆网络的输出的多维度的信息提取结果进行特征域的映射和特征维度变换,以得到虚拟对象的表情参数。
[0093] 例如,深度神经网络可以接收多层卷积网络输出的语言学特征维度的信息提取结果,深度神经网络还可以接收长短时记忆网络输出的更新的时间维度上的信息提取结果。
[0094] 维度变换可以指降维,如所述预设时序映射模型的输入为600个特征,输出则为100个特征。
[0095] 例如,深度神经网络可以包括:多层串联连接的全连接层,其中,第一层全连接层用于接收多维度的信息提取结果,最后一层全连接层输出虚拟对象的表情参数。全连接层的数量可以为三层。
[0096] 进一步,深度神经网络还可以包括:多个非线性变换模块,分别耦接于除最后一层全连接层外的相邻两层全连接层之间,非线性变化模块用于对耦接的上一层全连接层的输出结果进行非线性变换处理,并将非线性变换处理的结果输入耦接的下一层全连接层。
[0097] 非线性变换模块可以为修正线性单元(Rectified linear unit,简称ReLU)激活函数。
[0098] 非线性变换模块可以提升预设时序映射模型的表达能力和泛化能力。
[0099] 在一个变化例中,多层卷积网络、长短时记忆网络和深度神经网络可以是依次串联连接的,多层卷积网络输出的语言学特征维度的信息提取结果经过长短时记忆网络透传至所述深度神经网络,多层卷积网络输出的时间维度的信息提取结果经过长短时记忆网络处理后传输至所述深度神经网络。
[0100] 具体地,虚拟对象可以为虚拟数字人。
[0101] 其中,面部动画数据可以包括唇形动画数据,也可以包括表情动画数据,还可以包括眼神动画数据等,但并不限于此。其中,面部动画数据的具体表现形式可以为数字化的向量序列,例如,序列中的每个向量可以包括虚拟数字人面部特征点(唇部特征点、眼部特征点等)的偏移信息等。其中,音频数据和面部动画数据在时间上是同步的,更具体地,面部动画数据与音频数据具有相同的时间码。
[0102] 进一步地,输出音频数据时,可以获取反馈信息,反馈信息可以用于指示正在输出的音频数据对应的文本驱动指令。
[0103] 进一步地,可以判断下一个文本驱动指令是否具有对应的动作驱动指令,如果是,则可以根据该动作驱动指令确定对应的动作动画数据。
[0104] 具体而言,可以根据动作驱动指令,从预设的动作数据库中选择确定对应的动作动画数据。其中,预设的动作数据库包括多个动作动画数据,每个动作动画数据具有标签,所述标签用于指示动作动画数据对应的动作的含义。更具体地,可以根据动作驱动指令中的动作标识,在动作数据库中进行查询,以得到动作驱动指令对应的动作动画数据。其中,所述预设的动作数据库包括多个动作动画数据,每个动作动画数据具有标签,所述标签用于指示所述动作动画数据对应的动作的含义。
[0105] 参照图2,如果正在输出的音频数据对应的文本驱动指令为“啊”,则可以确定下一个文本驱动指令为“我叫”,且该文本驱动指令具有对应的动作驱动指令ID2,则可以根据动作标识ID2对应的动作驱动指令确定对应的动作动画数据。
[0106] 可以理解的是,根据动作标识ID2对应的动作驱动指令确定对应的动作动画数据的过程中,也同样根据文本驱动指令“我叫”生成面部动画数据并输出对应的音频数据。由此,动作动画数据与面部动画数据、音频数据在语义上是对齐的。
[0107] 进一步地,还可以判断下一个文本驱动指令是否具有对应的展示驱动指令,如果是,则展示该展示驱动指令对应的展示内容。所述展示内容可以是用户上传的,例如,可以是图片、文字、表格和视频等等,但并不限于此。
[0108] 进一步地,如果下一个文本驱动指令具有对应的展示驱动指令,还可以进一步判断该展示驱动指令是否具有对应的动作驱动指令,如果是,则可以根据动作驱动指令确定对应的动作动画数据。
[0109] 例如,正在输出的音频数据对应的文本驱动指令为“款”,则下一个文本驱动指令“产品”具有对应的展示内容P2,且展示内容P2对应的展示驱动指令具有对应的动作驱动指令,则可以展示展示内容P2同时,根据动作标识ID3确定对应的动作动画数据。
[0110] 进一步地,可以对动作动画数据、面部动画数据和展示内容进行解算和渲染,以得到虚拟数字人的视频。例如,可以将处理后的动画数据输入实时引擎(例如,UE4、Unity等)进行解算和渲染,以得到虚拟数字人的视频。更具体地,可以根据预设的视频参数进行解算和渲染,以得到对应的视频。其中,视频参数可以是用户预先设置的,所述视频参数可以包括以下一项或多项:视频分辨率、视频帧率、视频格式等,但并不限于此。其中,虚拟数字人的视频可以是二维的,也可以是三维的。
[0111] 在执行步骤S104之前,还可以获取虚拟数字人,虚拟数字人可以是预先设置的,也可以是采用捏脸系统技术得到的,本发明实施例对于获取虚拟数字人的具体方式并不进行限制。
[0112] 在一个具体的例子中,可离线按照需求定制各种虚拟数字人的形象,形成虚拟数字人形象库,用户可根据需求选择符合需求的虚拟数字人形象。
[0113] 在另一个具体的例子中,可以获取用户输入的对象信息,所述对象信息用于描述虚拟数字人的形象,然后可以根据对象信息生成虚拟数字人。例如,所述对象信息可以是对虚拟数字人的外表特征进行描述的数据,对象信息可以是文本,也可以是语音等。
[0114] 在又一个具体的例子,可以确定输入信息所属的场景类型,例如,场景类型可以是新闻播报的场景、产品介绍的场景(更具体地,可以是按照产品的类型进行进一步细分,例如,美妆产品介绍的场景、男士服装产品介绍的场景、汽车产品介绍的场景等等)、知识科普的场景等。进一步地,可以根据输入信息所属的场景类型确定虚拟数字人。更具体地,可以根据输入信息所属的场景类型从预设的虚拟数字人数据库中确定与场景类型对应的虚拟数字人,也可以根据输入信息所属的场景类型分别确定脸型、发型、服饰、妆容和姿态等信息,并将确定的信息进行融合以生成虚拟数字人。
[0115] 参照图3,图3是本发明实施例中一种虚拟数字人的视频生成装置,图3示出的装置可以包括:
[0116] 获取模块31,用于获取输入信息,所述输入信息包括输入文本或输入语音;
[0117] 文本驱动指令生成模块32,用于根据所述输入信息,确定文本驱动指令,所述文本驱动指令包括文本;
[0118] 动作驱动指令生成模块33,用于动作驱动指令生成模块,用于根据所述文本驱动指令中所述文本的语义,生成所述文本驱动指令对应的动作驱动指令;
[0119] 视频生成模块34,用于根据音频数据、面部动画数据和动作动画数据,生成所述虚拟数字人的视频,其中,所述音频数据和面部动画数据是根据所述输入信息得到的,所述动作动画数据是根据所述动作驱动指令得到的。
[0120] 在具体实施中,上述虚拟数字人的视频生成装置可以对应于终端内具有视频生成功能的芯片,或者对应于终端内具有视频生成功能的芯片模组,或者对应于终端。
[0121] 关于图3示出的虚拟数字人的视频生成装置的工作原理、工作方式和有益效果等更多内容,可以参照上文关于虚拟数字人的视频生成方法的相关描述,在此不再赘述。
[0122] 本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的虚拟数字人的视频生成方法的步骤。所述存储介质可以包括ROM、RAM、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non‑volatile)或者非瞬态(non‑transitory)存储器等。
[0123] 本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的虚拟数字人的视频生成方法的步骤。所述终端包括但不限于手机、计算机、平板电脑等终端设备。
[0124] 应理解,本申请实施例中,所述处理器可以为中央处理单元(central processing unit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称DSP)、专用集成电路(application specific integrated circuit,简称ASIC)、现成可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0125] 还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read‑only memory,简称ROM)、可编程只读存储器(programmable ROM,简称PROM)、可擦除可编程只读存储器(erasable PROM,简称EPROM)、电可擦除可编程只读存储器(electrically EPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称RAM)可用,例如静态随机存取存储器(static RAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,简称DR RAM)。
[0126] 上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。
[0127] 在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0128] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
[0129] 应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
[0130] 本申请实施例中出现的“多个”是指两个或两个以上。
[0131] 本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
[0132] 虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。