虚拟角色的直播方法及装置、计算机存储介质、终端与流程

文档序号:33031854发布日期:2023-01-20 21:01阅读:31来源:国知局
虚拟角色的直播方法及装置、计算机存储介质、终端与流程

1.本技术涉及视频技术领域,尤其涉及一种虚拟角色的直播方法及装置、计算机存储介质、终端。


背景技术:

2.伴随着虚拟现实和增强现实技术的发展,涌现了一批具有代表性的虚拟角色,虚拟直播技术应运而生。虚拟直播技术是指由虚拟角色替代真人主播进行视频制作的技术。虚拟直播技术通常是通过捕捉真人演员的表演,实时驱动虚拟角色同步表演。现有技术的方案中,通常只关注真人表演到虚拟角色上的复现,就直播内容而言,虚拟角色的动作和表情等完全依赖于真人主播,从而导致虚拟角色的直播内容较为单一,灵活性较差。


技术实现要素:

3.本技术解决的技术问题是如何使虚拟角色的直播内容更加丰富、灵活。
4.为解决上述技术问题,本技术实施例提供一种虚拟角色的直播方法,所述方法包括:获取第一用户图像,所述第一用户图像包括第一用户的影像;对所述第一用户的状态信息进行重定向处理,生成用于驱动第一虚拟角色的第一驱动数据,其中,所述第一用户的状态信息是根据所述第一用户图像得到的;获取触发指令,所述触发指令是由外部操作触发生成的;根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据;其中,所述第二驱动数据是根据所述触发指令得到的用于驱动所述第一虚拟角色的驱动数据,所述第三驱动数据是根据所述触发指令得到的用于驱动虚拟直播场景中的元素的驱动数据。
5.可选的,所述外部操作为以下任意一项:观众发出的互动操作、针对第一游戏角色的操作和指示所述第一虚拟角色和第二虚拟角色进行互动的操作;其中,所述第一游戏角色为所述第一虚拟角色关联的游戏角色,所述第二虚拟角色是由第二用户驱动的虚拟角色。
6.可选的,根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据之前,所述方法还包括:获取第一用户的音频数据;对所述音频数据进行音色转换处理,以得到转换后的音频数据,其中,转换后的音频数据的音色为目标音色,所述目标音色取决于所述第一虚拟角色;根据所述转换后的音频数据和所述第一驱动数据,生成所述直播视频。
7.可选的,根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据之前,所述方法还包括:根据所述触发指令,从预制数据库中选择所述触发指令关联的第二驱动数据和/或第三驱动数据。
8.可选的,所述触发指令是在预设的时间窗口内获取的,根据所述触发指令,从预制数据库中选择所述触发指令关联的第二驱动数据和/或第三驱动数据包括:判断所述时间窗口内是否已获取过具有相同的触发指令,如果否,则根据所述触发指令从预制数据库中
选择所述触发指令关联的第二驱动数据和/或第三驱动数据。
9.可选的,所述第三驱动数据包括:虚拟道具的移动轨迹,所述移动轨迹包括所述虚拟道具在多个时刻下的位置,根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据包括:当所述虚拟道具的位置和所述第一虚拟角色之间的距离小于或等于第一预设阈值,触发获取第四驱动数据;根据所述第一驱动数据和所述第四驱动数据,确定用于生成所述直播视频的驱动数据。
10.可选的,所述方法还包括:获取第五驱动数据,所述第五驱动数据是对第二用户的状态信息进行重定向处理生成的用于驱动第二虚拟角色的驱动数据;根据所述第五驱动数据,在所述第一虚拟角色的虚拟直播场景中显示所述第二虚拟角色。
11.可选的,所述触发指令还用于触发所述第二虚拟角色对所述外部操作进行响应,根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据包括:根据所述第二驱动数据和第六驱动数据,得到所述用于生成所述直播视频的驱动数据;其中,所述第六驱动数据是根据所述触发指令生成的用于驱动所述第二虚拟角色的驱动数据。
12.本技术实施例还提供一种虚拟角色的直播装置,所述装置包括:第一获取模块,用于获取第一用户图像,所述第一用户图像包括第一用户的影像;第一生成模块,用于对所述第一用户的状态信息进行重定向处理,生成用于驱动第一虚拟角色的第一驱动数据,其中,所述第一用户的状态信息是根据所述第一用户图像得到的;第二获取模块,用于获取触发指令,所述触发指令是由外部操作触发生成的;第二生成模块,用于根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据;其中,所述第二驱动数据是根据所述触发指令得到的用于驱动所述第一虚拟角色的驱动数据,所述第三驱动数据是根据所述触发指令得到的用于驱动虚拟直播场景中的元素的驱动数据。
13.本技术实施例还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的虚拟角色的直播方法的步骤。
14.本技术实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的虚拟角色的直播方法的步骤。
15.为了解决上述技术特征,本技术实施例还提供一种虚拟角色的直播装置,所述装置包括:
16.本技术实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的虚拟角色的直播方法的步骤。
17.本技术实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的虚拟角色的直播方法的步骤。
18.与现有技术相比,本技术实施例的技术方案具有以下有益效果:
19.本技术实施例的方案中,一方面,获取第一用户图像,并根据第一用户图像中确定第一用户的状态信息,然后对第一用户的状态信息进行重定向处理,生成用于驱动第一虚拟角色的第一驱动数据;另一方面,获取由外部操作触发生成的触发指令,然后根据触发指
令确定用于驱动第一虚拟角色的第二驱动数据和用于驱动虚拟直播场景中元素的第三驱动数据,从而根据第一驱动数据、第二驱动数据和/或第三驱动数据得到用于生成直播视频的驱动数据,从而可以根据驱动数据生成第一虚拟角色的直播视频。上述方案中,由于不仅仅是根据由第一用户的状态信息进行重定向处理生成的第一驱动数据来生成直播视频,还根据由触发指令得到的第二驱动数据和/或第三驱动数据来生成直播视频。因此,第一虚拟角色并不完全依赖于第一用户的状态信息,还可以通过触发指令来驱动第一虚拟角色,例如通过触发指令来驱动第一虚拟角色呈现第一用户无法做到的动作或表情等,也可以通过触发指令来驱动第一虚拟角色所在场景中的元素,从而可以使得第一虚拟角色的直播内容更加丰富、灵活。
20.进一步,本技术实施例的方案中,触发指令是由外部操作触发生成的,其中,外部操作可以为以下任意一项:观众发出的互动操作、针对第一游戏角色的操作和指示所述第一虚拟角色和第二虚拟角色进行互动的操作。由此,本技术实施例的方案中,根据触发指令生成第二驱动数据和第三驱动数据,并根据第二驱动数据和第三驱动数据生成直播视频,采用这样的方案,可以使得第一虚拟角色具有强互动的效果。
21.进一步,本技术实施例的方案中,对第一用户的音频数据进行音色转换处理,以得到转换后的音频数据,其中,转换后的音频数据的音色取决于第一虚拟角色。采用这样的方案,可以实现同一用户驱动不同虚拟角色时输出不同音色的音频,也可以实现不同的用户驱动同一个虚拟角色时输出同一音色的音频,从而满足虚拟角色的音色的确定性的要求。
22.进一步,本技术实施例的方案中,只有在判断时间窗口内未获取过具有相同的触发指令的情况下,根据触发指令从预制数据库中选择触发指令关联的第二驱动数据和/或第三驱动数据。采用这样的方案,可以在短时间内获取到大量的触发指令的情况下,确保第一虚拟角色能够及时给出响应,避免出现因大量的触发指令导致卡顿的情况。
附图说明
23.图1是本技术实施例中一种虚拟角色的直播方法的应用场景示意图;
24.图2是本技术实施例中一种虚拟角色的直播方法的流程示意图;
25.图3是图2中步骤s22的一种具体实施方式的流程示意图;
26.图4是本技术实施例中一种直播画面的示意图;
27.图5是本技术实施例中另一种虚拟角色的直播方法的架构示意图;
28.图6是本技术实施例中又一种虚拟角色的直播方法的架构示意图;
29.图7是本技术实施例中一种虚拟角色的直播装置的结构示意图。
具体实施方式
30.如背景技术所述,现有技术的方案中,通常只关注真人表演到虚拟角色上的复现,就直播内容而言,虚拟角色的动作和表情等完全依赖于真人主播,从而导致虚拟角色的直播内容较为单一,灵活性较差。
31.传统的虚拟角色直播技术中,只将真人主播的表演重现到虚拟角色上,虚拟角色的动作和表情完全依赖于真人主播,虚拟角色无法呈现真人主播做不到或者没有做或者做不好的动作和表情,虚拟角色的动作和表情较为受限,导致虚拟角色的直播内容单一,不够
灵活。例如,用户在直播现场无法直接做出的动作可以有:投篮、跳舞、翻滚跳跃等。
32.为了解决上述技术问题,本技术实施例提供一种虚拟角色的直播方法,本技术实施例的方案中,一方面,获取第一用户图像,并根据第一用户图像中确定第一用户的状态信息,然后对第一用户的状态信息进行重定向处理,生成用于驱动第一虚拟角色的第一驱动数据;另一方面,获取由外部操作触发生成的触发指令,然后根据触发指令确定用于驱动第一虚拟角色的第二驱动数据和用于驱动虚拟直播场景中元素的第三驱动数据,从而根据第一驱动数据、第二驱动数据和/或第三驱动数据得到用于生成直播视频的驱动数据,从而可以根据驱动数据生成第一虚拟角色的直播视频。上述方案中,由于不仅仅是根据由第一用户的状态信息进行重定向处理生成的第一驱动数据来生成直播视频,还根据由触发指令得到的第二驱动数据和/或第三驱动数据来生成直播视频。因此,第一虚拟角色并不完全依赖于第一用户的状态信息,还可以通过触发指令来驱动第一虚拟角色,例如通过触发指令来驱动第一虚拟角色呈现第一用户无法做到的动作或表情等,也可以通过触发指令来驱动第一虚拟角色所在场景中的元素,从而可以使得第一虚拟角色的直播内容更加丰富、灵活。
33.为使本技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本技术的具体实施例做详细的说明。
34.参照图1,图1是本技术实施例中一种虚拟角色的直播方法的应用场景示意图。下面结合图1对本技术实施例的应用场景进行非限制性的说明。
35.如图1所示,本技术实施例的方案中,可以采用摄像头11对第一用户10进行拍摄。需要说明的是,本技术实施例的方案中,第一用户10无需穿着动作捕捉服装,无需佩戴表情捕捉设备和眼神捕捉设备等。摄像头11也并非是设置在第一用户10的佩戴设备上。
36.具体而言,第一用户10为摄像头11的拍摄对象,第一用户10可以是能够自主作出动作的生命体,例如,可以是真人演员,但并不限于此。需要说明的是,摄像头11可以是各种现有的适当的拍照设备,本实施例对于摄像头11的类型和数量并不进行限制。
37.在一个具体的例子中,摄像头11的数量为单个,摄像头11可以为rgb(r为红色red的缩写,g为绿色green的缩写,b为蓝色blue的缩写)摄像头;也可以为rgbd(d为深度图depth的缩写)摄像头。也即,摄像头11拍摄得到的图像可以为rgb图像,也可以为rgbd图像等,但并不限于此。
38.进一步地,摄像头11对第一用户10进行拍摄,可以得到第一用户图像,第一用户图像可以包括第一用户10的影像。
39.在一个具体的例子中,第一用户图像可以包括第一用户10脸部的影像,还可以包括第一用户10颈部和肩膀的影像。更进一步地,第一用户图像还可以包括第一用户10全身的影像。
40.进一步地,摄像头11可以和终端12连接,终端12可以是现有的各种具有数据接收和数据处理功能的设备,摄像头11可以将采集到的第一用户图像发送至终端12。其中,所述终端12可以是手机、平板电脑和计算机等,但并不限于此。需要说明的是,本实施例对于摄像头11和终端12之间的连接方式并不进行限制,可以是采用有线连接,也可以是无线连接(例如,蓝牙连接、局域网连接等)。更具体地,摄像头11可以是设置在终端12上的摄像头,例如,可以是手机上的摄像头、电脑上的摄像头等。
41.进一步地,终端12可以根据第一用户图像,生成用于驱动第一虚拟对象13的第一
驱动数据,其中,第一驱动数据和第一用户图像具有相同的时间码。为便于描述,下文将第一用户使用的终端记为第一终端。也即,由第一终端对第一用户图像进行处理,以得到第一驱动数据。
42.其中,第一虚拟对象13可以包括虚拟人、也可以包括虚拟动物、虚拟植物等具有脸部和身体的对象。第一虚拟对象13可以是三维的,也可以是二维的,本技术实施例对此并不进行限制。
43.由上可知,本技术实施例提供的虚拟角色的直播方法可以应用于单相机虚拟直播的场景中,无需设置光学动捕设备或者惯性动捕设备等来捕捉用户的表情、动作等,通过摄像头对用户进行拍摄即可驱动虚拟角色,实现虚拟直播。
44.参照图2,图2是本技术实施例中一种虚拟角色的直播方法的流程示意图。所述方法可以由终端执行,所述终端可以是现有的各种具有数据接收和数据处理能力的终端设备,例如,可以是手机、计算机、物联网设备和服务器等,但并不限于此。更具体地,图2示出的方法可以是由上述的第一终端执行的。图2示出虚拟角色的直播方法可以包括以下步骤:
45.步骤s21:获取第一用户图像,所述第一用户图像包括第一用户的影像;
46.步骤s22:对所述第一用户的状态信息进行重定向处理,生成用于驱动第一虚拟角色的第一驱动数据,其中,所述第一用户的状态信息是根据所述第一用户图像得到的;
47.步骤s23:获取触发指令,所述触发指令是由外部操作触发生成的;
48.步骤s24:根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据;
49.其中,所述第二驱动数据是根据所述触发指令得到的用于驱动所述第一虚拟角色的驱动数据,所述第三驱动数据是根据所述触发指令得到的用于驱动虚拟直播场景中的元素的驱动数据。
50.可以理解的是,在具体实施中,所述方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中;或者,该方法可以采用硬件或者软硬结合的方式来实现,例如用专用的芯片或芯片模组来实现,或者,用专用的芯片或芯片模组结合软件程序来实现。
51.在步骤s21的具体实施中,可以获取第一用户图像,第一用户图像可以是由摄像头对第一用户拍摄得到的。进一步地,第一用户图像包括第一用户的影像。具体而言,第一用户图像可以包括第一用户脸部的影像,还可以包括第一用户身体的影像,但并不限于此。
52.关于第一用户图像的更多内容可以参照上文关于图1的相关描述,在此不再赘述。
53.在步骤s22的具体实施中,可以根据第一用户图像生成用于驱动第一虚拟角色的第一驱动数据。
54.参照图3,图3是图2中步骤s22的一种具体实施方式的流程示意图。如图3所示,步骤s22可以包括步骤s221和步骤s222:
55.步骤s221:根据第一用户图像确定当前时刻第一用户的状态信息;
56.步骤s222:对第一用户的状态信息进行重定向处理,生成用于驱动第一虚拟角色的第一驱动数据。
57.在步骤s221的具体实施中,状态信息可以包括:人脸信息、人体姿态信息和眼神方向信息。其中,第一用户的状态信息可以是根据第一用户图像对第一用户进行还原重建得
到的。其中,当前时刻可以是指第一用户图像的时间码指示的时刻。
58.第一方面,可以根据第一用户图像进行人脸姿态重建,以得到第一用户的人脸信息。其中,人脸信息可以包括脸部姿态信息和脸部表情信息。
59.更具体地,脸部姿态信息用于描述用户脸部的位置和朝向,更具体地,用户脸部的位置和朝向是指用户脸部在三维空间中的位置和朝向。例如,用户脸部的位置可以是用户的脸部相对于摄像头的位置,用户脸部的朝向可以是相对于摄像头的朝向。
60.进一步地,脸部表情信息可以用于描述用户的表情。在一个具体的例子中,脸部表情信息可以是多个混合形状(blend shapes)的权重,其中,多个混合形状可以是预先设置的;脸部表情信息也可以是对多个混合形状进行主成分分析得到的多个主成分向量的权重;还可以是三维特征点等,但并不限于此。
61.第二方面,可以根据第一用户图像进行人体姿态重建,以得到第一用户的人体姿态信息。人体姿态信息可以用于描述用户身体的动作姿态。在一个具体的例子中,人体姿态信息可以是关节角数据,更具体地,关节角数据为关节的角度。
62.第三方面,可以根据第一用户图像进行眼神重建,以得到第一用户的眼神信息。眼神方向信息可以用于描述用户的眼神方向。
63.具体而言,眼球中心位置指向三维瞳孔中心位置的方向即为眼神方向。其中,眼球中心位置为眼球的中心点的位置,三维瞳孔中心位置为瞳孔的中心点的位置。
64.在一个具体的例子中,眼神方向信息可以为三维瞳孔中心位置。更具体地,眼神方向信息可以为三维瞳孔中心位置在以眼球中心位置为坐标原点的球坐标系中的天顶角和方位角。
65.由上,可以通过还原重建操作,得到第一用户的状态信息。
66.在步骤s222的具体实施中,可以根据第一用户的状态信息进行重定向处理,得到第一驱动数据。也即,第一驱动数据是指根据第一用户的状态信息生成的用于驱动第一虚拟角色的驱动数据。
67.需要说明的是,本技术实施例中的驱动数据可以包括用于生成虚拟角色动画的控制器数据,具体表现形式为数字化向量的序列。可将驱动数据转化为ue或unity3d可以接收的数据形式(多个混合形状(blend shapes)的权重和关节角数据),输入渲染引擎,如ue或unity3d,即可驱动虚拟角色的相应部位做出相应的动作。
68.具体而言,第一驱动数据可以包括:第一面部驱动数据、第一眼神驱动数据和第一身体驱动数据。
69.第一方面,可以对第一用户的脸部表情信息进行重定向处理,得到第一面部驱动数据,第一面部驱动数据可以用于驱动第一虚拟角色呈现与第一用户的脸部表情相同的表情。
70.第二方面,可以对第一用户的眼神驱动数据进行重定向处理,得到第一眼神驱动数据,第一眼神驱动数据可以用于驱动第一虚拟角色的眼神方向和第一用户的眼神方向一致。
71.第三方面,可以对第一用户的人体姿态信息进行重定向处理,得到第一身体驱动数据。第一身体驱动数据可以用于驱动第一虚拟角色的身体姿态与第一用户的身体姿态一致,也即,第一身体驱动数据可以驱动第一虚拟角色呈现第一用户相同的身体姿态。其中,
第一身体驱动数据可以包括:用于驱动第一虚拟角色的四肢的第一四肢驱动数据和用于驱动第一虚拟角色的躯干的第一躯干驱动数据。
72.需要说明的是,对第一用户的状态信息进行重定向的具体过程可以是现有的各种适当的方法,本实施例对此并不进行限制。
73.由上,在第一虚拟角色的直播过程中,可以根据第一驱动数据生成动画视频,然后将动画视频推流至直播平台,得到直播视频,从而实现第一虚拟角色的虚拟直播。观众可以通过访问直播平台来获取直播视频,以在其终端上收看第一虚拟角色的直播。更具体地,通过对第一用户进行拍摄,并根据拍摄得到的第一用户图像,驱动第一虚拟角色重现第一用户的姿态(例如,表情、眼神和动作等),以实现第一虚拟角色的直播。
74.需要说明的是,本技术实施例中所描述的根据驱动数据生成直播视频的过程可以包括:根据驱动数据和虚拟角色、虚拟角色所在的虚拟直播场景生成动画帧序列,然后对动画帧序列进行渲染,得到动画视频。然后可以将动画视频推流至直播平台,得到直播视频。此外,这里的“驱动数据”可以包括第一驱动数据、第二驱动数据、第三驱动数据、第四驱动数据、第五驱动数据和第六驱动数据中的一项或多项。
75.此外,还可以采集第一用户的音频数据,并根据音频数据和第一驱动数据生成动画视频。在具体实施中,可以将音频数据和第一驱动数据输入至第一终端关联的渲染引擎模块,以得到渲染引擎模块输出的动画视频。为便于描述,下文将第一终端关联的渲染引擎模块记为第一渲染引擎模块。
76.需要说明的是,本技术实施例的方案中,可以是本地渲染,也可以是云端渲染。本地渲染是指渲染引擎模块部署于终端本地,云端渲染可以是指渲染引擎模块部署于云端服务器,终端与渲染引擎模块耦接,将驱动数据和/或音频数据上传至云端服务器后生成动画帧序列后进行渲染,以生成动画视频。
77.在一个具体的例子中,采集到第一用户的音频数据之后,可以对第一用户的音频数据进行音色转换,以将第一用户的音色转换为目标音色,并将转换后的音频数据输入至第一渲染引擎模块。由此,可以根据转换后的音频数据和第一驱动数据生成动画视频。其中,目标音色取决于第一虚拟角色。也即,目标音色随第一用户采用的第一虚拟角色的变化而变化。
78.通过这样的方案,每个虚拟角色可以有自己固定的音色,同一个用户直播时采用的虚拟角色不同,输出的音色也不同。不同的用户直播时可以驱动相同的虚拟角色,能够将不同演员的声音转换成固定角色的声音。
79.下面就音色转换的具体方法进行描述。对第一用户音频数据进行音色转换,以得到转换后的音频数据可以包括步骤(1)至步骤(3):
80.步骤(1):提取第一用户的音频数据s中的语义信息。
81.具体而言,可以采用语义识别模型提取第一用户信息的音频数据的语义内容l,其中,语义内容l与音色无关。更具体的,语义识别模型可以采用自动语音识别(automatic speech recognition,简称asr)识别技术提取语义内容l。
82.步骤(2):提取第一用户的音频数据s中的韵律特征信息。
83.具体而言,韵律特征信息可以是指与音色无关的韵律特征信息,例如,可以是基频、语速、顿挫、音量等,但并不限于此。韵律特征信息可以采用韵律特征向量(p1~pn)来表
征。韵律特征信息可以是由一个或多个编码器ma从音频数据s中提取得到的。其中,编码器ma可以是由一个或者多个深度学习网络模型a构成。
84.步骤(3):合成处理,以得到转换后的音频数据。
85.具体而言,可以获取用于表征目标音色的目标特征向量t,然后可以将语义内容l、目标特征向量t和韵律特征向量(p1~pn)进行合成处理,以生成转换后的音频数据。
86.更具体地,可以将语义内容l、目标特征向量t和韵律特征向量(p1~pn)输入至解码器mc进行合成处理,以得到转换后的音频数据。其中,解码器mc可以是由一个或者多个深度学习网络模型构成。
87.其中,目标特征向量t可以是从参考音频信号r中提取的,参考音频信号可以是包含目标音色的音频信号,参考音频信号的时长可以不小于预设时长阈值,其中,预设时长阈值可以是3秒。另外,本实施例对于参考音频信号的内容并不进行限定。
88.进一步地,通过将参考音频信号输入至编码器mb,可以提取出用于表征目标音色的目标特征向量t。其中,编码器mb可以是由一个或者多个深度学习网络模型c构成。
89.在执行步骤(3)之前,还可以对韵律特征信息(p1~pn)进行调整,以得到调整后的韵律特征信息(r1~rn)。相应的,在步骤(3)中,可以根据语义内容l、目标征向量t和调整后的韵律特征信息(r1~rn)进行合成处理,以生成转换后的音频数据。
90.具体而言,可以先判断是否需要对韵律特征信息进行调整。如果韵律特征信息不满足预设要求,和/或,用户期望调整韵律特征以实现声音风格的变换(例如,将低沉的声音风格变换成明快的声音风格、放慢语速、加强顿挫、提升音量等),则可以对韵律特征信息进行调整。如果用户选择仅变换音色,则可以不调整韵律特征信息。其中,所述预设要求可以是根据用户的实际需求设置的,韵律特征信息的调整可以是线性调整。
91.继续参照图2,在第一用户驱动第一虚拟角色进行直播的过程中,还可以根据触发指令驱动第一虚拟角色及其所在的虚拟直播场景中的元素。
92.在其他实施例的方案中,还可以根据第一用户输入的文本内容生成第七驱动数据,第一用户输入的文本内容是第一用户在直播过程中的话语,该文本内容可以是根据第一用户在直播过程中的音频进行语义识别得到的,也可以是第一用户直接输入的。在一个具体的例子中,文本内容可以是在捕获到下文的外部操作之后用户发出的。
93.进一步,可以对第一驱动数据和第七驱动数据进行融合处理,得到用于生成直播视频的驱动数据。融合处理可以是指叠加、替换等,但并不限于此。更具体地,在融合处理中,第七驱动数据的优先级高于第一驱动数据。第七驱动数据的优先级高于第一驱动数据的优先级是指,对于第一虚拟角色的同一部位,优先采用第七驱动数据进行驱动。由此,在虚拟直播过程中,不仅可以由第一用户的状态信息进行驱动,还可以由第一用户的话语来驱动,因此可以丰富直播内容。
94.在步骤s23的具体实施中,可以获取触发指令,触发指令是由外部操作触发生成的。
95.在本技术的一个实施例中,外部操作可以是由第一用户发出的。第一用户可以通过以下任意一种方式来触发生成触发指令:
96.方式一:第一用户可以对预设控件执行预设操作。也即,外部操作可以是第一用户对预设控件执行的预设操作,预设操作可以是点击操作、滑动操作和长按操作等。其中,触
发指令可以随预设控件的不同而不同。
97.方式二:当检测到第一用户说出第一预设关键词或者用户输入第一预设关键词,可以触发生成第一预设关键词对应的触发指令。也即,外部操作可以是第一用户说出第一预设关键词。其中,触发指令可以随第一预设关键词的不同而不同。
98.在具体实施中,可以由语义识别模型对第一用户的音频数据进行识别,当识别到第一用户的音频数据中存在第一预设关键词时,可以生成第一预设关键词对应的触发指令。
99.方式三:当检测到第一用户作出第一预设动作时,可以触发生成第一预设动作对应的触发指令。也即,外部操作可以是第一用户作出第一预设动作,其中,触发指令可以随第一预设动作的不同而不同。
100.在具体实施中,终端上可以设置有动作识别模型来识别第一用户的动作,当第一用户的动作为第一预设动作时,可以生成第一预设动作对应的触发指令。
101.在步骤s24的具体实施中,终端可以根据触发指令从预制数据库中选取触发指令关联的第二驱动数据和/或第三驱动数据。进一步地,可以根据第一驱动数据、第二驱动数据和/或第三驱动数据确定用于生成直播视频的驱动数据。
102.需要说明的是,当根据触发指令未选取第三驱动数据时,第三驱动数据可以为空。相应地,当根据触发指令未选取第二驱动数据时,第二驱动数据可以为空。
103.具体而言,预制数据库中可以包括多个预设驱动数据,多个预设驱动数据可以包括用于驱动第一虚拟角色的驱动数据,也可以包括用于驱动虚拟直播场景中的元素的驱动数据,虚拟直播场景可以是指第一虚拟角色所在的虚拟场景,虚拟直播场景中的元素可以是指虚拟直播场景中的虚拟道具、虚拟特效等。由此,可以通过预设驱动数据来实现预制表情、预制动作、预制特效等。
104.在获取到触发指令之后,可以根据触发指令和预设映射关系,从预制数据库中选择触发指令关联的预设驱动数据。其中,预设映射关系可以是指触发指令和预设驱动数据之间的对应关系。也即,触发指令关联的预设驱动数据是指与触发指令具有对应关系的预设驱动数据。
105.在第一个示例中,根据触发指令选取的预设驱动数据包括驱动第一虚拟角色的驱动数据,记为第二驱动数据。
106.具体而言,第二驱动数据可以包括以下一项或多项:第二面部驱动数据、第二眼神驱动数据和第二身体驱动数据。其中,第二面部驱动数据是指根据触发指令得到的用于驱动第一虚拟角色的脸部表情的驱动数据,第二眼神驱动数据是指根据触发指令得到的用于驱动第一虚拟角色眼神方向的驱动数据,第二身体驱动数据是指根据触发指令得到的用于驱动第一虚拟角色的身体姿态的驱动数据。
107.进一步地,可以根据第二驱动数据和第一驱动数据,确定用于生成直播视频的驱动数据。
108.在第一个例子中,第二驱动数据可以仅包括第二面部驱动数据。在这种情况下,可以采用第二面部驱动数据替换第一驱动数据中的第一面部驱动数据,以得到用于生成直播视频的驱动数据。在这种方案中,可以通过预制的表情(也即,第二面部驱动数据对应的表情)替换捕捉到的第一用户的表情,以得到第一虚拟角色的表情,使得第一虚拟角色的表情
更加丰富、多样。
109.在第二个例子中,第二驱动数据可以仅包括第二身体驱动数据。在这种情况下,可以采用第二身体驱动数据替换第一驱动数据中的第一身体驱动数据,以得到用于生成直播视频的驱动数据。采用这样的方案时,可以选择采用预制动作(也即,第二身体驱动数据对应的动作)替换捕捉到的第一用户的动作,以得到第一虚拟角色的动作,使得第一虚拟角色的动作更加丰富、多样。其中,第二身体驱动数据对应的肢体动作可以是跳舞等。
110.或者,第二驱动数据可以仅包括第二身体驱动数据,可以将第二身体驱动数据叠加至第一身体驱动数据,以得到用于生成直播视频的驱动数据。也即,可以将选择的预制动作(也即,第二身体驱动数据对应的动作)叠加到捕捉到的第一用户动作上,以得到第一虚拟角色的动作。换言之,第一虚拟角色的动作包括第一用户的动作和第二身体驱动数据对应的预制肢体动作。例如,第一身体驱动数据可以仅包括用于驱动躯干的驱动数据,第二驱动数据可以包括用于驱动四肢的驱动数据,由此可以将第二驱动数据和第一身体驱动数据进行叠加。
111.在第三个例子中,第二驱动数据可以仅包括第二眼神驱动数据,如果第一驱动数据中包含第一眼神驱动数据,则可以将第二驱动数据替换第一驱动数据中的第一眼神驱动数据。或者,如果第一驱动数据中未包含第一眼神驱动数据,则可以将第二驱动数据与第一驱动数据进行叠加。
112.在第四个例子中,第二驱动数据可以包括全套驱动数据(也即,第二驱动数据包括第二面部驱动数据、第二眼神驱动数据和第二身体驱动数据)。在这种情况下,可以直接采用第二驱动数据替换第一驱动数据,也即,可以直接将第二驱动数据作为用于生成直播视频的驱动数据。由此,第一虚拟角色的表情、肢体动作等均为第二驱动数据对应的预制表情和预制肢体动作。
113.在具体实施中,第二驱动数据可以带有指定时间码,所述指定时间码用于指定加入预制表情和/或预制动作的时间点。
114.具体而言,将获取触发指令的时刻记为t时刻,指定时间码可以为

