虚拟形象的口型同步,是让角色的嘴巴随着你的声音同步动起来的技术。系统会听你麦克风里的声音,判断你什么时候在说话、说得有多用力,再把这些转换成嘴巴的动作,有时还包括头部和双手的动作。做得好的时候,虚拟形象看起来真的像在说话。
这篇指南用不带术语的方式讲讲它是怎么工作的、为什么有时看起来很怪,以及你能做些什么让它看起来更好。
一句话讲清基本原理
你的声音是一种声波。软件每秒对它测量很多次,根据音量大小和声音类型,让虚拟形象张嘴或闭嘴。就这么简单。其余的都是优化。
口型同步的三个层次
不是所有系统做的事情都一样。大致有三种方式:
1. 基于音量
实时场景里最简单、最常见的方式。你说话大声,嘴就张得大一些;安静时,嘴就闭上。速度快,适用于任何语言,不需要太多计算。
优点:几乎没有延迟。 局限:分不清“喔”和“衣”;嘴巴张开的样子都一样。
2. 基于发音(视位)
视位,是你发某一组音时嘴巴的形状。“b”“p”“m”会让双唇闭合;“a”会让嘴张大;“u”会让嘴唇变圆。更高级的系统会分析音频,推测你正在发的音,再选出对应的嘴型。
优点:看起来更自然,尤其是在近景特写里。 局限:需要更多计算,也可能被背景噪音或口音干扰。
3. 基于摄像头
这时系统不听你的声音,而是通过摄像头看你的脸,复制你嘴巴的真实动作。
优点:能复制表情、微笑和你做的各种鬼脸。 局限:需要好的光线,你得一直待在镜头前,电脑也要能扛得住计算量。
| 方式 | 需要什么 | 自然程度 | 延迟 |
|---|---|---|---|
| 音量 | 只要一支麦克风 | 基础 | 很低 |
| 视位 | 麦克风和更多算力 | 高 | 低 |
| 摄像头 | 摄像头和好的光线 | 很高 | 不固定 |
不只是嘴巴:身体也会说话
一个只动嘴的虚拟形象看起来很僵硬。所以很多系统会加上和声音联动的辅助动作:
- 头部:说话时轻微地摆动。
- 双手:配合句子做出手势,就像人在聊天时那样。
- 眨眼:自动、随机,免得像个木偶。
- 呼吸:静止时胸口轻微起伏。
这些细节比你想象的更重要。一个会做点手势的虚拟形象,哪怕嘴巴很简单,也会显得有生命。以 remocast 为例,虚拟形象的嘴巴和双手会跟着你的声音动,这就足以让几个角色之间的对话看起来像一场真正的聊天。
为什么口型同步有时看起来很差
如果你的虚拟形象嘴巴动得很奇怪,几乎总是以下原因之一:
- 背景噪音。 风扇、街上的声音或邻居家的狗,会让嘴巴在你没说话时也在动。
- 麦克风离得太远。 你的声音进来很弱,嘴巴几乎张不开。
- 麦克风爆音。 如果你大喊或者离得太近,嘴巴会一直张着。
- 网络不稳定,当别人在远程看你的虚拟形象时:音频一跳一跳地到达,动作也跟着一跳一跳。
- 房间有回声。 反射声把声音拖长,嘴巴闭合得更慢。
你能怎样改善口型同步
好消息是:几乎所有问题都能靠录音习惯解决,而不是靠软件。
- 离麦克风近一点。 桌面麦克风一般在 10 到 20 厘米之间效果不错。如果是耳麦,就按厂家的建议来。
- 减少房间噪音。 关上窗户,录制时关掉风扇,离冰箱远一点。如果问题是回声,这里有一些方法:如何减少房间回声。
- 戴耳机。 这样你的麦克风就不会收进别人的声音,你的虚拟形象也不会在别人说话时“开口”。
- 多人对话时,不说话就静音。 避免咳嗽声或键盘声引起的“幽灵动作”。
- 用自然的语速说话。 稍微咬字清楚一点,能让停顿被识别出来,嘴巴在句子之间就会闭上。
- 检查输入音量,在系统的声音设置里。别调到最低,也别调到最高。
如果你想更明智地挑选设备,播客用 USB 麦克风还是 XLR 麦克风的对比能帮你做决定。
语言或口音有影响吗?
对基于音量的口型同步来说,没有影响。无论是普通话、粤语还是各地口音,效果都一样,因为它只测量你的声音什么时候响、有多响。基于视位的系统有时会针对特定语言调校,换成别的语言可能会稍有偏差,但对大多数日常用途来说,差别不大。
实时口型同步和后期口型同步
这个区别值得说清楚:
- 实时:你说话的同时,虚拟形象就做出反应。它必须够快,所以会牺牲一点精度。直播、会议和实时录制的播客用的都是这种。
- 后期:软件分析已经录好的音频,精细地为每个音素制作动画。用于专业动画和游戏,那里有时间慢慢打磨。
对于和别人聊天来说,重要的是实时口型同步。只要手势跟得上,几乎没人会注意到声音和嘴巴之间轻微的延迟。如果你想把它做成视频,看看怎样在浏览器里用 3D 虚拟形象录播客。
想看看你的虚拟形象用你的声音说话吗?免费创建你的工作室。
常见问题
口型同步需要摄像头吗?
不一定。基于声音的口型同步只需要麦克风。摄像头是给那些复制你真实面部表情的系统用的,它们更精确,但要求也更高。
为什么我没说话时,虚拟形象的嘴也在动?
几乎总是背景噪音,或者别人的声音进了你的麦克风。戴上耳机,远离噪音源,不说话时就静音。
口型同步适用于任何语言吗?
基于音量的口型同步适用于任何语言和口音。试图识别具体发音的系统,可能对某些语言调校得更好。
参考资料
- AnalyserNode — MDN Web Docs
- Get facial position with viseme — Microsoft Learn
- Face landmark detection guide — Google AI Edge (MediaPipe)
如果这篇文章对你有帮助,关注我们,不错过后续文章: