数字人驱动方法、装置、设备及存储介质与流程

文档序号:30063051发布日期:2022-05-18 00:08阅读:489来源:国知局
数字人驱动方法、装置、设备及存储介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种数字人驱动方法、相应的一种数字人驱动装置、相应的一种电子设备以及相应的一种计算机存储介质。


背景技术:

2.数字人在狭义的定义是信息科学与生命科学融合的产物,其可利用信息科学的方法对人体在不同水平的形态和功能进行虚拟仿真。在数字人完成后需要对数字人进行渲染和驱动,对数字人的渲染表现为将所构建的数字人在显示器上进行渲染,此时渲染的数字人是静态的,而对数字人的驱动表现为将渲染的静态数字人像真实人类一样动起来。
3.虚拟数字人的发展进入到快速成长阶段,其可以应用到具有数字人需求的多种不同场景,例如游戏行业、直播场景等。目前通常是一个项目制作与其对应的一套渲染驱动,实现对数字人的渲染和驱动,但在对新项目中的数字人进行渲染驱动时,还需从头开始渲染和驱动,即便存在用于对数字人进行渲染驱动的数字人平台,但对于不同的数字人驱动缺少规范的驱动与渲染接口,不利于对不同场景下的数字人进行渲染驱动。


技术实现要素:

4.鉴于上述问题,提出了本技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数字人驱动方法、相应的一种数字人驱动装置、相应的一种电子设备以及相应的一种计算机存储介质。
5.本技术实施例公开了一种数字人驱动方法,涉及到基于标记语言配置的数字人标准标记协议,应用于与所配置的数字人标准标记协议适配的解析引擎,所述解析引擎支持不同的渲染引擎,所述方法包括:
6.通过所述解析引擎接收针对数字人的驱动数据包,并解析所述驱动数据包得到驱动信息;其中,所接收的驱动数据包为基于所配置的数字人标准标记协议的数据包,用于控制数字人在预设时刻执行预设事件;
7.通过所述解析引擎调用渲染引擎,并在所调用的渲染引擎中根据所述驱动信息驱动预先渲染的数字人。
8.可选地,在接收针对数字人的驱动数据包之前,还包括:
9.接收用户系统发送的针对数字人的构建信息;所述构建信息包括适用于预设场景的数字人信息、数字人装扮信息、数字人声音信息和数字人动作信息;
10.通过所述解析引擎基于所述构建信息生成与预设场景适配的数字人,以便对所构建的数字人进行预先渲染。
11.可选地,在基于所述构建信息生成与预设场景适配的数字人之后,还包括:
12.基于所述适用于预设场景的数字人信息从所述解析引擎所整合的渲染引擎中确定与预设场景对应的渲染引擎;
13.通过所述解析引擎调用所述渲染引擎,并通过所调用的渲染引擎预先对所构建的
数字人以及预设场景进行渲染,以便驱动预先渲染后预设场景中的数字人。
14.可选地,所述通过所述解析引擎接收针对数字人的驱动数据包,包括:
15.通过所述解析引擎接收用户系统发送的针对数字人的驱动数据包;所述针对数字人的驱动数据包为由所述用户系统将基于所述构建信息确定的数字人需要展示的内容信息转换为数字人标准标记协议的数据包;其中,在转换后的驱动数据包中采用用于表示预设事件的元素,以及所述预设事件的元素具有的用于表示预设时刻的起始位置属性配置数字人需要展示的内容信息,所述数字人需要展示的内容信息包括在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件。
16.可选地,所述解析所述驱动数据包得到驱动信息,包括:
17.通过所述解析引擎对所述驱动数据包中用于表示预设事件的元素,以及所述预设事件的元素具有的用于表示预设时刻的起始位置属性,进行实时解析得到所述数字人的驱动信息;所述驱动信息包括在预设时刻的说话文本信息、动作文本信息、卡片文本信息以及表情文本信息。
18.可选地,所述在所调用的渲染引擎中根据所述驱动信息驱动预先渲染的数字人,包括:
19.通过所述解析引擎将所述说话文本信息实时转化为流式的语音数据,并在流式语音转化过程中基于所述说话文本信息、动作信息以及表情信息生成对应的在预设时刻的嘴型数据、表情数据与动作数据;
20.通过所述解析引擎将所生成的在预设时刻的语音数据、嘴型数据、表情数据与动作数据实时发送给所调用的渲染引擎;
21.通过所述渲染引擎获取预先渲染的数字人,并基于在预设时刻的语音数据、嘴型数据、表情数据与动作数据驱动所述预先渲染的数字人进行播放,以将所播放的数字人推送至用户系统。
22.可选地,所述驱动信息还包括在预设时刻的卡片文本信息,所述在所调用的渲染引擎中根据所述驱动信息驱动预先渲染的数字人,还包括:
23.在驱动所述预先渲染的数字人播放的过程中,在预设场景中按照预设时刻插入所述预设时刻的卡片文本信息。
24.本技术实施例还公开了一种数字人驱动装置,涉及到基于标记语言配置的数字人标准标记协议,应用于与所配置的数字人标准标记协议适配的解析引擎,所述解析引擎支持不同的渲染引擎,所述装置包括:
25.驱动数据包解析模块,用于接收针对数字人的驱动数据包,并解析所述驱动数据包得到驱动信息;其中,所接收的驱动数据包为基于所配置的数字人标准标记协议的数据包,用于控制数字人在预设时刻执行预设事件;
26.数字人驱动模块,用于调用渲染引擎,并在所调用的渲染引擎中根据所述驱动信息驱动预先渲染的数字人。
27.可选地,在接收针对数字人的驱动数据包之前,所述装置还包括:
28.构建信息接收模块,用于接收用户系统发送的针对数字人的构建信息;所述构建信息包括适用于预设场景的数字人信息、数字人装扮信息、数字人声音信息和数字人动作信息;
29.数字人生成模块,用于通过所述解析引擎基于所述构建信息生成与预设场景适配的数字人,以便对所构建的数字人进行预先渲染。
30.可选地,在基于所述构建信息生成与预设场景适配的数字人之后,所述装置还包括:
31.渲染引擎确定模块,用于基于所述适用于预设场景的数字人信息从所述解析引擎所整合的渲染引擎中确定与预设场景对应的渲染引擎;
32.数字人渲染模块,用于通过所述解析引擎调用所述渲染引擎,并通过所调用的渲染引擎预先对所构建的数字人以及预设场景进行渲染,以便驱动预先渲染后预设场景中的数字人。
33.可选地,所述驱动数据包解析模块包括:
34.驱动数据包接收子模块,用于通过所述解析引擎接收用户系统发送的针对数字人的驱动数据包;所述针对数字人的驱动数据包为由所述用户系统将基于所述构建信息确定的数字人需要展示的内容信息转换为数字人标准标记协议的数据包;其中,在转换后的驱动数据包中采用用于表示预设事件的元素,以及所述预设事件的元素具有的用于表示预设时刻的起始位置属性配置数字人需要展示的内容信息,所述数字人需要展示的内容信息包括在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件。
35.可选地,所述驱动数据包解析模块包括:
36.驱动数据包解析子模块,用于数字人通过所述解析引擎对所述驱动数据包中用于表示预设事件的元素,以及所述预设事件的元素具有的用于表示预设时刻的起始位置属性,进行实时解析得到所述数字人的驱动信息;所述驱动信息包括在预设时刻的说话文本信息、动作文本信息、卡片文本信息以及表情文本信息。
37.可选地,所述驱动信息包括在预设时刻的说话文本信息、动作文本信息以及表情文本信息,所述数字人驱动模块包括:
38.数据转化子模块,用于将所述说话文本信息实时转化为流式的语音数据,并在流式语音转化过程中基于所述说话文本信息、动作信息以及表情信息生成对应的在预设时刻的嘴型数据、表情数据与动作数据;
39.数据发送子模块,用于通过所述解析引擎将所生成的在预设时刻的语音数据、嘴型数据、表情数据与动作数据实时发送给所调用的渲染引擎;
40.数字人驱动子模块,用于通过所述渲染引擎获取预先渲染的数字人,并基于在预设时刻的语音数据、嘴型数据、表情数据与动作数据驱动所述预先渲染的数字人进行播放,以将所播放的数字人推送至用户系统。
41.可选地,所述驱动信息还包括在预设时刻的卡片文本信息,所述数字人驱动模块包括:
42.卡片信息插入子模块,用于在驱动所述预先渲染的数字人播放的过程中,在预设场景中按照预设时刻插入所述预设时刻的卡片文本信息。
43.本技术实施例公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一项所述数字人驱动方法的步骤。
44.本技术实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现任一项所述数字人驱动方法的步骤。
45.本技术实施例包括以下优点:
46.本技术实施例中,涉及到基于标记语言配置的数字人标准标记协议,应用于与所配置的数字人标准标记协议适配的解析引擎,与数字人标准标记协议适配的解析引擎可以支持不同的渲染引擎,此时可通过解析引擎对所接收到的数字人的驱动数据包进行解析得到驱动信息,然后通过解析引擎调用渲染引擎根据驱动信息对预先渲染的数字人进行驱动,其中解析引擎所接到的驱动数据包可以是基于所配置的数字人标准标记协议的数据包,其可用于控制数字人在预设时刻执行预设事件。即可基于所提出的数字人标准标记协议,以及与此标记协议适配的解析引擎对数字人的相关驱动标准进行统一,对于不同的渲染引擎在对数字人进行驱动时能够无关乎所需渲染的场景以及相关实现,仅通过解析引擎基于所提出的数字人标准标记协议,调用驱动渲染引擎对预先渲染的数字人进行在某个时刻指定事件的驱动即可,可基于数字人标准标记协议对数字人的制作进行规范进而统一数字人的渲染驱动,使得数字人的渲染与驱动不存在相关服务场景的逻辑,以应对上游不同服务场景,对数字人的渲染驱动方面进行复用,且基于此规范统一且约束化渲染驱动的数字人标准标记协议,可不局限于任意数据解析方案,以及任意渲染驱动系统,不仅对上游服务场景的对接进行统一,且不受下游渲染驱动引擎的升级或者变更的影响。
附图说明
47.图1是本技术的一种数字人驱动方法实施例的步骤流程图;
48.图2是本技术实施例提供的数字人驱动的系统框架示意图;
49.图3是本技术的另一种数字人驱动方法实施例的步骤流程图;
50.图4是本技术实施例提供的数字人驱动的应用场景图;
51.图5是本技术的一种数字人驱动装置实施例的结构框图。
具体实施方式
52.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
53.虚拟数字人的发展进入到快速成长阶段,其可以应用到具有数字人需求的多种不同场景,例如游戏行业、直播场景等,表现为不同种类的数字人,例如数字虚拟人直播、数字虚拟人客服、数字虚拟人助手等,但在不同的场景里,对于不同场景下不同种类的虚拟数字之间的渲染驱动具有通用性,而现有技术中不能复用的渲染驱动方案并未利用此所存在的通用性,即现有的数字人渲染驱动方案中对于数字人的渲染驱动缺少规范。
54.参照图1,示出了本技术的一种数字人驱动方法实施例的步骤流程图,涉及到基于标记语言配置的数字人标准标记协议,应用于与所配置的数字人标准标记协议适配的解析引擎,所述解析引擎支持不同的渲染引擎,具体可以包括如下步骤:
55.步骤101,通过解析引擎接收针对数字人的驱动数据包,并解析驱动数据包得到驱动信息;
56.在本技术实施例中,为了实现驱动渲染引擎的通用性以及上游服务场景使用的方
便性,本技术实施例提出了基于所提出的数字人标准标记协议,以及与此标记协议适配的解析引擎对数字人的相关驱动标准进行统一,所提出的可以是标准的vaml(virtual avatar markup language,虚拟数字人标记语言)语言,以基于所提出的vaml语言控制渲染驱动引擎,其可类似与html语言(hyper text markup language,超文本标记语言,可通过专门的浏览器解析识别为网页),对数字人在预设时刻所执行的预设事件进行描述,例如描述一段时间内此解析引擎所需渲染的数字人、数字人说话的文本、什么时刻做什么动作和/或表情,以及展示的卡片等。
57.类似html语言具有对其进行解析的浏览器,本技术实施例所提出的vaml语言同样也存在对其进行解析的解析引擎,该解析引擎可以是与所配置的数字人标准标记协议适配的vaml引擎。对于上游的服务场景相关的客户端而言,与vaml语言适配的vaml引擎相当于渲染驱动引擎,其可用于快速方便地渲染出服务场景所需要的数字人,并且上游服务场景的相关客户端可按照需求驱动数字人,对于vaml引擎的内部而言,其可以指的是一套数字人渲染驱动框架,其可将与数字人相关的tts(text to speech,语音合成)技术、嘴型驱动、表情驱动、动作驱动、卡片驱动、场景特效道具驱动等进行有机的统一,向上游服务场景屏蔽内部的实现细节,以及支持不同的渲染引擎,所支持的不同渲染引擎可以指的是适用于不同服务场景的不同渲染引擎,例如unity游戏引擎、虚幻引擎等,此时基于vaml语言对不同的渲染引擎进行调用并使得所调用的渲染引擎按照vaml语言所包含的驱动信息对数字人进行驱动,不受下游渲染驱动引擎的升级或者变更的影响。
58.在本技术的一种实施例中,可基于所提出的数字人标准标记协议,以及与此标记协议适配的解析引擎对数字人的相关驱动标准进行统一,可以表现为vaml解析引擎基于vaml协议对任何不同的渲染引擎进行驱动,从而实现对上游不同服务场景的数字人渲染驱动的统一。
59.具体的,可通过vaml解析引擎接收针对数字人的驱动数据包,并对所接收到的驱动数据包进行解析得到用于渲染驱动数字人的驱动信息,其中,所接收的驱动数据包可以为基于所配置的数字人标准标记协议(即vaml语言)的数据包,其可用于对数字人在预设时刻进行预设事件的控制,即基于vaml语言的驱动数据包所解析得到的驱动信息,实现后续对数字人进行的相应驱动。
60.在实际应用中,参照图2,示出了本技术实施例提供的数字人驱动的系统框架示意图,在对数字人进行基于驱动信息的驱动过程中,除了涉及到解析引擎12外,还可涉及到用户系统11,以及解析引擎12可整合不同的渲染引擎13,可以在接收用户系统11所发送的针对数字人的构建信息之后,通过解析引擎12基于所接收的构建信息生成与预设场景适配的数字人,其中,所接收的构建信息可以包括适用于预设场景的数字人信息、数字人装扮信息、数字人声音信息和数字人动作信息,以便用于后续的数字人渲染与驱动,以及传输至与上游的服务场景的客户端进行播放。
61.其中,除了基于所接收的构建信息对数字人进行生成以外,通过解析引擎所接收的用户系统发送的针对数字人的驱动数据包,可以是由用户系统将基于构建信息确定的数字人需要展示的内容信息转换为数字人标准标记协议的数据包,即其所用于解析的驱动数据包可基于将用户系统所发送的针对数字人的构建信息,按照vaml语言的协议进行封装得到。具体的,主要是将基于构建信息确定的数字人需要展示的内容信息转换为数字人标准
标记协议的数据包,在转换后的驱动数据包中采用用于表示预设事件的元素,以及预设事件的元素具有的用于表示预设时刻的起始位置属性配置数字人需要展示的内容信息,而数字人需要展示的内容信息可以包括在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件等,此时可将在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件等,按照vaml语言的协议封装为相应事件的相关元素,以及在此元素下配置表示预设时刻的起始位置属性以及属性值,实现对驱动数据包的封装。
62.在一种优选的实施例中,此时不仅可将数字人声音信息和数字人动作信息按照vaml语言中在预设时刻进行预设事件的控制的形式进行封装,在基于构建信息生成与预设场景适配的数字人之后,还可以基于适用于预设场景的数字人信息从解析引擎所整合的渲染引擎中确定与预设场景对应的渲染引擎,通过解析引擎调用渲染引擎,并通过所调用的渲染引擎预先对所构建的数字人以及预设场景进行渲染,实现对渲染数字人的预先渲染,这里的预先渲染可以指的是基于数字人的构建信息对数字人进行静态渲染,以便后续在驱动数字人使其动态渲染时能够直接对预先静态渲染的数字人进行驱动,降低数字人在上游预设场景客户端中的播放时延。
63.在对所接收到的数字人的驱动数据包进行解析时,可通过解析引擎对驱动数据包中用于表示预设事件的元素,以及所述预设事件的元素具有的用于表示预设时刻的起始位置属性,进行实时解析得到数字人的驱动信息,其驱动信息可以包括在预设时刻的说话文本信息、动作文本信息、卡片文本信息以及表情文本信息,此时还可将说话文本信息实时转化为流式的语音数据,并在流式语音转化过程中基于说话文本信息、动作信息以及表情信息生成对应的在预设时刻的嘴型数据、表情数据与动作数据,以便按照所生成的数据对预先渲染的数字人进行驱动。
64.步骤102,通过解析引擎调用渲染引擎,并在所调用的渲染引擎中根据驱动信息驱动预先渲染的数字人。
65.解析引擎所接收到的驱动数据包可用于控制数字人在预设时刻执行预设事件,那么基于驱动数据包所解析得到的驱动信息也可用于描述一段时间内此解析引擎所需渲染的数字人、数字人说话的文本、什么时刻做什么动作和/或表情,以及展示的卡片等,此时可通过解析引擎调用渲染引擎,在所调用的渲染引擎中根据驱动信息驱动预先渲染的数字人,实现对预先静态渲染的数字人的动态驱动。
66.所调用的渲染引擎可基于适用于预设场景的数字人信息从解析引擎所整合的多个不同渲染引擎中确定,在调用不同的渲染引擎在对数字人进行驱动时,能够无关乎所需渲染的服务场景以及相关具体实现,例如数字人所在的服务场景、数字人是怎么渲染的、动作是怎么发出的等细节,可仅通过解析引擎基于所提出的数字人标准标记协议,调用驱动渲染引擎对预先渲染的数字人进行在某个时刻指定事件的驱动,例如在什么场景下要说什么话,在说第几个字的时候做什么动作,到第几个字后需要换什么卡片等,即可完成驱动。
67.需要说明的是,对于vaml引擎的内部而言,其可以指的是一套数字人渲染驱动框架,在框架中将渲染引擎、游戏引擎、表情驱动等进行集成,其中渲染引擎用于对数字人进行渲染,渲染引擎可以是不统一的,渲染每个素材的渲染引擎可以不同,只是在vaml引擎和渲染引擎间设置了标准的一套协议,即vaml语言,此时并不需要关心所采用的渲染引擎是
什么,只需要在不同时刻进行自我决策,以确定在某个时刻触发某个动作渲染某种特效或道具,在整合到vaml引擎的渲染引擎均可以按照vaml协议进行数字人渲染,即vaml引擎可以通过vaml协议对任何渲染引擎进行驱动,在后续存在需要更换渲染引擎时只需要更换引擎的实现部分,实现数字人部分的渲染与驱动,大大提高不同的服务场景下数字人渲染驱动的开发效率。
68.在本技术的一种实施例中,在所调用的渲染引擎中根据驱动信息驱动预先渲染的数字人时,具体可通过解析引擎将所生成的在预设时刻的语音数据、嘴型数据、表情数据与动作数据实时发送给所调用的渲染引擎,然后通过渲染引擎获取预先渲染的数字人,并基于在预设时刻的语音数据、嘴型数据、表情数据与动作数据驱动预先渲染的数字人进行播放,以将所播放的数字人推送至用户系统。
69.其中,驱动信息还包括在预设时刻的卡片文本信息,在驱动预先渲染的数字人播放的过程中,还可以在预设场景中按照预设时刻插入预设时刻的卡片文本信息,所插入的卡片信息可以包括交互类型的卡片和非交互的卡片(即纯展示),交互类型的卡片可以为用户在可进行触控响应的卡片,例如在直播场景中,可以在数字人的下方区域通过卡片显示商品信息,此时当用户点击此商品信息的卡片后可以跳转至购买界面等。
70.本技术实施例中,涉及到基于标记语言配置的数字人标准标记协议,应用于与所配置的数字人标准标记协议适配的解析引擎,与数字人标准标记协议适配的解析引擎可以支持不同的渲染引擎,此时可通过解析引擎对所接收到的数字人的驱动数据包进行解析得到驱动信息,然后通过解析引擎调用渲染引擎根据驱动信息对预先渲染的数字人进行驱动,其中解析引擎所接到的驱动数据包可以是基于所配置的数字人标准标记协议的数据包,其可用于控制数字人在预设时刻执行预设事件的控制。即可基于所提出的数字人标准标记协议,以及与此标记协议适配的解析引擎对数字人的相关驱动标准进行统一,对于不同的渲染引擎在对数字人进行驱动时能够无关乎所需渲染的场景以及相关实现,仅通过解析引擎基于所提出的数字人标准标记协议,调用驱动渲染引擎对预先渲染的数字人进行在某个时刻指定事件的驱动即可,可基于数字人标准标记协议对数字人的制作进行规范进而统一数字人的渲染驱动,使得数字人的渲染与驱动不存在相关服务场景的逻辑,以应对上游不同服务场景,对数字人的渲染驱动方面进行复用,且基于此规范统一且约束化渲染驱动的数字人标准标记协议,可不局限于任意数据解析方案,以及任意渲染驱动系统,不仅对上游服务场景的对接进行统一,且不受下游渲染驱动引擎的升级或者变更的影响。
71.参照图3,示出了本技术的另一种数字人驱动方法实施例的步骤流程图,涉及到基于标记语言配置的数字人标准标记协议,应用于与所配置的数字人标准标记协议适配的解析引擎,具体可以包括如下步骤:
72.步骤301,通过解析引擎对驱动数据包进行实时解析得到数字人的驱动信息,并基于驱动信息生成在预设时刻的嘴型数据、表情数据与动作数据;
73.在本技术实施例中,可基于所提出的数字人标准标记协议,以及与该标记协议适配的解析引擎对数字人的相关驱动标准进行统一,具体可通过解析引擎基于所提出的数字人标准标记协议vaml语言调用渲染引擎进行驱动。
74.所提出的vaml语言与html语言类似,其可由用户系统将基于针对数字人的构建信息所确定的数字人需要展示的内容信息,进行数字人标准标记协议的数据包的封装或者转
换实现,其中,针对数字人的构建信息可以包括适用于预设场景的数字人信息、数字人装扮信息、数字人声音信息和数字人动作信息。
75.具体的,主要是将基于构建信息确定的数字人需要展示的内容信息转换为数字人标准标记协议的数据包,在转换后的驱动数据包中采用用于表示预设事件的元素,以及预设事件的元素具有的用于表示预设时刻的起始位置属性配置数字人需要展示的内容信息,而数字人需要展示的内容信息可以包括在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件等,此时可将在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件等,按照vaml语言的协议封装为相应事件的相关元素,以及在此元素下配置表示预设时刻的起始位置属性以及属性值,实现对驱动数据包的封装。
76.在通过解析引擎对驱动数据包进行实时解析得到数字人的驱动信息时,所解析得到的驱动信息可以包括在预设时刻的说话文本信息、动作文本信息、卡片文本信息以及表情文本信息,还可基于驱动信息生成在预设时刻的嘴型数据、表情数据与动作数据,具体可表现为将说话文本信息实时转化为流式的语音数据,并在流式语音转化过程中基于说话文本信息、动作信息以及表情信息生成对应的在预设时刻的嘴型数据、表情数据与动作数据,以便后续基于所生成的数据对数字人进行播放驱动。
77.步骤302,通过渲染引擎基于在预设时刻的语音数据、嘴型数据、表情数据与动作数据驱动预先渲染的数字人进行播放,以及在预设场景中按照预设时刻插入预设时刻的卡片文本信息。
78.解析引擎所接收到的驱动数据包可用于控制数字人在预设时刻执行预设事件,那么基于驱动数据包所解析得到的驱动信息也可用于描述一段时间内此解析引擎所需渲染的数字人、数字人说话的文本、什么时刻做什么动作和/或表情,以及展示的卡片等,此时可通过解析引擎调用渲染引擎,在所调用的渲染引擎中根据驱动信息驱动预先渲染的数字人,实现对预先静态渲染的数字人的动态驱动。
79.具体可表现为通过渲染引擎基于在预设时刻的语音数据、嘴型数据、表情数据与动作数据驱动预先渲染的数字人进行播放,以及在预设场景中按照预设时刻插入预设时刻的卡片文本信息,并将所播放的数字人推送至用户系统。
80.示例性地,参照图4,示出了本技术实施例提供的数字人驱动的应用场景图,假设对于解析引擎13(即vaml引擎)的上游存在预设场景客户端,其预设场景可以包括直播场景、客服场景与助理场景等,适用于这些预设场景的数字人信息可以包括数字虚拟人直播、数字虚拟人客服、数字虚拟人助手等。
81.对于数字人驱动的过程,首先,用户系统可以确定需要使用的数字人,在用户系统中内置有虚拟人为用户按照服务选择提供人物构建,即可确定适用于预设场景的数字人信息,此时用户还可在用户系统上传自制的遵循平台3d资源规范的数字人,在确定与预设服务场景相应的数字人后,可装扮选中的数字人,此时同样使用内置的服道化,对人物装扮进行选择,也同样可以上传自制的同样需要遵循平台资源规范的装扮信息,即可确定数字人装扮信息,此时还可以基于内置的声音与动作,对数字人的动作、声音等进行选择,即可确定数字人声音信息和数字人动作信息,此时用户还可以在用户系统上传自制的遵循平台3d资源规范的声音信息和动作信息;其次,可以开启一路渲染引擎,并通过渲染引擎制定前述
步骤选择的数字人,并通过渲染引擎预先对所构建的数字人以及预设场景进行静态渲染,便后续在进行渲染时能够快速确定数字人,减少播放时延,此时用户系统还可根据针对数字人的构建信息经过内部计算得出需要虚拟人展示的内容,例如直播场景中的数字人、物品展示以及其他信息等,并将所展示的内容转化成vaml协议,以便后续vaml引擎可对所接收到的vaml协议的驱动数据包进行解析得到数字人在预设时刻的说话文本信息、动作文本信息、表情文本信息与卡片文本信息,并在将说话文本信息实时转化为流式的语音数据的过程中,还可在vaml引擎内部可以加入相关算法,例如文本转语音、文本转动作、文本转面部驱动等实现,将说话文本信息、动作信息以及表情信息生成对应的在预设时刻的嘴型数据、表情数据与动作数据,此时vaml引擎可将生成的语音数据、嘴型数据、表情数据、动作数据每帧实时推送到渲染引擎播放,此渲染可以为动态渲染,在接收到vaml语言后能够快速获取对应的数字人进行相关渲染控制,降低数字人的播放时延,在播放的过程中,可基于在预设时刻的语音数据、嘴型数据、表情数据与动作数据驱动所述预先渲染的数字人进行播放,并在预设场景中按照预设时刻插入预设时刻的卡片文本信息,例如在服务指定的时间点插入卡片、特效、道具等,最终可将渲染出来的数字人和声音推送到上游服务场景进行播放。
82.以直播场景为例,可将所展示的内容转化成vaml协议,示例性地,所转化为的vaml语言可以如下所示:
83.[0084][0085]
基于在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件等需要展示的内容,主要可基于用于表示预设事件的元素进行封装,例如包括元素《scene》、《section》、《avatar》、《room》、《frame》、《interact》、《speech》以及《action》等,其中,vaml语言中的《scene》可以用于表示剧本中的一个场景,《section》可以用于表示场景中的一个场景片段,《avatar》可以用于表示场景片段中的虚拟主播,《room》可以用于表示场景片段中的房间信息,《frame》用于表示场景片段中的h5层,《interact》可以用于表示场景片段中端上的交互信息,《speech》可用于表示场景片段中的说话内容。
[0086]
(1)具体的,对于表示剧本中的一个场景的《scene》元素,例如直播场景:
[0087]
[0088][0089]
其中,位于《scene》元素下的子元素可以包括表示场景中的一个场景片段的《section》元素。
[0090]
(2)对于表示场景中的一个场景片段的《section》元素,例如:
[0091][0092]
其中,《section》元素的属性unique_code,其的取值可以为uuid,可用于表示section身上绑定的唯一值,位于《section》元素下的子元素可以包括《avatar》、《room》、《frame》、《interact》以及《speech》。
[0093]
(3)对于表示场景片段中的虚拟主播《avatar》,例如:
[0094]
avatar character_code="ch_h9htqeniau"》
[0095]
《action begin_index="2"end_index="4"intent="tag_vaml_emo_pos"
[0096]
interrupt="false"/》
[0097]
《action begin_index="12"end_index="15"intent="tag_vaml_emo_pos"
[0098]
interrupt="false"/》
[0099]
《action begin_index="17"end_index="17"intent="tag_vaml_indicate_
default"
[0100]
interrupt="false"/》
[0101]
《/avatar》
[0102]
其中,《avatar》元素的属性为character_code,其的取值可以为人物code,用于虚拟人构建平台中人物唯一code,位于《avatar》元素下的子元素可以包括《action》。
[0103]
(4)对于用于表示所执行动作事件的元素《action》,例如:
[0104]
《action begin_index="2"end_index="4"intent="tag_vaml_emo_pos"
[0105]
interrupt="false"/》
[0106]
其中,《action》元素的属性可以包括用于预设事件在预设时刻的起始位置属性,例如begin_index=文本中起始触发位置,用于表示speech中文本的起始位置;end_index=文本中结束位置,用于表示speech中文本的起结束位置;intent=意图,用于表示行为标签值。其属性值还可以包括interrupt=true/false,其中true表示该行为可以被打断的,false表示该行为是不可打断的。
[0107]
(5)对于表示场景片段中的房间信息《room》,其与虚拟人耦合,只能在unity中实现,例如:
[0108][0109]
其中,《room》元素的属性可以包括layout=code,主要指的是布局的code;background=url,用于描述2d背景图;bgm=url,用于描述背景音乐。位于《room》元素下的子元素可以包括《layout》、《background》与《bgm》。
[0110]
(6)对于表示布局的元素《layout》,例如:
[0111]
《layout code="bizspace::default"/》
[0112]
其中,《layout》元素的属性可以包括code=bizspace::default,用于描述布局的code。
[0113]
(7)对于表示背景的元素《background》,例如:
[0114]
《background url=""/》
[0115]
其中,《background》元素的属性可以包括url=背景图,用于描述2d背景图。
[0116]
(8)对于表示场景的元素《scene》,例如:
[0117]
《scene url=""/》
[0118]
其中,《scene》元素的属性包括url=打包好的场景资源文件url,用于描述场景资源文件。
[0119]
(9)对于表示场景片段中的《frame》,服务场景个性化卡片,不依赖unity中能力,存展示类卡片。如需与用户互动,移步至标签,如需unity能力才能实现的,移步至《room》标签,例如:
[0120]
《frame》
[0121]
《card begin_index="1"end_index="8"code="bizspace::subtitle"data="
家用大功率吹风机,"/》
[0122]
《card begin_index="9"end_index="15"code="bizspace::subtitle"data="不伤发快速干发。"/》
[0123]
《card begin_index="15"end_index="26"code="bizspace::subtitle"data="然后它的附加功能是速干的。"/》
[0124]
《/frame》
[0125]
其中,《frame》元素下的子元素包括《card》。
[0126]
(10)对于描述卡片信息的元素《card》,其为不同服务场景下自定义卡片。此处code为卡片平台上唯一身份,data为卡片渲染需要的服务数据,数据格式由卡片自己定义,例如:
[0127]
《card begin_index="15"end_index="26"code="bizspace::subtitle"data="然后它的附加功能是速干的。"/》
[0128]
其中,《card》元素的属性可以包括begin_index=文本中起始触发位置,用于描述speech中文本的起始位置;end_index=文本中结束位置,用于描述speech中文本的结束位置;code=卡片的唯一id,用于描述卡片平台中的唯一id;data=卡片展会需要的数据,用于描述卡片展会需要的数据。
[0129]
(11)对于表示场景片段中端上的交互信息《interact》,交互卡片由各个端上承接,vaml只负责在对应的时机触发和销毁卡片,例如:
[0130]
《interact》
[0131]
《signal begin_index="2"end_index="4"code=""data=""/》
[0132]
《/interact》
[0133]
其中,《interact》元素下的子元素可以包括《signal》元素。
[0134]
(12)对于元素《signal》,例如:
[0135]
《signal begin_index="2"end_index="4"code=""data=""/》
[0136]
其中,《signal》元素的属性可以包括begin_index=文本中起始触发位置,用于描述speech中文本的起始位置;end_index=文本中结束位置,用于描述speech中文本的结束位置;code=卡片唯一的值,用于描述卡片唯一值由端上场景自己管理,用于控制其卡片展示和销毁;data=卡片展会需要的数据,用于描述卡片展会需要的数据。
[0137]
(13)对于表示场景片段中的说话内容《speech》,例如:
[0138]
《speech》
[0139]
家用大功率吹风机,不伤发快速干发。
[0140]
《/speech》
[0141]
其中,《speech》元素下的子元素可以包括文本。
[0142]
在一种优选的实施例中,对上述基于vaml协议转换的驱动数据包进行实时解析后,可以得到数字人的驱动信息,例如对属性值begin_index与end_index的属性值解析得到预设时刻,并对元素《speech》解析得到数字人的说话文本信息“家用大功率吹风机,不伤发快速干发”,并将此说话文本信息实时转化为流式的语音数据,以及在流式语音转化过程中基于说话文本信息、动作信息以及表情信息生成对应的在预设时刻的嘴型数据、表情数据与动作数据,以在文本开始的预设时刻按照嘴型数据、表情数据与动作数据驱动数字人
发出“家用大功率吹风机,不伤发快速干发”的语音。需要说明的是,对于表示其他预设事件的其他元素,所进行解析以及驱动的过程与前述类似,对此,本技术不加以限制。
[0143]
本技术实施例中,可基于所提出的数字人标准标记协议,以及与此标记协议适配的解析引擎对数字人的相关驱动标准进行统一,对于不同的渲染引擎在对数字人进行驱动时能够无关乎所需渲染的场景以及相关实现,仅通过解析引擎基于所提出的数字人标准标记协议,调用驱动渲染引擎对预先渲染的数字人进行在某个时刻指定事件的驱动即可,可基于数字人标准标记协议对数字人的制作进行规范进而统一数字人的渲染驱动,使得数字人的渲染与驱动不存在相关服务场景的逻辑,以应对上游不同服务场景,对数字人的渲染驱动方面进行复用,且基于此规范统一且约束化渲染驱动的数字人标准标记协议,可不局限于任意数据解析方案,以及任意渲染驱动系统,不仅对上游服务场景的对接进行统一,且不受下游渲染驱动引擎的升级或者变更的影响。
[0144]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术实施例并不受所描述的动作顺序的限制,因为依据本技术实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术实施例所必须的。
[0145]
参照图5,示出了本技术的一种数字人驱动装置实施例的结构框图,涉及到基于标记语言配置的数字人标准标记协议,应用于与所配置的数字人标准标记协议适配的解析引擎,所述解析引擎支持不同的渲染引擎,具体可以包括如下模块:
[0146]
驱动数据包解析模块501,用于接收针对数字人的驱动数据包,并解析所述驱动数据包得到驱动信息;其中,所接收的驱动数据包为基于所配置的数字人标准标记协议的数据包,用于控制数字人在预设时刻执行预设事件;
[0147]
数字人驱动模块502,用于调用渲染引擎,并在所调用的渲染引擎中根据所述驱动信息驱动预先渲染的数字人。
[0148]
在本技术的一种实施例中,在接收针对数字人的驱动数据包之前,所述装置还可以包括如下模块:
[0149]
构建信息接收模块,用于接收用户系统发送的针对数字人的构建信息;所述构建信息包括适用于预设场景的数字人信息、数字人装扮信息、数字人声音信息和数字人动作信息;
[0150]
数字人生成模块,用于通过所述解析引擎基于所述构建信息生成与预设场景适配的数字人,以便对所构建的数字人进行预先渲染。
[0151]
在本技术的一种实施例中,在基于所述构建信息生成与预设场景适配的数字人之后,所述装置还可以包括如下模块:
[0152]
渲染引擎确定模块,用于基于所述适用于预设场景的数字人信息从所述解析引擎所整合的渲染引擎中确定与预设场景对应的渲染引擎;
[0153]
数字人渲染模块,用于通过所述解析引擎调用所述渲染引擎,并通过所调用的渲染引擎预先对所构建的数字人以及预设场景进行渲染,以便驱动预先渲染后预设场景中的数字人。
[0154]
在本技术的一种实施例中,驱动数据包解析模块501可以包括如下子模块:
[0155]
驱动数据包接收子模块,用于通过所述解析引擎接收用户系统发送的针对数字人的驱动数据包;所述针对数字人的驱动数据包为由所述用户系统将基于所述构建信息确定的数字人需要展示的内容信息转换为数字人标准标记协议的数据包;其中,在转换后的驱动数据包中采用用于表示预设事件的元素,以及所述预设事件的元素具有的用于表示预设时刻的起始位置属性配置数字人需要展示的内容信息,所述数字人需要展示的内容信息包括在预设时刻的数字人需要执行的说话事件、动作事件与表情事件,以及在预设场景中在预设时刻的卡片插入事件。
[0156]
在本技术的一种实施例中,驱动数据包解析模块501可以包括如下子模块:
[0157]
驱动数据包解析子模块,用于数字人通过所述解析引擎对所述驱动数据包中用于表示预设事件的元素,以及所述预设事件的元素具有的用于表示预设时刻的起始位置属性,进行实时解析得到所述数字人的驱动信息;所述驱动信息包括在预设时刻的说话文本信息、动作文本信息、卡片文本信息以及表情文本信息。
[0158]
在本技术的一种实施例中,数字人驱动模块502可以包括如下子模块:
[0159]
数据转化子模块,用于将所述说话文本信息实时转化为流式的语音数据,并在流式语音转化过程中基于所述说话文本信息、动作信息以及表情信息生成对应的在预设时刻的嘴型数据、表情数据与动作数据;
[0160]
数据发送子模块,用于通过所述解析引擎将所生成的在预设时刻的语音数据、嘴型数据、表情数据与动作数据实时发送给所调用的渲染引擎;
[0161]
数字人驱动子模块,用于通过所述渲染引擎获取预先渲染的数字人,并基于在预设时刻的语音数据、嘴型数据、表情数据与动作数据驱动所述预先渲染的数字人进行播放,以将所播放的数字人推送至用户系统。
[0162]
在本技术的一种实施例中,所述驱动信息还包括在预设时刻的卡片文本信息,数字人驱动模块502可以包括如下子模块:
[0163]
卡片信息插入子模块,用于在驱动所述预先渲染的数字人播放的过程中,在预设场景中按照预设时刻插入所述预设时刻的卡片文本信息。
[0164]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0165]
本技术实施例还提供了一种电子设备,包括:
[0166]
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述数字人驱动方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0167]
本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述数字人驱动方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0168]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0169]
本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可
用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0170]
本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0171]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0172]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0173]
尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
[0174]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0175]
以上对本技术所提供的数字人驱动方法、装置、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1