AI 数字人是运用数字技术创造出来的人,虽现阶段不能如科幻作品中的人型机器人般高度智能,但已在生活各类场景中常见,且随 AI 技术发展正迎来应用爆发。目前业界尚无关于数字人的准确定义,一般可根据技术栈不同分为两类:
除算法外,人物建模模型可通过手动建模(音频驱动)或 AIGC 方式生成人物动态效果(如 wav2lip 模型)实现一个最简单的数字人,但这种简单构建方式存在诸多问题,如如何生成指定人物声音、TTS 生成的音频如何精确驱动数字人口型及动作、数字人如何使用知识库做出某个领域的专业性回答等。
数字人,是指运用数字技术创造出来的人,虽然在现阶段不能做到像科幻作品中的人型机器人一样具备高度智能,但它已经在生活的各类场景中触手可及,而且随着AI技术的发展,也正在迎来应用爆发。目前业界还没有一个关于数字人的准确定义,但一般可以根据技术栈的不同分为两类,一类是由真人驱动的数字人,另一类是由算法驱动的数字人。[heading4]1.1真人驱动的数字人[content]这类数字人重在通过动捕设备或视觉算法还原真人动作表情,主要应用于影视行业以及现下很火热的直播带货,其表现质量与手动建模的精细程度及动捕设备的精密程度直接相关,不过随着视觉算法的不断进步,现在在没有昂贵动捕设备的情况下也可以通过摄像头捕捉到人体骨骼和人脸的关键点信息,从而做到不错的效果。
这类数字人强调自驱动,人为干预更少,技术实现上更加复杂,一个最简单的算法驱动的数字人大致流程如下:其中三个核心算法分别是:1.ASR(Automatic Speech Recognition,语音识别):我们希望和数字人的交互跟人一样以对话为主,所以算法驱动的第一步就是语音识别,它能将用户的音频数据转化为文字,便于数字人理解和生成回应。2.AI Agent(人工智能体):充当数字人的大脑,可以直接接入大语言模型,强调Agent的概念是为了让数字人拥有记忆模块等更加真实。3.TTS(Text to Speech,文字转语音):数字人依靠LLM生成的输出是文字,为了保持语音交互一致性,需要将文字转换为语音,由数字人。
上述算法开源的代码有很多,这里列出一些仓库供大家参考:ASR语音识别openai的whisper:https://github.com/openai/whisperwenet:https://github.com/wenet-e2e/wenetspeech_recognition(这是一个语音识别的接口集合,里面有不同实现的语音识别的接口):https://github.com/Uberi/speech_recognitionAI Agent大模型部分就比较多了,包括ChatGPT、Claude、ChatGLM、文星一言、千帆大模型、通义千问等等。Agent部分可以使用LangChain的模块去做自定义,里面基本包含了Agent实现的几个组件(https://www.langchain.com/)TTS微软的edge-tts:https://github.com/rany2/edge-tts,只能使用里面预设的人物声音,目前接口免费。VITS:https://github.com/jaywalnut310/vits,还有很多的分支版本,可以去搜索一下,vits系列可以自己训练出想要的人声。so-vits-svc:https://github.com/svc-develop-team/so-vits-svc,专注到唱歌上面,前段时间很火的AI孙燕姿。除了算法,人物建模模型可以通过手动建模(音频驱动)或者AIGC的方式生成人物的动态效果(例如wav2lip模型)实现,这样就完成了一个最简单的数字人。当然这种简单的构建方式还存在很多的问题,例如:如何生成指定人物的声音?TTS生成的音频如何精确驱动数字人口型以及做出相应的动作?数字人如何使用知识库,做出某个领域的专业性回答?