CN115550711A - 虚拟数字人渲染方法、渲染引擎及系统 - Google Patents
虚拟数字人渲染方法、渲染引擎及系统 Download PDFInfo
- Publication number
- CN115550711A CN115550711A CN202211168112.9A CN202211168112A CN115550711A CN 115550711 A CN115550711 A CN 115550711A CN 202211168112 A CN202211168112 A CN 202211168112A CN 115550711 A CN115550711 A CN 115550711A
- Authority
- CN
- China
- Prior art keywords
- video
- rendering
- voice data
- virtual digital
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 285
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000009471 action Effects 0.000 claims description 60
- 230000014509 gene expression Effects 0.000 claims description 59
- 230000033001 locomotion Effects 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 238000003062 neural network model Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 abstract description 14
- 230000000875 corresponding effect Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 9
- 238000012549 training Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/441—Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8146—Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种虚拟数字人渲染方法、渲染引擎及系统。本申请的方法,通过响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数;通过虚拟数字人渲染引擎,基于唇形同步算法,根据所述语音数据驱动虚拟数字人生成第一视频帧;根据所述渲染参数渲染所生成的第一视频帧,并对语音数据和视频数据进行音视频同步,实现了虚拟数字人的实时渲染,并进行推流处理,从而实现虚拟数字人的实时播报功能,用户只需提交待播报的数据及相关配置等输入数据,即可实现虚拟数字人的实时播报,无需自研渲染引擎,提高了虚拟数字人实时播报视频功能的开发效率。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种虚拟数字人渲染方法、渲染引擎及系统。
背景技术
虚拟数字人的形态可以分为2D数字人和3D数字人,2D数字人已经被广泛应用于语音播报、新闻播报、视频客服等诸多场景中,需要提供2D数字人的实时驱动及渲染能力。基于虚拟数字人标记语言(Virtual Avatar Mark Language,检测VAML)的协议规范和定义了虚拟数字人的交互行为,以及驱动所属的元素,该协议为适用于不同场景的统一的虚拟数字人驱动协议。
但是,目前业内没有提供2D数字人实时渲染能力的服务平台,需要使用2D数字人进行实时播报等类似功能时,用户需要自研2D数字人渲染引擎,开发周期长、效率低。
发明内容
本申请提供一种虚拟数字人渲染方法、渲染引擎及系统,用以向用户提供2D数字人实时渲染能力,以提高用户开发虚拟数字人播报功能的效率。
一方面,本申请提供一种虚拟数字人渲染方法,包括:
响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数;
基于唇形同步算法,根据所述语音数据渲染虚拟数字人生成视频帧;
根据所述渲染参数渲染所生成的视频帧,并对所述语音数据和生成的视频数据进行音视频同步及推流处理。
另一方面,本申请提供一种虚拟数字人渲染引擎,包括:视频生成模块和渲染模块,
所述视频生成模块获取待播报的语音数据,基于唇形同步算法,根据所述语音数据渲染虚拟数字人生成视频帧,将生成的视频帧实时发送至所述渲染模块,并将所述语音数据发送至所述渲染模块;
所述渲染模块用于获取基于配置的虚拟数字人标记语言生成的渲染参数,并从所述视频生成模块接收生成的视频帧和所述语音数据,根据所述渲染参数渲染所生成的视频帧,并对语音数据和视频数据进行音视频同步。
另一方面,本申请提供一种虚拟数字人渲染系统,包括:解析引擎,以及上述所述的渲染引擎,
所述解析引擎用于响应于启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数,向所述渲染引擎发送待播报的语音数据和所述渲染参数。
本申请提供的虚拟数字人渲染方法、渲染引擎及系统,通过响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数;通过虚拟数字人渲染引擎,基于唇形同步算法,根据所述语音数据驱动虚拟数字人生成视频帧;根据所述渲染参数渲染所生成的视频帧,并对语音数据和视频数据进行音视频同步,实现了虚拟数字人的实时渲染,并进行推流处理,从而实现虚拟数字人的实时播报功能,用户只需提交待播报的数据及相关配置等输入数据,即可实现虚拟数字人的实时播报,无需自研渲染引擎,提高了虚拟数字人实时播报视频功能的开发效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请所基于的一种虚拟数字人渲染系统的架构图;
图2为本申请一示例实施例提供的虚拟数字人渲染方法流程图;
图3为本申请另一示例性实施例提供的虚拟数字人渲染方法流程图;
图4为本申请一示例性实施例提供的视频队列的示意图;
图5为本申请一示例性实施例提供的语音切片及视频数据分块的示意图;
图6为本申请一示例性实施例提供的2D数字人实时渲染的交互流程图;
图7为本申请一示例实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
Idle状态:指没有文本或语音流驱动时的状态,此状态下虚拟数字人的动作幅度很小。
针对现有技术中业内没有提供2D数字人实时渲染能力的服务平台,需要使用2D数字人进行实时播报等类似功能时,用户需要自研2D数字人渲染引擎,开发周期长、效率低的问题,本申请提供一种虚拟数字人渲染引擎,用于实现2D实时数字人的渲染,具体可以应用于提供2D实时数字人播报功能的虚拟数字人渲染系统。
图1为本申请所基于的一种虚拟数字人渲染系统的架构图,如图1所示,该渲染系统10包括本申请提供的虚拟数字人渲染引擎11和解析引擎12(也即VAML)和推流模块13。
其中,解析引擎12用于基于用户输入数据获取待播报的音频数据、渲染参数、初始化参数等,将待播报的音频数据和渲染参数下发至虚拟数字人渲染引擎11,并将初始化参数下发至虚拟数字人渲染引擎11和推流模块13。
虚拟数字人渲染引擎11包括视频生成模块111和渲染模块112(也即Render模块),视频生成模块111负责根据初始化参数和语音数据驱动虚拟数字人生成视频帧,将生成的视频帧实时发送至渲染模块,并将语音数据发送至渲染模块。渲染模块112负责根据渲染参数渲染生成的视频帧,并根据初始化参数进行音视频同步。推流模块13负责根据初始化参数进行音视频数据的推流处理,将渲染后的虚拟数字人的视频数据和语音数据推流到服务端,以使客户端从服务端拉流并播放虚拟数字人的视频数据和语音数据,实现2D数字人的实时播报功能。
其中,解析引擎12与视频生成模块111之间通过HTTP请求传输数据,解析引擎12基于网络通信协议(websocket,简称ws)向渲染模块112和推流模块13下发同一的初始化参数,包括分辨率、帧率、音频采样率等。视频生成模块111与渲染模块112之间通过多线程网络库(如ZeroMQ,简称zmq)进行音频数据和视频数据的传输。推流模块13基于网络通信协议(ws)或共享内存(shared memory,简称shm)的方式获取音视频同步后的待播报的语音数据和已渲染的视频数据。
渲染模块112对视频帧的渲染处理包括但不限于背景叠加、显示字幕、在视频中插入图片。
示例性地,服务端可以采用内容分发网络(Content Delivery Network,简称CDN)来加速推流。客户端设备可以是手机、平板电脑、VR设备等智能终端设备,也可以是Web端设备。
本申请提供了一种虚拟数字人渲染引擎,包括视频生成模块和渲染模块,该虚拟数字人渲染引擎实现了2D数字人实时渲染能力。基于上述虚拟数字人渲染引擎,本申请还提供了一种虚拟数字人渲染方法,响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数;通过上述虚拟数字人渲染引擎,基于唇形同步算法,根据语音数据驱动虚拟数字人生成视频帧;根据渲染参数渲染所生成的视频帧,并对语音数据和视频数据进行音视频同步,实现了虚拟数字人的实时渲染,并进行推流处理,从而实现虚拟数字人的实时播报功能,用户只需提交待播报的数据及相关配置等输入数据,即可实现虚拟数字人的实时播报,无需自研渲染引擎,提高了虚拟数字人实时播报视频功能的开发效率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请一示例实施例提供的虚拟数字人渲染方法流程图。本实施例提供的方法的执行主体可以为图1所示的渲染系统所在电子设备,具体可以是部署在云端的服务器,如服务集群等。
如图2所示,该方法具体步骤如下:
步骤S201、响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数。
在实际应用中,用户可以通过虚拟数字人渲染系统提供的可视化界面输入数据,用户的输入数据至少包括待播报的内容数据,还可以包括但不限于如下配置信息:播报视频中虚拟数字人的表情、动作的配置信息,以及背景、插入图片、字幕等相关的渲染配置信息。用户完成数据输入之后通过确认生成虚拟数字人播报视频的操作,通过使用客户端设备向渲染系统提交启动播报指令。
解析引擎响应于接收到启动播报指令,获取用户提交的输入数据,并基于用户输入数据确定待播报的语音数据以及渲染参数。
示例性地,用户输入的待播报的内容数据可以是待播报的文本,解析引擎将待播报的文本转换为对应的语音数据,得到待播报的语音数据。另外,用户输入的待播报的内容数据可以是语音数据。
若用户输入数据包括背景、插入图片、字幕等中的至少一项相关的渲染配置信息,解析引擎可以根据渲染配置信息,基于配置的虚拟数字人标记语言生成向渲染模块下发的渲染参数。该渲染参考可以包括背景图片的路径信息,插入图片的路径信息和插入位置,字幕的字体、颜色、显示时间戳等信息中的至少一项。
另外,渲染系统可以支持用户自定义输入的待播报的内容数据对应的播报视频中出现的表情及肢体动作,用户输入数据包括动作配置信息(包括表情和/或肢体动作的配置信息),解析引擎基于配置的虚拟数字人标记语言,根据动作配置信息生成对应的动作驱动参数,具体可以包括自定义的表情和/或肢体动作对应的动作数据以及在待播报的内容数据中出现的位置信息等。
步骤S202、基于唇形同步算法,根据语音数据渲染虚拟数字人生成视频帧。
本实施例中,通过视频生成模块,基于唇形同步算法根据语音数据驱动虚拟数字人做出相应的嘴型及动作,并渲染生成对应的视频帧,视频生成模型逐帧生成视频帧,并将生成的视频帧及时发送至渲染模块。
另外,视频生成模块还将语音数据发送至渲染模块。
步骤S203、根据渲染参数渲染所生成的视频帧,并对语音数据和视频数据进行音视频同步及推流处理。
本实施例中,渲染模块负责进行语音数据及视频数据的音视频同步处理,以及对生成的视频帧的渲染处理。渲染模块可以先将接收到的生成的视频帧与语音数据进行音视频同步,再对生成的视频帧进行渲染处理;或者,渲染模块可以先对生成的视频帧进行渲染处理,再对渲染后的视频帧与语音数据进行音视频同步。
渲染模块处理完的待播报的视频数据和语音数据由推流模块推流至服务端,以使视频播报客户端从服务端拉流获取待播报的视频数据和语音数据并进行播放。
该步骤中,渲染模块从解析引擎接收渲染参数,并从视频生成模块接收生成的视频帧和语音数据。
渲染模块对生成的视频帧的渲染包括但不限于:背景叠加、插入图片、显示字幕。
本实施例提供的方法基于图1所示渲染系统提供的渲染引擎,该渲染引擎具有虚拟数字人实时渲染能力。本实施例的方法,响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数;通过基于唇形同步算法,根据语音数据渲染虚拟数字人生成视频帧,根据渲染参数渲染所生成的视频帧,并对语音数据和生成的视频数据进行音视频同步,实现虚拟数字人的实时渲染,进一步可以将渲染后的视频数据和语音数据进行推流,从而实现虚拟数字人的实时播报功能,用户无需自研虚拟数字人的渲染引擎,只需提交待播报的数据及相关配置等输入数据,即可实现虚拟数字人的实时播报功能,提高了虚拟数字人实时播报视频功能的开发效率。
在一种可选实施例中,在接收到用户的启动播报指令之前,也即渲染系统在没有文本或语音流驱动时的初始化状态(也即idle状态、静默状态)下,可以播放预先配置的基础视频文件,该基础视频文件中虚拟数字人具有幅度很小的嘴部动作。该基础视频文件也称为idle视频文件。另外,本实施例中,通过将待播报的视频帧入队至视频队列,利用视频队列来缓存一定数量的视频帧,来实现idle视频和生成的视频数据的无缝切换。
图3为本申请另一示例性实施例提供的虚拟数字人渲染方法流程图,如图3所示,该方法具体步骤如下:
步骤S301、初始化状态下,渲染模块将配置的基础视频文件包含的基础视频帧依次插入视频队列,视频队列中基础视频帧的数量小于或等于第一数量。
在初始化状态下,也即用户还未提交启动播报指令时,渲染系统播报预设配置的基础视频文件,使得虚拟数字人处于静默状态,虚拟数字人具有幅度很小的嘴部动作,没有表情及肢体动作。在用户提交启动播报指令时,渲染系统及时地将播报视频由基础视频文件切换为基于用户输入数据生成的视频数据,在生成的视频数据播报完成后,再切换回基础视频文件。
在实际应用中,基础视频文件是一个较简短的视频文件,可以循环播报该基础视频文件。
本实施例中,渲染模块维护一个视频队列,该视频队列用于缓存一定数量的待播报的视频帧,以确保播报视频的流畅性,并实现idle视频和生成的视频数据的无缝切换。
在初始状态下,渲染模块将配置的基础视频文件包含的基础视频帧依次插入视频队列。
该步骤中,视频队列中可以缓存较少数量的基础视频帧,以确保在用户提交启动播报指令后,可以及时地将播报的内容由基础视频文件切换为渲染引擎生成的视频数据,减少虚拟数字人实时播报的延时。
示例性地,可以保持视频队列中基础视频帧的数量小于或等于第一数量,第一数量是一个较小的值,如第一数量可以配置为2、3、5等,第一数量可以根据实际应用场景的需要进行配置和调整,此处不做具体限定。
步骤S302、在进行渲染时,渲染模块从视频队列依次取出一个基础视频帧,基于渲染参数对取出的基础视频帧进行渲染及推流处理。
在进行视频渲染时,渲染模块从视频队列依次取出一个视频帧,渲染该视频帧。
在初始化状态下,渲染参数可以为系统配置的默认渲染参数,可以包括但不限于背景叠加参数。渲染模块从视频队列中取出的是基础视频帧,基于渲染系统配置的默认渲染参数对基础视频帧进行渲染,并对渲染后的视频帧进行推流处理。
需要说明的是,在初始化状态下,可以配置虚拟数字人不发出声音,也即虚拟数字人处于静默状态。
步骤S303、响应于接收到启动播报指令,解析引擎根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数。
当用户以通过虚拟数字人渲染系统提供的可视化界面输入数据,通过确认生成虚拟数字人播报视频的操作,向渲染系统提交启动播报指令后,解析引擎可以获取到用户输入数据。解析引擎基于用户输入数据可以确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数。
其中,用户的输入数据至少包括待播报的内容数据,还可以包括但不限于如下配置信息:播报视频中虚拟数字人的表情、动作的配置信息,以及背景、插入图片、字幕等相关的渲染配置信息。
在一可选实施方式中,用户输入的待播报内容数据可以是待播报的文本。解析引擎响应于接收到启动播报指令,获取用户输入的待播报的文本,将待播报文本转换为语音数据,得到待播报的语音数据。
在一可选实施方式中,用户输入的待播报内容数据可以是待播报的语音数据。解析引擎响应于接收到启动播报指令,获取用户输入的待播报的语音数据。
可选地,解析引擎还可以将语音数据转换为对应的待播报文本,待播报文本可以作为待显示的字幕内容。
在该步骤中上述任一实施方式的基础上,若用户输入数据还包括用户所配置的渲染配置信息,解析引擎基于配置的虚拟数字人标记语言,根据用户所配置的渲染配置信息,以及待播报文本和/或语音数据,生成渲染参数。
示例性地,若用户输入数据包括背景、插入图片、字幕等中的至少一项相关的渲染配置信息,解析引擎可以根据渲染配置信息,基于配置的虚拟数字人标记语言生成每一项渲染配置信息对应的渲染参数,并向渲染模块下发渲染参数。该渲染参考可以包括背景图片的路径信息,插入图片的路径信息和插入位置,字幕的字体、颜色、显示时间戳等信息中的至少一项。
另外,渲染系统可以支持用户自定义输入的待播报的内容数据对应的播报视频中出现的表情及肢体动作,用户输入数据包括动作配置信息(包括表情和/或肢体动作的配置信息),解析引擎基于配置的虚拟数字人标记语言,根据动作配置信息生成对应的动作驱动参数,具体可以包括自定义的表情和/或肢体动作对应的动作数据以及在待播报的内容数据中出现的位置信息等。
步骤S304、视频生成模块基于唇形同步算法,根据语音数据驱动虚拟数字人生成视频帧,将生成的视频帧实时发送至渲染模块,并将语音数据发送至渲染模块。
视频生成模块接收解析引擎发送的语音数据,基于唇形同步算法,根据语音数据驱动虚拟数字人做出相应的嘴型及动作,并渲染生成一系列的视频帧。视频生成模块会将生成的视频帧实时地发送至渲染模块,以使渲染模块可以及时地进行视频渲染。
另外,视频生成模块还会将语音数据发送至渲染模块,以使渲染模型进行视频数据和语音数据的音视频同步处理,以确保语音数据和生成的视频数据可以同步播放,从而使得虚拟数字人的嘴型与语音相匹配。
可选地,语音数据的发送和生成的视频帧的发送是两个相对独立的过程,视频生成模块可以并行地向渲染模块发送语音数据和生成的视频帧,以提高渲染效率。由于语音数据是现成的,通常语音数据会先发送完成,而视频帧是实时生成的,每生成一帧向渲染模块实时发送一帧。
在一种可选实施方式中,视频生成模块在基于唇形同步算法,根据语音数据渲染虚拟数字人生成视频帧时,还可以获取动作驱动参数,根据动作驱动参数驱动虚拟数字人的动作变化,基于唇形同步算法根据语音数据驱动虚拟数字人的嘴型变化,并渲染生成多个视频帧。这样,通过唇形同步算法可以实现虚拟数字人表情、肢体动作、嘴型的更自然表达。
其中,动作驱动参数包括:表情驱动参数和/或肢体动作驱动参数。
可选地,渲染系统支持用户自定义配置虚拟数字人的表情和/或肢体动作,用户通过渲染系统提供的可视化界面进行待播报内容数据对应的虚拟数字人的表情和/或肢体动作的配置。解析引擎可以获取到的用户输入数据中包括表情配置信息和/或肢体动作配置信息,根据用户输入数据中的表情配置信息确定表情驱动参数,根据用户输入数据中的肢体动作配置信息确定肢体动作驱动参数,并向视频生成模块下发表情驱动参数和/或肢体动作驱动参数。
示例性地,用户输入待播报的文本,并且可以自定义在播报到文本中的某一位置时,虚拟数字人做出指定表情和/或肢体动作。配置信息中可以包括指定表情的标识及指定表情出现的位置信息,指定肢体动作的标识及指定肢体动作出现的位置信息。解析引擎中存储了预先配置好的表情数据和肢体动作数据。解析引擎根据用户的表情配置信息中的表情标识,获取对应的表情数据,该表情数据用于渲染虚拟数字人做出对应表情,生成的表情驱动参数可以包括表情数据及可以做出该表情的位置信息(可以是时间戳)。解析引擎根据用户的肢体动作配置信息中的表情标识,获取对应的肢体动作数据,该表情数据用于渲染虚拟数字人做出对应肢体动作,生成的肢体动作驱动参数可以包括肢体动作数据及可以做出该肢体动作的位置信息(可以是时间戳)。
可选地,视频生成模块还可以基于待播报的语音数据和/或待播报文本,自行识别确定在播报视频中虚拟数字人需要做出的动作(包括表情及肢体动作),并确定待播报的语音数据或文本中做出各个动作的位置信息(可以是时间戳),得到动作驱动参数。
具体地,可以利用大量历史数据训练神经网络模型。将待播报的语音数据和/或待播报文本输入神经网络模型进行动作识别,确定动作驱动参数。
示例性地,可以训练得到表情识别模型,将待播报的语音数据和/或待播报文本输入表情识别模型进行表情识别,确定表情驱动参数。
例如,可以训练得到输入数据为文本的表情识别模型,将待播报文本输入表情识别模型进行表情识别,确定表情驱动参数。
例如,可以训练得到输入数据为语音数据的表情识别模型,将待播报的语音数据输入表情识别模型进行表情识别,确定表情驱动参数。
例如,可以训练得到输入数据为语音数据和文本的表情识别模型,将待播报的语音数据和待播报文本输入表情识别模型进行表情识别,确定表情驱动参数。
示例性地,可以训练得到动作识别模型,将待播报的语音数据和/或待播报文本输入动作识别模型进行肢体动作识别,确定肢体动作驱动参数。
例如,可以训练得到输入数据为文本的动作识别模型,将待播报文本输入动作识别模型进行肢体动作识别,确定肢体动作驱动参数。
例如,可以训练得到输入数据为语音数据的动作识别模型,将待播报的语音数据输入动作识别模型进行肢体动作识别,确定肢体动作驱动参数。
例如,可以训练得到输入数据为语音数据和文本的动作识别模型,将待播报的语音数据和待播报文本输入动作识别模型进行肢体动作识别,确定肢体动作驱动参数。
通过视频生成模块基于用户输入的待播报的文本或语音数据,基于训练好的神经网络模型自行识别表情和肢体动作的驱动参数,用户无需手动配置表情和肢体动作,提高了虚拟数字人播报视频的生成效率,提升用户体验。
步骤S305、渲染模块将实时接收的生成的视频帧依次插入视频队列,并且不再向视频队列中插入基础视频帧。
本实施例中,渲染模块维护视频队列,该视频队列中可以缓存一定数量的视频帧,以确保视频播报的流畅度,并且在用户提交启动播报指令后,可以及时地将播报的内容由基础视频文件切换为渲染引擎生成的视频数据,减少虚拟数字人实时播报的延时。
渲染模型在接收到生成的视频帧并确认是第一帧之后,停止向视频队列中插入基础视频帧,后续只将实时接收的生成的视频帧插入视频队列,直至接收到最后一帧生成的视频帧时,将最后一帧生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频文件的基础视频帧,从而实现基础视频文件与实时渲染的虚拟数字人播报视频间的无缝切换。
可选地,渲染模块接收到生成的视频帧并确认该视频帧为第一帧时,还可以向视频生成模块发送继续生成新的视频帧的通知消息,使得视频生成模块持续生产并向渲染模块发送生成的视频帧。
可选地,视频生成模块可以在第一帧生成的视频帧中添加第一帧的标记,在最后一帧生成的视频帧中添加最后一帧的标记。渲染模块基于视频帧中是否包含对应的标记信息来判断当前接收到的视频帧是否为生成视频帧的第一帧或最后一帧。
可选地,视频生成模块可以在每一生成的视频帧中增加帧序号,不同的生成的视频帧的帧序号不同,并通知渲染模块第一帧和最后一帧的帧序号。渲染模块可以基于接收到的通知以及当前接收到的生成的视频帧的帧序号确定当前接收到的视频帧是否为生成的视频帧的第一帧或最后一帧。
示例性地,图4为本申请一示例性实施例提供的视频队列的示意图。如图4所示,初始化状态播放基础视频文件,视频队列中入队了20帧基础视频帧,此时渲染模块接收到第一帧由视频生成模块生成的视频帧,渲染模块切换将生成的视频帧入队至视频队列,而不再将基础视频帧入队,并向视频生成模块通知继续生产视频帧。假设共生成30帧的视频帧,则向视频队列中连续插入30帧的生成的视频帧。渲染模块接收到最后一帧生成的视频帧,将最后一帧生成的视频帧入队至视频队列之后,渲染模块切换继续将基础视频帧入队至视频队列。
在一可选实施例中,可以对视频队列中视频帧进行水位限制,也即限制视频队列中视频帧的数量在低水位值与高水位值之间。渲染模块可以对视频队列中的视频帧进行水位检测,也即确定视频队列中视频帧的数量。当视频队列中的视频帧的数量大于或等于第二数量(高水位值)时,暂停生成新的视频帧,并继续从视频队列中取出视频帧进行渲染及推流,待视频队列中的视频帧的数量减少至小于或等于第三数量(低水位值)时,继续生成新的视频帧,从而保持视频队列中的视频帧数量稳定在一定范围内。
其中,第三数量小于第二数量。第三数量大于第一数量。第二数量和第三数量的值可以根据实际用应用场景进行配置和调整,此处不做具体限定。
步骤S306、渲染模块对待播报的语音数据和生成的视频数据进行音视频同步。
渲染模块接收视频生成模块发送的待播报的语音数据,并对语音数据和生成的视频数据间音视频同步。
步骤S307、渲染模块从视频队列依次取出一个视频帧,基于渲染参数对取出的视频帧进行渲染及推流。
该步骤中,在进行视频帧渲染时,渲染模型每次从视频队列中取出一个视频帧,在初始化状态下或者在接收到启动播报指令后的一个较短时段内,取出的视频帧可能是基础视频帧,后续取出的视频帧是生成的视频帧,在将取出最后一帧生成的视频帧之后,后续取出的是基础视频帧。
在对基础视频帧进行渲染时,根据渲染系统配置的默认渲染参数对基础视频帧进行渲染。
在对生成的视频帧进行渲染时,根据基于配置的虚拟数字人标记语言和用户输入数据生成的渲染参数,对生成的视频帧进行渲染,从而实现根据用户配置的渲染配置信息进行视频渲染,以使渲染后的视频数据满足用户需求。
步骤S308、在将最后一个生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频帧。
可选地,渲染模块将最后一帧生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频文件的基础视频帧,可以从基础视频文件的起始帧开始。
可选地,视频生成模块再生成视频帧时,基于语音数据、动作驱动参数驱动虚拟数字人的嘴型和动作变化,并在一帧基础视频帧基础上叠加(覆盖)新的嘴型和动作,生成对应的一帧视频帧。
进一步地,渲染模块将最后一帧生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频文件的基础视频帧时,可以根据向视频队列中插入的生成的视频帧的数量,假设自初始化状态开始持续向视频队列插入基础视频帧,确定当前应该插入的基础视频帧,从而实现基础视频文件和渲染生成的播报视频的无缝切换,避免产生跳帧的现象,提高用户体验。
示例性地,图4中虚线部分的21-50帧为假设持续向视频队列中插入基础视频帧(也即idle视频帧)的情况,生成的视频帧为在对应的基础视频帧基础上合成虚拟数字人的嘴型及动作后生成的。
本实施例中,通过在初始化状态下将配置的基础视频文件包含的基础视频帧依次插入视频队列,在根据语音数据渲染虚拟数字人生成视频帧之后,不再向视频队列中插入基础视频帧,将生成的视频帧依次插入视频队列;在将最后一个生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频帧;在进行渲染时,从视频队列依次取出一个视频帧,基于渲染参数对取出的视频帧进行渲染,能够实现初始化状态下基础视频文件与启动播报后生成的播报视频间的无缝切换,提高用户体验。
在上述任一实施例的基础上,在一可选实施例中,解析引擎可以确定待播报的语音数据包含的多个语音切片,每次向视频生成模块发送一个语音切片,语音切边包含切片标识信息,并基于渲染引擎反馈的切片处理完成通知向视频生成模块发送下一个语音切片。
渲染引擎还用于:通过视频生成模块基于语音切片生成包含多个生成的视频帧的视频数据,在视频数据上添加切片标识信息,并向解析引擎反馈切片处理完成通知。
进一步地,解析引擎可以确定待播报的语音数据的多个语音切片时,若用户输入的是待播报文本,则解析引擎对待播报文本进行切片,得到多个文本切片,将每一文本切换转换为语音数据,得到对应的语音切片。
若用户输入的是待播报的语音数据,则解析引擎可以直接对语音数据进行切片,得到多个语音切片。
示例性地,图5为本申请一示例性实施例提供的语音切片及视频数据分块的示意图,如图5所示,假设语音数据被切分为10个切片,每个语音切片增加切片标识信息,如图5中所示的batch1,batch2,…,batch10。基于每个语音切片生成的视频帧形成一个视频数据块,视频数据块上增加对应的切边标识信息。
通过在基于语音切片生成的视频数据上添加切片标识信息,由于不同语音切片生成的视频数据天然分块,基于切边标识信息可以实现语音切片和视频数据块的同步,能够提高音视频同步的效率。
可选地,渲染模块可以维护一个语音队列(如图1中所示),将接收的语音切片插入语音队列。渲染模块可以基于语音队列和视频队列进行音视频同步。
示例性地,图6为本申请一示例性实施例提供的2D数字人实时渲染的交互流程图,如图6所示,具体流程如下:
初始化状态下,解析引擎VAML向渲染模块发送idle视频信息。其中,idle视频信息可以包括但不限于idle视频的存储路径、默认渲染参数。渲染模块基于idle视频信息获取idle视频。在播放idle视频时,无声音。
渲染模块推送idle视频:渲染模块在获取到idle视频后,可以基于默认渲染参数对idle视频进行渲染(如叠加背景等),并向服务端推送渲染后的idle视频,以使客户端从服务端拉取并播报idle视频。
用户输入待播报的文本,解析引擎VAML基于TTS(Text-To-Speech,文本转语音)算法将文本转换为语音数据。解析引擎可以对文本进行切片,并将每一文本切片转换为语音数据,得到语音切片。
解析引擎VAML通过HTTP请求,发送语音切片batch=1(表示第一个切片)等相关数据到视频生成模块。其中,解析引擎还可以将基于用户输入的动作配置信息确定的动作驱动参数发送至视频生成模块。
视频生成模块生成视频帧,调用SDK(Software Development Kit,软件开发工具包)接口将生成的视频帧发送到渲染模块,同时发送语音数据到渲染模块。
渲染模块接收到第一帧,由idle视频帧切换到生成的视频帧。渲染模块将生成的视频帧入队至视频队列,并对视频队列中的视频帧进行渲染。
渲染模块进行音视频同步处理,将生成的播报视频推送到服务端,并将语音数据推送到服务端,以使客户端从服务端拉取并播报生成的播报视频和语音数据。
视频生成模块基于语音切片batch=1的视频生成结束,向解析引擎VAML返回batch=1视频生成结束的结果。
解析引擎VAML继续通过HTTP请求,发送下一个语音切片batch=2,循环执行上述对每一语音切片的处理过程,直至基于所有语音片的视频生成结束。
渲染模块在将生成的视频帧入队后,若确定这是最后一个生成的视频帧,则切换为idle视频,将idle视频帧继续入队,在生成的播报视频推送完成后,继续向服务端推断idle视频。
本申请提供一种虚拟数字人渲染引擎,如图1中所示的虚拟数字人渲染引擎11,包括视频生成模111和渲染模块112。
其中,视频生成模块111用于获取待播报的语音数据,基于唇形同步算法,根据语音数据渲染虚拟数字人生成视频帧,将生成的视频帧实时发送至渲染模块,并将语音数据发送至渲染模块。
渲染模块112用于获取基于配置的虚拟数字人标记语言生成的渲染参数,并从视频生成模块接收生成的视频帧和待播报的语音数据,根据渲染参数渲染生成的视频帧,并对语音数据和视频数据进行音视频同步。
在一可选实施例中,视频生成模块111与渲染模块112通过多线程网络库(如ZeroMQ)进行音频数据和视频数据的传输。多线程网络库支持C、C++、python、C#等多种语言。示例性地,视频生成模块111可以采用python语言实现,通过调用python接口与外界进行数据传输。渲染模块112可以采用C++语言实现,通过调用C++接口与外界进行数据传输。
在一可选实施例中,渲染模块还用于:
将配置的基础视频文件包含的基础视频帧依次插入视频队列,视频队列中基础视频帧的数量小于或等于第一数量;在进行渲染时,从视频队列依次取出一个视频帧,基于渲染参数对取出的视频帧进行渲染并推流到客户端设备。
在一可选实施例中,在基于唇形同步算法,根据语音数据驱动虚拟数字人生成视频帧之后,渲染模块还用于:
不再向视频队列中插入基础视频帧,将生成的视频帧依次插入视频队列;在将最后一个生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频帧。
在一可选实施例中,向视频队列插入生成的视频帧之后,渲染模块还用于:
当视频队列中的视频帧的数量大于第二数量时,暂停生成新的视频帧,待视频队列中的视频帧的数量小于第三数量时,继续生成新的视频帧,第三数量小于第二数量。
在一可选实施例中,在实现根据语音数据渲染虚拟数字人生成视频帧时,视频生成模块还用于:
获取动作驱动参数,根据动作驱动参数驱动虚拟数字人的动作变化,基于唇形同步算法根据语音数据驱动虚拟数字人的嘴型变化,并渲染生成多个视频帧。
其中,动作驱动参数包括:表情驱动参数和/或肢体动作驱动参数。
在一可选实施例中,解析引擎根据用户输入数据中的表情配置信息确定表情驱动参数,根据用户输入数据中的肢体动作配置信息确定肢体动作驱动参数。视频生成模块还用于从解析引擎接收动作驱动参数。
在一可选实施例中,视频生成模块还用于将待播报的语音数据和/或待播报文本输入神经网络模型进行动作识别,确定动作驱动参数。
本实施例提供的虚拟数字人渲染引擎中视频生成模块和渲染模块具体用于执行上述任一方法实施例中视频生成模块和渲染模块对应执行的处理流程,具体功能和效果参见上述方法实施例,本实施例此处不再赘述。
本申请还提供一种虚拟数字人渲染系统,该渲染系统的架构如图1所示,包括解析引擎12,以及上述任一实施例提供的虚拟数字人渲染引擎11。
其中,解析引擎12用于响应于启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数,向渲染引擎发送待播报的语音数据和渲染参数。
在一种可选实施例中,解析引擎12还用于:待播报的语音数据包含多个语音切片,每次向渲染引擎11的视频生成模块111发送一个语音切片,语音切边包含切片标识信息,并基于视频生成模块111的切片处理完成通知向视频生成模块111发送下一个语音切片。
渲染引擎11还用于:通过视频生成模块111基于语音切片生成包含多个视频帧的视频数据,在视频数据上添加切片标识信息,并向解析引擎12反馈切片处理完成通知。
本实施例提供的虚拟数字人渲染系统中解析引擎12用于执行上述任一方法实施例中解析引擎所执行的处理流程,具体功能和效果参见上述方法实施例,本实施例此处不再赘述。
本申请提供了一种虚拟数字人渲染引擎,运用唇形同步算法、视频生成算法等实现了2D实时数字人表情、动作和唇形的更自然的表达,并运用工程能力(SDK)实现视频渲染及数据传输,实现了2D数字人的实时播报功能,使得用户可以定制低延时、高同步、不卡顿、不跳帧的稳定音视频流,提高了虚拟数字人实时播报的能力。
图7为本申请一示例实施例提供的电子设备的结构示意图。如图7所示,该电子设备70包括:处理器701,以及与处理器701通信连接的存储器702,存储器702存储计算机执行指令。
其中,处理器执行存储器存储的计算机执行指令,以实现上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。电子设备可以是云端服务器集群、本地或客户端的设备、或者:物联网(Internet of Things,简称IoT)设备等。
本申请提供的方法、渲染引擎和渲染系统可以实施在:云上实施、本地部署、客户端实施、IOT设备实施等。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
本申请实施例还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一方法实施例所提供的方案,具体功能和所能实现的技术效果此处不再赘述。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。“多个”的含义是两个以上,除非另有明确具体的限定。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (14)
1.一种虚拟数字人渲染方法,其特征在于,包括:
响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数;
基于唇形同步算法,根据所述语音数据渲染虚拟数字人生成视频帧;
根据所述渲染参数渲染所生成的视频帧,并对所述语音数据和生成的视频数据进行音视频同步及推流处理。
2.根据权利要求1所述的方法,其特征在于,在接收到所述启动播报指令之前,还包括:
将配置的基础视频文件包含的基础视频帧依次插入视频队列,所述视频队列中基础视频帧的数量小于或等于第一数量;
在进行渲染时,从所述视频队列依次取出一个视频帧,基于渲染参数对取出的视频帧进行渲染。
3.根据权利要求2所述的方法,其特征在于,所述基于唇形同步算法,根据所述语音数据渲染虚拟数字人生成视频帧之后,还包括:
不再向视频队列中插入基础视频帧,将生成的视频帧依次插入视频队列;
在将最后一个生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频帧。
4.根据权利要求3所述的方法,其特征在于,向所述视频队列插入生成的视频帧之后,还包括:
当所述视频队列中的视频帧的数量大于或等于第二数量时,暂停生成新的视频帧,待所述视频队列中的视频帧的数量减少至小于或等于第三数量时,继续生成新的视频帧,所述第三数量小于所述第二数量。
5.根据权利要求1所述的方法,其特征在于,所述基于唇形同步算法,根据所述语音数据渲染虚拟数字人生成视频帧,包括:
获取动作驱动参数,根据所述动作驱动参数驱动所述虚拟数字人的动作变化,基于唇形同步算法根据所述语音数据驱动虚拟数字人的嘴型变化,并渲染生成多个视频帧;
其中,所述动作驱动参数包括:表情驱动参数和/或肢体动作驱动参数。
6.根据权利要求5所述的方法,其特征在于,所述获取动作驱动参数,包括:
根据用户输入数据中的表情配置信息确定表情驱动参数,根据用户输入数据中的肢体动作配置信息确定肢体动作驱动参数;
或者,
将待播报的语音数据和/或待播报文本输入神经网络模型进行动作识别,确定动作驱动参数。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数,包括:
响应于接收到启动播报指令,获取用户输入的待播报的文本,以及所配置的渲染配置信息;
将所述待播报文本转换为语音数据,得到待播报的语音数据;
基于配置的虚拟数字人标记语言,根据所述渲染配置信息,以及所述待播报文本和/或所述语音数据,生成所述渲染参数。
8.根据权利要求1-6中任一项所述的方法,其特征在于,所述响应于接收到启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数,包括:
响应于接收到启动播报指令,获取用户输入的待播报的语音数据,以及所配置的渲染配置信息;
将所述语音数据转换为对应的待播报文本;
基于配置的虚拟数字人标记语言,根据所述渲染配置信息,以及所述待播报文本和/或所述语音数据,生成所述渲染参数。
9.一种虚拟数字人渲染引擎,其特征在于,包括视频生成模块和渲染模块,
所述视频生成模块用于获取待播报的语音数据,基于唇形同步算法,根据所述语音数据渲染虚拟数字人生成视频帧,将生成的视频帧实时发送至所述渲染模块,并将所述语音数据发送至所述渲染模块;
所述渲染模块用于获取基于配置的虚拟数字人标记语言生成的渲染参数,并从所述视频生成模块接收生成的视频帧和所述语音数据,根据所述渲染参数渲染所生成的视频帧,并对语音数据和视频数据进行音视频同步。
10.根据权利要求9所述的渲染引擎,其特征在于,所述视频生成模块与所述渲染模块通过多线程网络库进行音频数据和视频数据的传输。
11.根据权利要求9所述的渲染引擎,其特征在于,所述渲染模块还用于:
将配置的基础视频文件包含的基础视频帧依次插入视频队列,所述视频队列中基础视频帧的数量小于或等于第一数量;
在进行渲染时,从所述视频队列依次取出一个视频帧,基于渲染参数对取出的视频帧进行渲染并推流到客户端设备。
12.根据权利要求11所述的渲染引擎,其特征在于,在基于唇形同步算法,根据所述语音数据驱动虚拟数字人生成视频帧之后,所述渲染模块还用于:
不再向视频队列中插入基础视频帧,将生成的视频帧依次插入视频队列;
在将最后一个生成的视频帧插入视频队列之后,继续向视频队列中插入基础视频帧。
13.一种虚拟数字人渲染系统,其特征在于,包括:解析引擎,以及上述权利要求9-12中任一项所述的渲染引擎,
所述解析引擎用于响应于启动播报指令,根据用户输入数据确定待播报的语音数据,并基于配置的虚拟数字人标记语言生成渲染参数,向所述渲染引擎发送待播报的语音数据和所述渲染参数。
14.根据权利要求13所述的系统,其特征在于,
所述解析引擎还用于:所述待播报的语音数据包含多个语音切片,每次向所述渲染引擎的视频生成模块发送一个语音切片,所述语音切边包含切片标识信息,并基于所述视频生成模块的切片处理完成通知向所述视频生成模块发送下一个语音切片;
所述渲染引擎还用于:通过视频生成模块基于所述语音切片生成包含多个生成的视频帧的视频数据,在所述视频数据上添加切片标识信息,并向所述解析引擎反馈切片处理完成通知。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211168112.9A CN115550711A (zh) | 2022-09-23 | 2022-09-23 | 虚拟数字人渲染方法、渲染引擎及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211168112.9A CN115550711A (zh) | 2022-09-23 | 2022-09-23 | 虚拟数字人渲染方法、渲染引擎及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115550711A true CN115550711A (zh) | 2022-12-30 |
Family
ID=84728617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211168112.9A Pending CN115550711A (zh) | 2022-09-23 | 2022-09-23 | 虚拟数字人渲染方法、渲染引擎及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115550711A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116188637A (zh) * | 2023-04-23 | 2023-05-30 | 世优(北京)科技有限公司 | 数据同步方法及装置 |
CN117591660A (zh) * | 2024-01-18 | 2024-02-23 | 杭州威灿科技有限公司 | 基于数字人的材料生成方法、设备及介质 |
-
2022
- 2022-09-23 CN CN202211168112.9A patent/CN115550711A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116188637A (zh) * | 2023-04-23 | 2023-05-30 | 世优(北京)科技有限公司 | 数据同步方法及装置 |
CN116188637B (zh) * | 2023-04-23 | 2023-08-15 | 世优(北京)科技有限公司 | 数据同步方法及装置 |
CN117591660A (zh) * | 2024-01-18 | 2024-02-23 | 杭州威灿科技有限公司 | 基于数字人的材料生成方法、设备及介质 |
CN117591660B (zh) * | 2024-01-18 | 2024-04-16 | 杭州威灿科技有限公司 | 基于数字人的材料生成方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115550711A (zh) | 虚拟数字人渲染方法、渲染引擎及系统 | |
CN106878820B (zh) | 直播互动方法及装置 | |
CN110798697B (zh) | 视频显示方法、装置、系统以及电子设备 | |
CN112543342B (zh) | 虚拟视频直播处理方法及装置、存储介质、电子设备 | |
CN109547831B (zh) | 一种白板与视频同步的方法、装置、计算设备及存储介质 | |
US11882319B2 (en) | Virtual live video streaming method and apparatus, device, and readable storage medium | |
JP2018029325A (ja) | ライブ配信に応用する対話型方法及び装置 | |
US6943794B2 (en) | Communication system and communication method using animation and server as well as terminal device used therefor | |
CN110784730B (zh) | 直播视频数据的传输方法、装置、设备和存储介质 | |
EP2373016A2 (en) | Method and system for adding translation in a videoconference | |
CN113570686A (zh) | 虚拟视频直播处理方法及装置、存储介质、电子设备 | |
US20230047858A1 (en) | Method, apparatus, electronic device, computer-readable storage medium, and computer program product for video communication | |
CN112272327B (zh) | 数据处理方法、装置、存储介质及设备 | |
CN115423905A (zh) | 数字人驱动方法、系统、设备和存储介质 | |
US11451858B2 (en) | Method and system of processing information flow and method of displaying comment information | |
CN111629223B (zh) | 视频同步方法及装置、计算机可读存储介质以及电子设备 | |
KR20230098068A (ko) | 동영상 처리 방법, 장치, 전자 기기 및 컴퓨터 저장 매체 | |
US20230215102A1 (en) | Media distribution device, media distribution method, and program | |
JP2014220572A (ja) | コンテンツ配信システム、配信装置、受信端末、配信プログラム、及び受信プログラム | |
CN114554277B (zh) | 多媒体的处理方法、装置、服务器及计算机可读存储介质 | |
CN108933769B (zh) | 流媒体截图系统、方法及装置 | |
CN115767206A (zh) | 基于扩展现实的数据处理方法以及系统 | |
CN115767195A (zh) | 直播方法及装置、存储介质及电子设备 | |
CN114286021B (zh) | 渲染方法、装置、服务器、存储介质及程序产品 | |
Uchida et al. | Provision of emergency information in sign language CG animation over integrated broadcast-broadband system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |