ARTICLE · 1196845
客户想做一个AI数字人,但预算不够,我们最后换了一个思路
前段时间整理以前做过的项目,我翻出来一个挺有意思的功能。
它不是一个完整的数字人项目,而是一个大型项目里面的一个互动模块。
客户当时的想法很明确:
在一个大型显示屏上放一个虚拟人物。
用户站到屏幕前说话,系统先识别用户说了什么,再把问题交给AI。
AI生成答案以后,通过语音把内容说出来。
与此同时,屏幕里的虚拟人物也不能只是站在那里不动。
它要会眨眼,会有轻微呼吸,回答问题的时候嘴巴还要跟着语音变化。
当时AI部分接的是 DeepSeek API。
现在来看,这基本就是大家经常说的:
AI数字人。
但真正开始做方案以后,第一个问题很快就出现了。
客户想要数字人,但预算不支持完整3D
我们最开始也考虑过完整3D数字人的路线。
比如通过 Three.js 展示人物,再配合3D模型、骨骼、表情、动画和嘴型驱动。
从技术上来说,这条路当然可以走。
但往下拆以后会发现,一个真正做得比较完整的3D人物,并不是“买个模型放进去”这么简单。
后面还会涉及:
人物建模、材质、骨骼、动作、面部表情、嘴型、渲染,以及前端性能等一系列问题。
这些东西每增加一层,开发和制作成本都会继续往上走。
而这个项目有一个特别现实的问题:
数字人只是整个大型项目中的一个功能。
它不是核心产品。
如果为了一个展示模块,把大量预算都投入到3D数字人上,投入和收益并不匹配。
所以这个功能后来一度搁置了。
不是因为做不了。
而是一直没有找到一个:
效果能达到要求,成本又在客户接受范围内的方案。
一个虚拟主播,给了我们新的思路
后来事情出现了一个挺有意思的转折。
我们技术人员有一天在B站看虚拟主播。
看到那些虚拟人物会眨眼、会呼吸、会跟着声音张嘴,突然想到一个问题:
客户真正需要的,不就是这些吗?
很多虚拟主播并不是完整3D人物,而是通过 Live2D 实现的。
这个思路一下就打开了。
我们重新把客户的需求拆了一遍。
不再先问:
“这个数字人要做得多高级?”
而是问:
“用户真正能感受到的功能到底有哪些?”
最后发现,客户真正需要的其实只有几件事:
屏幕上有一个人物;
待机的时候不能像一张静态图片;
人物偶尔要眨眼;
身体要有轻微呼吸感;
AI回答问题的时候嘴巴要动;
最终让用户感受到:
“这个虚拟人物正在和我交流。”
就这么简单。
至于很多3D数字人常见的能力,实际上根本用不上。
比如:
人物不需要走路;
不需要360度自由旋转;
不需要复杂身体动作;
不需要实时动作捕捉;
也不需要影视级的面部表情和嘴型。
需求一旦这样拆开以后,方案就完全变了。
最后,我们把3D改成了Live2D
Live2D的思路和完整3D人物不一样。
它可以从一个二维人物形象开始,把人物的眼睛、嘴巴、头发、身体等进行分层,然后再做参数和动作绑定。
对于这个项目,我们真正需要的其实就是:
人物原画;
眨眼;
呼吸;
嘴型变化;
再加少量状态动作。
所以最后的方案变成了:
二维人物设计
→ Live2D分层与绑定
→ 呼吸动画
→ 眨眼
→ 嘴型参数
→ 接入AI交互系统
人物展示的问题解决以后,剩下的AI部分其实就比较清楚了。
整个AI交互链路怎么跑?
最终整个系统的流程是这样的:
用户说话
→ 语音识别
→ 转成文字
→ 发送给DeepSeek
→ AI生成答案
→ TTS把文字转换成语音
→ 播放语音
→ 同时驱动Live2D人物嘴巴
用户看到的效果就是:
自己对着屏幕讲话;
屏幕里的虚拟人物“听见”问题;
稍微等待以后开始回答;
回答的时候嘴巴跟着声音变化。
于是,一个轻量版的AI虚拟人物交互就跑通了。
嘴型,也没有必要一开始就追求“完全同步”
这个项目里面还有一个很典型的问题:
AI说话的时候,嘴巴要不要做到非常精确的音素同步?
如果追求高拟真效果,当然可以做。
可以把声音进一步拆成不同音素,再对应不同嘴型。
比如不同发音对应不同的嘴部形状。
这样做出来会更真实。
但是我们后来判断,这个项目没有必要。
为什么?
因为它是一个大屏互动场景。
用户真正需要感受到的是:
“这个人物正在说话。”
并不是站在屏幕前研究每一个字的嘴型是不是完全准确。
所以我们采用了一个更轻量的办法。
根据当前播放语音的音量大小,驱动人物嘴巴开合。
声音大一点,嘴巴张得大一点。
声音小一点,嘴巴张得小一点。
再做一些平滑处理以后,实际视觉效果已经足够满足使用场景。
这一项,又省掉了不少不必要的复杂度。
成本一下就不是一个量级了
当时一个满足基础展示需求的Live2D定制模型,大概在 2000元左右。
当然,这个数字只能代表当时那个项目、当时那种人物复杂度。
如果人物要求更多表情、更多动作、服装切换,或者精细程度更高,费用肯定也会增加。
但是和完整3D人物相比,已经完全不是一个投入级别。
而这件事真正有意思的地方,其实并不是:
“Live2D比3D便宜。”
而是另外一个问题。
客户说“我要数字人”,不代表真的要给他一整套数字人
企业项目里经常会遇到这种情况。
客户说:
我要AI。
我要数字人。
我要大数据。
我要平台。
我要APP。
这些词本身都很大。
如果客户说一个大概念,我们就直接按照这个概念最高规格去设计,项目很容易越做越重,预算也会越来越高。
真正应该做的是把它拆开。
客户到底想解决什么问题?
用户最终会看到什么?
哪些能力是必须的?
哪些功能实际上根本用不上?
比如这次的数字人项目。
客户嘴里说的是:
“我要一个AI数字人。”
但拆完以后,真正需要的只是:
人物形象 + 语音识别 + AI回答 + 语音播报 + 基础嘴型。
如果这几项已经能够解决业务问题,那么有没有必要为了“数字人”这个词,再往里面塞进大量复杂3D能力?
我觉得没有必要。
技术方案不是越重越专业
这个项目最后让我印象比较深的一点就是:
技术不是越复杂越好。
完整3D数字人当然更强。
但是更强,不代表一定更适合。
企业项目最终还是要回到几个现实问题:
预算是多少?
这个功能有多重要?
用户真的能不能感受到这些差异?
项目什么时候要上线?
后期谁来维护?
硬件能不能支撑?
如果一个相对轻量的方案,已经可以解决80%以上的实际问题,那么剩下那20%的效果,值不值得再投入几倍成本,就应该重新算账。
这也是我们最后为什么没有继续坚持完整3D方案。
不是因为做不了。
而是因为:
没必要。
最后,我们跑通的是这套方案
整个项目最后采用的是:
**Live2D
ASR语音识别 DeepSeek API TTS语音合成 嘴型驱动**
对于这个场景来说,已经够用了。
如果以后客户真的需要:
高拟真人物;
复杂全身动作;
实时动捕;
精细面部表情;
高精度嘴型;
那完全可以再升级成3D数字人或者专业数字人平台。
但是第一阶段没有必要为了“看起来更高级”,把项目直接做到最重。
我做企业项目这些年,越来越觉得一件事很重要:
不是客户说开发什么,我们就开发什么。
而是先把他真正想解决的问题弄清楚,再决定系统和技术怎么搭。
很多时候,技术方案真正的价值并不是:
“能不能做到最复杂。”
而是:
在客户预算、使用场景、效果和维护成本之间,能不能找到一个真正合适的方案。
够用。
稳定。
成本合适。
而且能够真正落地。
很多时候,这比“最高规格”更有价值。
本文根据金雨科技实际项目整理。
技术实施:康天宇
项目复盘与内容整理:李东旭















































