t,(t+

t)时刻用于驱动第一虚拟角色的驱动数据可以记为目标驱动数据。也即,(t+

t)时刻用于生成直播视频的驱动数据为目标驱动数据。其中,

t可以是预设的。
115.更具体地,目标驱动数据可以是根据t时刻的第一驱动数据和第二驱动数据确定的。例如,如果第二驱动数据包括全套的驱动数据,则目标驱动数据可以为第二驱动数据。关于根据t时刻的第一驱动数据和第二驱动数据的更多内容,可以参照上文关于根据第一驱动数据和第二驱动数据得到用于生成直播视频的驱动数据的相关描述。
116.进一步地,在t时刻至(t+

t)时刻之间的时间段为过渡时间段,也即,将第一虚拟角色从t时刻的状态过渡到目标驱动数据对应的状态。
117.具体而言,在t时刻至(t+

t)时刻之间的时间段内,可以将t时刻的第一驱动数据和目标驱动数据进行融合,以得到过渡时间段内每个时刻的用于生成直播视频的驱动数据。在融合时,可以对t时刻的第一驱动数据和目标驱动数据进行加权计算。其中,随着时间的推移,t时刻的第一驱动数据的权重逐渐减小,且目标驱动数据的权重逐渐增大。采用这样的方案,可以实现第一虚拟角色的状态的自然过渡。
118.在一个非限制性的例子中,在执行步骤s24之前,可以先计算t时刻的第一驱动数
据和第二驱动数据之间的匹配度,如果计算得到的匹配度大于或等于预设的匹配阈值,则可以根据继续执行步骤s24。如果计算得到的匹配度小于匹配阈值,则可以忽略第二驱动数据。也即,如果计算得到的匹配度小于匹配阈值,则可以继续由第一用户驱动第一虚拟角色,不根据触发指令选取的第二驱动数据驱动第一虚拟角色。换言之,如果计算得到的匹配度小于匹配阈值,则可以不自动地对触发指令进行响应。进一步地,在这种情况下,可以发出提醒信息,所述提醒信息用于向第一用户提醒接收到的触发指令,以使得第一用户人为地对触发指令作出响应,以与外部实现互动。
119.具体而言,所述匹配度可以用于表征驱动数据对应的第一虚拟角色的状态(例如,身体姿态和脸部表情)之间的相似程度。如果两个驱动数据之间的匹配度大于或等于预设的匹配阈值,则这两个驱动数据对应的状态之间的切换是合理、自然的。反之,如果匹配度小于匹配阈值,则可以确定这两个驱动数据对应的状态之间的切换是不合理的。由此,采用上述方案有利于在互动过程中使第一虚拟角色的状态切换更加自然。
120.在第二个示例中,根据触发指令选取的预设驱动数据包括用于驱动虚拟直播场景中元素的驱动数据,记为第三驱动数据。所述元素可以是虚拟道具,但并不限于此。其中,第三驱动数据可以是元素的驱动数据。元素可以是烟花、风雨雷电等,但并不限于此。
121.进一步地,可以根据第三驱动数据和第一驱动数据,确定用于生成直播视频的驱动数据。在具体实施中,用于生成直播视频的驱动数据可以既包括第一驱动数据,又包括第三驱动数据。
122.具体而言,由于第一驱动数据用于驱动第一虚拟角色,第三驱动数据用于驱动虚拟角色场景中的元素,因此第一渲染引擎模块可以根据第一驱动数据和第三驱动数据,生成动画视频。也即,在根据第三驱动数据呈现预制特效的过程中可以同步地捕捉第一用户的表情、姿态等。
123.其中,第三驱动数据也可以具有指定时间码,可以在指定时间码指示的时刻根据第三驱动数据从而生成动画视频。例如,获取触发指令的时刻记为t时刻,可以在(t+

t)时刻根据第三驱动数据生成动画视频。
124.在本技术的另一个实施例中,外部操作可以是指触发第一虚拟角色和外部进行互动的操作。
125.在第一个例子中,外部操作可以是观众发出的互动操作,观众是指观看第一虚拟角色的直播的用户。相应的,触发指令可以是由观众发出的互动操作触发生成的。
126.在具体实施中,观众可以通过自身的终端发出互动操作,观众发出的互动操作可以是点赞、关注、发送弹幕消息、点击虚拟道具等,但并不限于此。
127.在一个非限制性的例子中,触发指令可以是在预设的时间窗口内获取的。时间窗口可以是由第一用户设置的,也即,第一用户在第一虚拟角色的直播过程中可以设置接收触发指令的时间段。
128.例如,可以由第一用户手动设置时间窗口的起始时刻,时间窗口的长度可以是预先设置的,例如,可以是2秒。
129.又例如,时间窗口的起始时刻可以是由第一用户的语音触发设置的。更具体地,当检测到第一用户的语音中包含第二预设关键词,则可以将检测到第二预设关键词的时刻作为时间窗口的起始时刻。
130.进一步地,对于在时间窗口内获取到的每条触发指令,终端可以判断在当前的时间窗口内是否出现过相同的触发指令,如果在当前的时间窗口内未出现过相同的触发指令,则可以从预制数据库中选择和该条触发指令关联的第二驱动数据和/或第三驱动数据。如果在当前的时间窗口内出现过相同的触发指令,则可以忽略该条触发指令。忽略该条触发指令是指不根据该条触发指令选择驱动数据,可以将触发指令删除或丢弃。
131.采用这样的方案,可以应对大量的观众同时进行互动操作的情况,能够针对大量互动操作及时给出响应。
132.进一步地,可以根据观众发出的互动操作触发生成的触发指令,从预制数据库中选择第二驱动数据和/或第三驱动数据。然后根据第一驱动数据、第二驱动数据和/或第三驱动数据确定用于生成直播视频的驱动数据。
133.在一个非限制性的例子中,观众发出的互动操作可以是点击虚拟道具,相应的,根据这一互动操作触发生成的触发指令选择的第三驱动数据可以包括虚拟道具的移动轨迹,移动轨迹可以包括多个时刻下虚拟道具的位置。
134.在虚拟直播场景中,虚拟道具可以与第一虚拟角色发生接触,也可以不与第一虚拟角色发生接触。
135.当虚拟道具和第一虚拟角色之间的距离小于或等于第一预设阈值时,可以触发选择第四驱动数据。其中,第四驱动数据可以是用于驱动第一虚拟角色的数据。
136.其中,虚拟道具的位置是指虚拟道具在第一虚拟角色所在的虚拟直播场景中的位置。虚拟道具和第一虚拟角色之间的距离可以是指虚拟道具的质心位置和第一虚拟角色的接触参考部位的位置之间的距离。其中,接触参考位置可以是根据虚拟道具的类型确定的。例如,虚拟道具为可乐,则参考接触部位可以为手部;虚拟道具为石头,则参考接触部分为头部等,但并不限于此。
137.更具体的,当虚拟道具的位置和第一虚拟角色之间的距离小于或等于第一预设阈值时,可以确定在虚拟直播场景中虚拟道具与第一虚拟角色发生接触,第四驱动数据用于驱动第一虚拟角色表现出与虚拟道具发生接触后发生的状态。
138.进一步地,可以根据第四驱动数据和第一驱动数据确定用于生成直播视频的驱动数据。关于根据第四驱动数据和第一驱动数据确定用于生成直播视频的驱动数据的更多内容,可以参照上文关于第二驱动数据和第一驱动数据确定用于生成直播视频的驱动数据的相关描述,在此不再赘述。
139.需要说明的是,第三驱动数据和第四驱动数据具有时间上的递进关系,当根据第四驱动数据生成直播视频时,可以不再根据触发第四驱动数据的第三驱动数据生成直播视频。
140.在第二个例子中,外部操作可以是针对第一游戏角色的操作。其中,第一游戏角色是第一虚拟角色关联的游戏角色。
141.具体而言,第一游戏角色可以是第一用户在游戏中控制的游戏角色。例如,第一用户可以通过第一终端的外部设备(例如,键盘、鼠标和游戏手柄等)控制第一游戏角色。由此可知,第一游戏角色和第一虚拟角色均是由第一用户控制的。
142.进一步地,针对第一游戏角色的操作可以是改变第一游戏角色在游戏中的状态的操作。更具体地,针对第一游戏角色的操作可以是游戏中其他游戏角色对第一游戏角色的
攻击操作,例如,射击操作等。或者,针对第一游戏角色的操作也可以是第一用户对第一游戏角色的控制操作,例如,更换游戏角色的装备等。其中,其他游戏角色可以是由除第一用户以外的其他游戏玩家控制的。
143.在具体实施中,在游戏过程中,终端可以从接口服务器获取游戏数据,游戏数据可以包括游戏中各个游戏角色和道具等的数据。进一步地,可以对游戏数据进行解析,以识别针对第一游戏角色的操作。例如,当解析确定游戏中某个道具和第一游戏角色的头部之间的距离小于预设距离,则可以确定第一游戏角色的头部受到该道具的攻击。
144.由此,当其他游戏角色对第一游戏角色发出攻击操作,和/或,第一用户对第一游戏角色发出预设的控制操作时,可以生成相应的触发指令。
145.进一步地,可以根据针对第一游戏角色的操作触发生成的触发指令从预制数据库中选择第二驱动数据和/或第三驱动数据。然后根据第一驱动数据、第二驱动数据和第三驱动数据确定用于生成直播视频的驱动数据。
146.参照图4,图4是本技术实施例中一种直播画面的示意图。
147.图4示出的直播画面可以包括第一区域41和第二区域42,其中,第一区域41可以显示游戏画面,游戏画面中可以显示第一用户控制的第一游戏角色和其他游戏角色的游戏过程。第二区域42可以显示直播画面,直播画面包括第一虚拟角色的直播内容。所述直播画面可以显示于第一用户的终端的界面,还可以显示于观众的终端的界面。
148.在第一用户游戏的过程中,可以根据第一驱动数据生成动画视频,以在第二区域42内显示包括第一虚拟角色的视频画面。进一步地,如果第一游戏角色受到上述的控制操作或攻击操作等,可以生成触发指令,并根据触发指令选取第二驱动数据和/或第三驱动数据。
149.进一步地,可以根据第一驱动数据、第二驱动数据和/或第三驱动数据确定用于生成直播视频的驱动数据,然后将生成的直播视频显示于第二区域42内。
150.通过上述方案,可以将针对第一游戏角色的操作映射至第一虚拟角色,由第一虚拟角色对针对第一游戏角色的操作进行响应,采用这样的方案可以实现游戏角色和虚拟角色之间的联动,增强直播的趣味性。
151.在本技术的又一个实施例中,可以在第一虚拟角色所在的虚拟直播场景中显示第二虚拟角色。也即,可以在第一虚拟角色所在的虚拟直播场景中同时显示第一虚拟角色和第二虚拟角色。
152.其中,第二虚拟角色可以是由第二用户驱动的虚拟角色,第二用户和第一用户是不同的用户。
153.在具体实施中,可以从第二用户使用的终端获取第五驱动数据,第五驱动数据是用于驱动第二虚拟角色的驱动数据且第五驱动数据是对第二用户的状态信息进行重定向处理得到的。关于生成第五驱动数据的更多内容可以参照上文关于步骤s21至步骤s22的相关描述,在此不再赘述。为便于描述,下文将第二用户使用的终端记为第二终端。
154.需要说明的是,第一终端和第二终端是不同的终端,也即,第一用户图像和第二用户图像是由不同终端耦接的摄像头采集的,第一用户的状态信息和第二用户的状态信息是由不同的终端计算得到的。
155.第一终端获取到第五驱动数据之后,可以同时根据第一驱动数据和第五驱动数据
确定用于生成直播视频的驱动数据,从而同时显示第一虚拟角色和第二虚拟角色。
156.参照图5,图5是本技术实施例中另一种虚拟角色的直播方法的架构示意图。如图5所示,可以在同一虚拟角色场景中显示不同用户驱动的虚拟角色。
157.具体而言,第一终端计算得到第一驱动数据之后,可以上传至接口服务器,相应的,第二终端计算得到第五驱动数据之后,也可以上传至接口服务器。
158.进一步地,第一终端可以从接口服务器获取第五驱动数据,并将第一驱动数据和第五驱动数据一并输入至第一渲染引擎模块,第一渲染引擎模块可以根据第一驱动数据和第五驱动数据生成包含第一虚拟角色和第二虚拟角色的动画视频。进一步地,可以将动画视频传输至第一视频推流服务器,从而同时在第一虚拟角色的直播间内同时显示第一虚拟角色和第二虚拟角色。
159.相应的,第二终端可以从接口服务器接收第一驱动数据,并将第一驱动数据和第五驱动数据一并输入至第二渲染引擎模块,第二渲染引擎模块可以根据第一驱动数据和第五驱动数据生成包含第一虚拟角色和第二虚拟角色的动画视频。进一步的,可以将动画视频传输至第二视频推流服务器,从而在第二虚拟角色的直播间内同时显示第一虚拟角色和第二虚拟角色。其中,第二渲染引擎模块可以是指第二终端关联的渲染引擎模块。
160.需要说明的是,在其他实施例中,第一终端也可以不经过接口服务器获取第五驱动数据,例如,可以第一终端可以直接从第二终端获取第五驱动数据。
161.在具体实施中,第一终端在获取第五驱动数据之前,可以先获取第二虚拟角色,也即,可以获取第二虚拟角色的模型,具体地,获取关于第二虚拟角色的指令,根据该指令加载第二虚拟角色。进一步地,将第二虚拟角色设置于第一虚拟角色所在的虚拟直播场景中的预设位置处。进一步地,第一终端可以同时显示第一虚拟角色和第二虚拟角色。其中,预设位置可以是由第一用户设置的。相应的,第一用户直播间观众的终端上也可以同时显示第一虚拟角色和第二虚拟角色。
162.相应的,第二终端在获取第五驱动数据之前,可以先获取第一虚拟角色,也即,可以获取第一虚拟角色的模型,具体地,获取第一虚拟角色的指令,加载第一虚拟角色。进一步地,将第一虚拟角色设置于第二虚拟角色所在的虚拟直播场景中的预设位置处。进一步地,第二终端同时显示第一虚拟角色和第二虚拟角色。其中,预设位置可以是由第二用户设置的。相应的,第二用户直播间观众的终端上也可以同时显示第一虚拟角色和第二虚拟角色。
163.进一步地,在同时显示第一虚拟角色和第二虚拟角色的过程中,也可以接收触发指令,触发指令可以是由指示第一虚拟角色和第二虚拟角色进行互动的外部操作触发生成的。其中,指示第一虚拟角色和第二虚拟角色进行互动的外部操作可以是第一用户发出的,也可以是第二用户发出的,但并不限于此。
164.进一步地,接收触发指令之后,可以根据触发指令从预制数据库中选择对应的第二驱动数据和第六驱动数据。其中,第二驱动数据用于驱动第一虚拟角色,第六驱动数据可以用于驱动第二虚拟角色。通过第二驱动数据和第六驱动数据的驱动,第一虚拟角色和第二虚拟角色之间可以发生互动。
165.在一个非限制性的例子中,触发指令用于驱动第一虚拟角色和第二虚拟角色在虚拟直播场景中执行发生接触的互动动作。下文将第一虚拟角色和第二虚拟角色在虚拟直播
场景中发生接触的位置记为目标位置,目标位置可以是根据触发指令确定的。也即,互动动作不同,目标位置也可以是不同的。
166.进一步地,可以根据目标位置和第一虚拟角色的肢体参数,确定第一设定位置,以及根据目标位置和第二虚拟角色的肢体参数,确定第二设定位置。其中,虚拟角色的肢体参数可以是描述生成虚拟角色具体形态的参数,具体地可以指描述虚拟角色肢体的长度的参数。在一个具体的例子中,虚拟角色的肢体参数可以包括:第一虚拟角色的臂长和第二虚拟角色的臂长。第一设定位置和第二设定位置可以指虚拟角色的质心在虚拟场景中的坐标位置。
167.进一步地,可以从预制数据库中获取第一默认驱动数据和第二默认驱动数据,然后采用第一默认驱动数据驱动第一虚拟角色,以及采用第二默认驱动数据驱动第二虚拟角色,其中,默认驱动数据可以是用于驱动虚拟角色移动的驱动数据。
168.更具体地,获取到触发指令的时刻为t时刻,第二驱动数据和第六驱动数据的指定时间码为

