虚拟数字人基础技术架构包括“五横两纵”。“五横”是指用于数字人制作、交互的五大技术模块,即人物生成、人物表达、合成显示、识别感知、分析决策等模块。其中,人物生成,即人物建模方面 2D 数字人较为简单,3D 数字人需要额外使用三维建模技术。人物表达包括语音生成和动画生成。动画生成则包含驱动和渲染两大部分。“两纵”是指 2D、3D 数字人,2D 数字人和 3D 数字人在技术架构方面基本一致。3D 数字人需要额外使用三维建模技术生成数字形象,信息维度增加,所需的计算量更大。参考 虚拟数字人的几种分类:
2d模型构建
Unity游戏引擎,全平台(包括PC/主机/移动设备)所有游戏中有超过一半都是使用Unity创作的.
Unity 2d
Live 2d 以一张原画实现「2D立体表现」的2D建模专业软件。
live2d的应用领域如下: 原神,《雪霁逢椿》片段:包含Live2D的人物、手绘的黑白闪线条以及诸多后期特效 《重返未来:1999》
非常二次元~
live2d的实现原理
就是将原画拆分,拆分的越细,能动部位就越多、效果越灵活。 通过Live2D中的弯曲和旋转变形器来实现动态效果。 模型文件的主要构成 以上资料都可以在官网获取。
Amazon Transcribe,Amazon Polly,以及 OpenAI 的大语言模型和 D-ID.com 公司的 2D 数字人生成技术。参考 demo代码,因为墙的问题下载不了。看看演示视频吧。
具体实现
语音输入部分:。 应答内容生成部分:借助 Langchain 这个开源框架,调用基于 OpenAI 的 coversation 接口,同时使用 memory 库对对话的上下文做了 5 轮保存。再通过实现文字转语音。
,使用深度学习技术来合成听起来自然的人类语音,让您可以将文章转换为语音。 ,支持实时转录语音(流式传输),也可以转录 Amazon S3 存储桶中的语音文件(批处理)。Transcribe 支持多达几十种的不同国家的语言。
2D 数字人视频的生成部分:由 D-ID.com 公司提供,对应的 API 可以直接接收文本输入和一张人脸图片来生成对应的动态播报视频,也可以接受语音文件加图片作为输入。
D-ID是一个可以智能合成人像和声音,并最终生成视频的AI工具。人像可以自己上传肖像图片,也可以通过文字对肖像进行描述合成人像。
d-id网站支持通过上传照片、通过描述AI生成角色来生成视频,入口。
有很多角色供选择 还有一些AI角色,也可以通过描述生成AI角色。比如生成一个中国财神爷。在右下角选择语音声音,还有方言可以选择。
3D建模软件:Blender、Cinema 4D、3damx、maya、Substance Painter、Modo、等等…
3d超拟人数字人 渲染引擎能够对灯光、毛发、衣物等进行渲染,主流引擎包括 UnityTechnologies 公司的 Unity 3D、Epic Games 公司的 Unreal Engine 等。
Unreal Engine 是Epic(Epic Games美国游戏公司)开发的游戏引擎。是世界知名授权最广的游戏引擎之一。应用在游戏、影视、建筑、可视化等领域。 下载虚幻引擎推荐系统要求 Windows 10 64位,四核Intel或AMD 2.5 GHz或更高处理器,8 GB内存 macOS Big Sur,四核Intel或AMD 2.5 GHz或更高处理器,8 GB内存 Linux Ubuntu 18.04,四核Intel或AMD 2.5 GHz或更高处理器,32 GB内存 收费标准:免费使用,只有当你的作品营收超过100万美元时,才需要就超出部分支付5%的分成费用。
metaHUMAN:使用Unreal Engine轻松制作高保真数字人类。
Unity 3D:Unity 引擎是一个支持多种平台和设备的实时 3D 开发平台和编辑器,让您可以创建和部署游戏、游戏、VR、AR、移动和桌面应用。原神的主机版本就是用这个渲染的。
收费标准:个人使用免费 Unity 版本开始创作。
对于前端工程狮来说,3d效果在浏览器上的实现是通过webGL(Javascript+OpenGL)来实现渲染的。 实现3d效果的js库是three.js,但是呢直接用three.js上手慢,需要开发人员对图形学等有一定的了解。A-frame封装了three.js,直接可以通过标签是语言来渲染。上手快。
虚拟数字人可以称为人的重要一点是可以像人一样的沟通,同步口型,才会更像人。语音同步效果主要包括:
1. 语音识别和文本转换STT 这一步骤通常通过语音识别技术完成,它可以识别和转录语音中的单词。现代语音识别技术,如深度学习模型,能够以较高的准确率完成这一任务。 2. 文本到语音参数的转换TTS 将文本转换成语音参数(如音素或音标)是下一步。这些参数不仅包括了发音的信息,还可能包括语调、语速和情感等非语言信息。 3. 生成口型动画 根据语音参数生成口型动画。这一步骤通常使用预先设计的口型(或称为“音素图”)模型,这些模型能够模拟人类发音时嘴唇、舌头和下巴的运动。通过控制这些模型的参数,可以生成与发音相匹配的口型动画 4. 同步和优化 最后一步是将生成的口型动画与语音同步。这需要确保动画播放时与相应的语音信号完美匹配。此外,还可能进行一些优化,比如调整动画的流畅度,确保面部表情自然等。
什么是 音素(phoneme)是根据语音的自然属性划分出来的最小语音单位。从声学性质来看,音素是从音质角度划分出来的最小语音单位。从生理性质来看,一个发音动作形成一个音素。 音素一般用国际音标(IPA)标记。
1. 语音驱动口型方法
主要通过搭建深度网络模型(DNN、CNN、RNN等),学习语音和口型/表情系数的映射关系。(本文不讨论)
2. 音素驱动口型方法
驱动方法一般可细分为,规则方法和深度模型方法。 规则方法:按照不同音素发音的方式设定时间平滑规则,使得产生流畅的表情动作。 深度模型方法:和语音驱动方法类似,需要构建音素到表情系数的映射关系。 参考文章
再引入一个概念:视位
(Viseme),它是指与某一音位相对应的嘴、 舌头、下腭等可视发音器官所处的状态。参考文章
如下图所示,不同发音,口型有差异。
下图是微软Speech SDK官方文档里的资料,使用Speech SDK做文字转语音时会返回一系列VisemeID对应的就是。参考。这么一来大概就能实现语音和口型的同步了。
Microsoft Speech SDK:微软语音转文字,文字转语音。 Amazon Transcribe、Amazon Polly:亚马逊语音转文字,文字转语音。