夜雨聆风学习资料网

ARTICLE · 1196845

客户想做一个AI数字人,但预算不够,我们最后换了一个思路

客户想做一个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数字人或者专业数字人平台。

但是第一阶段没有必要为了“看起来更高级”,把项目直接做到最重。

我做企业项目这些年,越来越觉得一件事很重要:

不是客户说开发什么,我们就开发什么。

而是先把他真正想解决的问题弄清楚,再决定系统和技术怎么搭。

很多时候,技术方案真正的价值并不是:

“能不能做到最复杂。”

而是:

在客户预算、使用场景、效果和维护成本之间,能不能找到一个真正合适的方案。

够用。

稳定。

成本合适。

而且能够真正落地。

很多时候,这比“最高规格”更有价值。


本文根据金雨科技实际项目整理。
技术实施:康天宇
项目复盘与内容整理:李东旭

相关学习资料