t,则在(t+1)时刻至(t+

t)时刻之间可以根据第一默认驱动数据驱动第一虚拟角色自t时刻所在的位置向第一设定位置移动,以及根据第二默认驱动数据驱动第二虚拟角色自t时刻所在的位置向第二设定位置移动。在(t+

t)时刻时,第一虚拟角色可以移动至第一设定位置,第二虚拟角色可以移动至第二设定位置。
169.进一步地,在(t+

t)时刻可以根据第二驱动数据根据第一虚拟角色,以及根据第六驱动数据根据第二虚拟角色,从而使得直播视频中第一虚拟角色和第二虚拟角色进行互动。
170.参照图6,图6是本技术实施例中又一种虚拟角色的直播方法的架构示意图。如图6所示,第一终端可以根据第一用户图像进行还原重建,以得到第一用户的状态信息。进一步地,可以对第一用户的状态信息进行重定向处理,以得到第一驱动数据。关于还原重建和重定向处理的更多内容可以参照上文关于图2的相关描述,在此不再赘述。
171.进一步地,可以将第一驱动数据输入至第一渲染引擎模块,然后将第一渲染引擎模块输出的动画视频发送至直播平台,得到直播视频,观众终端(例如,观众终端1、观众终端2
……
观众终端n)可以访问直播平台,以获取直播视频,从而可以观看虚拟角色的直播。
172.在不同模式下,可以接收触发指令。其中,触发指令可以是从接口服务器获取的,但并不限于此。
173.当第一用户设置与观众进行互动的模式(也即,s1闭合)时,则触发指令可以是由观众发出的互动操作触发生成的。
174.例如,互动操作可以为向第一虚拟角色扔鸡蛋,根据这一互动操作触发生成的触发指令从预制数据库中选择对应的第二驱动数据和第三驱动数据。其中,第二驱动数据可以为空,第三驱动数据可以是向第一虚拟角色扔鸡蛋的驱动数据。当虚拟道具(鸡蛋)与第一虚拟角色之间的距离小于第一预设阈值时,触发调取第四驱动数据,第四驱动数据可以用于驱动第一虚拟角色的头部出现包块。
175.相应的,第一用户还可以人为地对虚拟道具进行响应。例如,第一虚拟角色被鸡蛋打到之后,第一用户可以说出:好疼,并作出疼痛的表情,或者说“没打到”,从而第一虚拟角色可以同时呈现第一用户的表情和语音。
176.又例如,互动操作可以为观众向第一虚拟角色赠送礼物,第一虚拟角色可以对观
众的赠送礼物的行为给予反馈。根据这一互动操作触发生成的触发指令从预制数据库中选择对应的第二驱动数据和第三驱动数据。其中,第三驱动数据可以为空,第二驱动数据可以用于驱动第一虚拟角色执行表示感谢的动作。
177.当第一用户设置与第一游戏角色进行互动的模式(也即,s2闭合)时,触发指令可以是由针对第一游戏角色的操作触发生成的。
178.例如,在游戏中有石头砸向第一游戏角色,触发生成对应的触发指令。进一步地,可以根据该触发指令从预制数据库中选择对应的第二驱动数据和第三驱动数据,其中,第二驱动数据可以为空,第三驱动数据可以是驱动石头砸向第一虚拟角色的驱动数据。
179.当虚拟道具(石头)与第一虚拟角色之间的距离小于第一预设阈值时,触发调取第四驱动数据,第四驱动数据可以用于驱动第一虚拟角色的头部出现包块。
180.相应的,第一用户也可以根据针对第一游戏角色的操作进行反馈。例如,第一虚拟角色被石头砸中时,第一用户可以做出表情且说话,例如说,好疼,是谁打我,且作出疼痛且疑惑的表情。由此,第一用户可以同时驱动第一虚拟角色呈现第一用户的表情和语音。
181.当第一用户设置与其他虚拟角色互动的模式(也即,s3闭合)时,触发指令可以是由指示第一虚拟角色和第二虚拟角色进行互动的操作触发生成的。其中,互动的操作可以是击掌或者握手。
182.例如,当第一用户指示第一虚拟角色和第二虚拟角色进行击掌时,可以先停止对第一用户和第二用户当前实时的动作捕捉。也即,当接收到触发指令时,不再根据第一驱动数据和第五驱动数据生成直播视频。
183.进一步地,可以将两个虚拟角色调整为自然状态,并确定击掌的位置为目标位置,然后可以根据目标位置和第一虚拟角色的肢体参数,计算出第一设定位置,以及根据目标位置和第二虚拟角色的肢体参数,计算出第二设定位置。
184.进一步地,可以从预制数据库中获取第一默认驱动数据和第二默认驱动数据(图6未示),并将第一默认驱动数据和第二默认驱动数据输入至第一渲染引擎模块,以驱动第一虚拟角色从自然状态下的位置向第一设定位置移动,以及驱动第二虚拟角色从自然状态下的位置向第二设定位置移动。
185.当第一虚拟角色到达第一设定位置以及第二虚拟角色到达第二设定位置时,可以从预制数据库中读取第二驱动数据和第六驱动数据(图6未示)。其中,第二驱动数据可以用于驱动第一虚拟角色执行击掌动作,第六驱动数据可以用于驱动第二虚拟角色执行击掌动作。根据第二驱动数据和第六驱动数据生成直播视频,可以得到直播视频中第一虚拟角色和第二虚拟角色执行击掌动作。
186.由此可知,本技术实施例的方案可以使得第一虚拟角色对不同的外部操作进行响应。
187.在本技术实施例的方案中,用户可以选择第一虚拟角色的形象。例如,用户可以从预制的多个虚拟角色中选择第一虚拟角色,或者,用户也可以创建自定义的第一虚拟角色。其中,预制的虚拟角色是预先设置的设计完成的虚拟角色模型,例如可以是ip角色形象,或者是定制的固定角色形象。自定义虚拟角色形象可以是用户对预制虚拟角色形象的至少一部分进行编辑得到的,也可以是素体模板自定义虚拟角色形象。
188.更具体地,用户可以分别选择编辑预制虚拟角色形象的模型部位(例如,包括头
部、面部、身体、服饰、道具等)进行局部模型替换,在各个部位的预制列表内选择想要替换的预制部件,替换到预制虚拟角色模型上,保存为自定义预制虚拟角色形象。可以通过提供不同类型的服饰,以支持用户选择不同类型的虚拟角色形象,例如,日常、新国风、日系。由此,可以提供高质量的虚拟形象兼容写实,美型,二次元等各类虚拟形象,
189.进一步地,虚拟直播场景也可以根据用户的需求进行设置,在直播的过程中,可以随时切换场景。例如,赛博场景、卡通场景、科技场景和国风场景等。此外,用户在虚拟直播过程中,还可以选择不同的镜头,例如:近景、远景、全景全身、半身特写等;也可以选择动态镜头进行虚拟直播。
190.由上,本技术实施例提供一种虚拟直播方法,可以基于三维(3d)虚拟角色形象实时驱动的直播产品,用户可以简单快捷地使用虚拟角色与观众实时互动。本技术提供的方案可以适用于各种场景下的直播,例如,电商、娱乐、活动等;线上会议、培训、面试等;视频创作;线下虚拟互动等各类应用场景。更具体地,在电商直播的场景中,可进行单人日播、大促活动、主题活动、品牌专场。同时还可以定制3d弹幕、擂台pk、主播挑战、挂机福利等各种互动游戏提升互动率,还可以设置投票抽奖等各类直播工具帮助主播增强互动表现。
191.由上,本技术实施例提供了更加优化的虚拟角色的直播方法,具体可以有以下几个方面的效果:
192.1、低门槛
193.1-1:硬件门槛低:无需复杂的光学动捕设备和惯性动捕设备,而只需要一个普通的rgb彩色摄像头或者rgbd彩色和深度摄像头;1-2:操作门槛低:用户不需要穿戴任何设备,只需要面对摄像头,通过自己的动作和表情,配合鼠标、键盘等外部设备的操作,就可以实现高质量的虚拟直播;1-3:形象导入门槛低:用户可以选择各种不同的虚拟形象,也可以快速导入虚拟形象,也可以自己自定义虚拟形象,可以快速的实现虚拟直播。
194.2、高质量
195.2-1:表情生动细腻:通过高精准度的面部表情捕捉系统,捕捉用户的表情,并实时重定向到虚拟角色上,驱动虚拟角色;另外,通过预制的表情,可以在虚拟角色上生成丰富的表情;2-2:动作自然流畅:通过捕捉用户的肢体动作,并实时重定向到虚拟角色上,驱动虚拟角色;另外,通过预制的动作,在虚拟角色上体现出丰富的动作;2-3:才艺技能丰富:通过预制的大量才艺动作,可以触发虚拟角色进行各种丰富的才艺表演;2-4:支持实时弹幕互动,可以增加直播效果。
196.3、强互动
197.3-1:礼物互动:观众可以通过弹幕或者其他方式,比如按钮,或者语音,控制虚拟道具,与虚拟角色进行互动;3-2:游戏联动:用户可以同时控制游戏中的角色和虚拟角色,使得游戏角色在游戏中的状态映射至虚拟角色,实现游戏角色和虚拟角色之间的联动;
198.3-3:多人互动:不同的用户可以在同一虚拟直播场景中驱动不同的虚拟角色并进行互动;不同的虚拟角色之间可以在一起玩游戏,聊天,或者做其他的事情;
199.4、易扩展
200.4-1:声音上的扩展:通过可以音色转换,可以实现固定的用户实现多种不同的音色输出,也可以实现不同的用户输出相同的声音,满足声音的确定性和灵活性等不同的要求;
201.4-2:游戏和直播间的扩展:虚拟直播可以打通游戏或者直播间的弹幕,礼物按钮,以及游戏内的角色特效、角色属性等,实现更加丰富的互动扩展。
202.参照图7,图7是本技术实施例中的一种虚拟角色的直播装置的结构示意图,图7示出的装置可以包括:
203.第一获取模块71,用于获取第一用户图像,所述第一用户图像包括第一用户的影像;
204.第一生成模块72,用于对所述第一用户的状态信息进行重定向处理,生成用于驱动第一虚拟角色的第一驱动数据,其中,所述第一用户的状态信息是根据所述第一用户图像得到的;
205.第二获取模块73,用于获取触发指令,所述触发指令是由外部操作触发生成的;
206.第二生成模块74,用于根据所述第一驱动数据、第二驱动数据和/或第三驱动数据,确定用于生成所述第一虚拟角色的直播视频的驱动数据;
207.其中,所述第二驱动数据是根据所述触发指令得到的用于驱动所述第一虚拟角色的驱动数据,所述第三驱动数据是根据所述触发指令得到的用于驱动虚拟直播场景中的元素的驱动数据。
208.关于本技术实施例中的虚拟角色的直播装置的工作原理、工作方法和有益效果等更多内容,可以参照上文关于虚拟角色的直播方法的相关描述,在此不再赘述。
209.本技术实施例还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的虚拟角色的直播方法的步骤。所述存储介质可以包括rom、ram、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
210.本技术实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的虚拟角色的直播方法的步骤。所述终端包括但不限于手机、计算机、平板电脑等终端设备。
211.应理解,本技术实施例中,所述处理器可以为中央处理单元(central processing unit,简称cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
212.还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)
213.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。
214.在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
215.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
216.应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
217.本技术实施例中出现的“多个”是指两个或两个以上。本技术实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本技术实施例中对设备个数的特别限定,不能构成对本技术实施例的任何限制。虽然本技术披露如上,但本
申请并非限定于此。任何本领域技术人员,在不脱离本技术的精神和范围内,均可作各种更动与修改,因此本技术的保护范围应当以权利要求所限定的范围为准。
218.虽然本技术披露如上,但本技术并非限定于此。任何本领域技术人员,在不脱离本技术的精神和范围内,均可作各种更动与修改,因此本技术的保护范围应当以权利要求所限定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1