如何评价米哈游虚拟偶像「鹿鸣」的首次直播

Xsens动作捕捉 2023-05-09 2839

?
目录

惊闻无中之人的 “真?虚拟主播” 做了带实时互动的直播,作为游戏宅兼 AI 从业者,兴趣和好奇心 (和无端的 peer pressure) 驱使我把直播录像反复看了很多遍。本文将围绕语音合成动作捕捉这两个我最关心的点提出一些猜测,分享给同样感兴趣的朋友们。另外事先声明我工作的领域是 NLP,因此语音部分多少算是触类旁通,而动捕和渲染部分基本就是爱好者水平。说错了就当抛砖引玉,说对了的话米哈游打我 6480 原石就立即删帖哈哈。

1. 动机猜测

首先,我认为鹿鸣现阶段仍然是有中之人的,但团队做了很多努力去弱化中之人的不可替代性和不确定性,其动机如下:

1.1 中之人的不可替代性

中之人的声音与性格是跟 “皮套” 强绑定的。以绊爱为例,忠实观众能够准确地区分一号机和其他中之人,甚至分化出不同的粉丝群体。中之人的变故会带来大量舆论反弹,后来的 A-SOUL 珈乐事件让更广大的群体意识到了中之人超越演员意义的不可替代性。这种不可替代性对于资本来说是一种风险,值得投入技术和金钱去优化,最终使虚拟偶像与传统偶像模式彻底切割。

1.2 中之人的不确定性

中之人作为人类,生病或年龄会让声音发生改变,例如原神 2.6 版本期间派蒙的 CV 因支气管炎导致声音变化。动作方面,人的动作本身就是不精准的,动作捕捉将错误进一步放大后,轻则不美观,重则穿模。米哈游作为游戏公司,稳定的声音和动作表现都是值得投入资源去解决的问题,而恰好虚拟主播提供了完美的实验场。

2. 实现猜测

基于上述动机,我们不妨从工程实现的角度去猜测一下米哈游的方案,并尝试从直播录像中找到对应的证据。

2.1 “逆熵 AI 生成” 是以中之人语音为输入的 Style Transfer 而非 TTS

米哈游声称的 “逆熵 AI 生成” 声音是一个过于宽泛的描述。从文本生成声音,和从更丰富的特征生成声音(如从声音到声音的端到端模型)是完全不同的两个任务,难度也大相径庭。如上文 1.1 和 1.2 所述,米哈游没必要为了 “去中之人化” 而追求基于纯文本的 Text-to-speech (TTS) 方案。事实上,该领域目前的 sota 在资源最丰富的英语场景下也难以达到鹿鸣所展现的自然与情感丰富程度。

目前部分网友认为是 TTS(AI 读稿或对中之人进行语音识别),可能一方面是符合直觉,另一方面是因为鹿鸣直播中在 24:58 处将 “弹幕” 读作了 “tan mu”。但我也注意到,此处鹿鸣马上改口称 “弹窗”,且一开始比划的手势也是弹窗的意思,这反而更让人觉得是中之人的口误或用于混淆视听的表演。除了此处之外,鹿鸣多次提到弹幕时都读作 “dan mu”(例如 25:43 处),那么我们不妨假设鹿鸣就是基于 TTS,则模型起码知道 “弹幕” 这个词和其读音,那么念错的原因只能有三个:a. 语言模型根据上下文推理的;b. 分词错误;c. 米哈游在演。对于 a 和 b,根据我常拿来预训练的一份 2019 年的中文语料的统计结果,“弹幕” 这个词的内聚度很高,只有万分之几的 overlapping ambiguity,完全没有 combinational ambiguity,所以有理由相信无论是语言模型还是朴素分词算法都不会在这里犯错。本着奥卡姆剃刀法则,与其相信 c,不如认为 “逆熵 AI 生成” 实际上是一个 style transfer 任务,或者简单来说,是一个 “变声器”:将任何中之人的语音,变成统一的属于鹿鸣的标准风格

逆熵 AI 的正式定义可能是一个输入输出时长等长的实时 voice conversion (VC) 模型。一般来说 VC 不要求输入和输出一样长,而且往往节奏变化后会更接近目标。但是在直播中,声音和动作是要配合,因此最简单可行的方案就是对输入序列做等长的 neural voice style transfer。当然,为了更好的生成效果和动作配合,也可以将动捕数据一同作为输入特征去训练多模态模型,让模型自己去控制节奏并对齐。这种复杂方案在实时环境下难度较高,且从本次直播的效果来看米哈游暂时还没实现。

我的观点有四个佐证:第一,最决定性的证据来自 “逆熵 AI 生成” 的首秀视频《想听我讲野猪公主的故事吗?》中 01:22 处的学猪叫,如果未做特殊处理,中文 TTS 是不会合成这个声音的;第二,直播 28:05 处口误 “希... 希望” 的第一个 “希” 字如果没有其他输入特征的话不会这么短促;第三,16:17 跳舞时的拍手声被录入,且与动作有延迟(下文 2.2 和 2.4 会对这一现象做出解读);最后,鹿鸣直播中常出现 “呼” 等气声,确实有一些生成模型会添加换气等让声音显得更真实,但我感觉更像是风格迁移时做了特别处理,或是与之相反完全没处理,都可能导致 “呼” 听起来高度相似。

2.2 基于预制动画和表情做 Motion Matching 以改善动捕效果

这部分不是我的专业,用词可能不准确,但线索反而更多一些。

动作捕捉无论采用哪种方案,获得的原始数据都会有丢点和抖动等问题,如果数据清洗做的不够好的话,就会出现一些虚拟主播直播时常见的鬼畜、闪现等问题。同时,由于真人和模型的体型、骨骼等都存在差异,所以即使动捕数据本身没有错误,也可能会出现穿模,或 Inverse kinematics (IK) 中常见的看着就很痛的反关节姿势...

鹿鸣在整个直播过程中动作丰富,自然连贯,但有一个很明显的现象:一些动作反复出现,且极为一致。例如下图中 06:02、07:07、08:10 三个动作。

如何评价米哈游虚拟偶像「鹿鸣」的首次直播  第1张

这里我猜测是将动捕数据与类似 Motion Matching 的技术相结合,以中之人/动捕演员的实时姿势为 context query,在预制的动画库中进行最近邻搜索,然后应用在模型上。即把动捕信号处理问题转化成了一个分类问题。这么做的好处非常明显,不仅能减少数据带来的错误,而且能过滤很多中之人/动捕演员自身的动作变形,让每一个动作都以最美观的样子呈现,比如下图中 22:30 和 29:32 的动作人类很难做到两次完全一致。需要指出的是,这不代表鹿鸣所有的动作都是预制拼接而成的:动捕演员仍按照习惯的方式进行表演,但其动作不会一比一体现在鹿鸣的模型上,而是同时在用身体当摇杆操作鹿鸣。当分类算法的输出高于一定阈值时,动画库中的预制动画会获得更高的优先度,其他情况下优先实时动捕数据。

如何评价米哈游虚拟偶像「鹿鸣」的首次直播  第2张

手部捕捉疑似也单独应用了上述技术,即存在一个包括握拳、伸平、抓等等状态的库,并以同样的逻辑与来自 Xsense Glove 之类的实时信号混合。如下图中 05:54 和 08:06 的手是伸着一个食指的,而 21:25 的同一动作是弯着食指的。不能排除 21:25 实际上是一个整体的单独动作模组,但我注意到鹿鸣出现过单个手指的抖动,且常出现在手部动作切换时,这可能有三种原因:a. 分类算法短时间内先后识别成了 x -> y -> x 三种状态,而 y 状态持续过短导致看起来像抖动;b. 分类算法的输出未达到阈值,所以直接将手部捕捉数据应用出来;c. 单纯是状态切换导致的。

如何评价米哈游虚拟偶像「鹿鸣」的首次直播  第3张

另外,与动作配合的表情可能也是预制的,毕竟米哈游鹿鸣组的招聘 JD 有这个:

如何评价米哈游虚拟偶像「鹿鸣」的首次直播  第4张

2.3 头发和布料的渲染可能是实时的,语音反而可能不是全部实时的

在鹿鸣撩头发时很多弹幕都表达了对技术力的赞美,并好奇是否为实时渲染。从 10:38 和 18:55 的两次撩头发来看,手部的动作是一致的,猜测是采用 2.2 中的方案将预制的手部动作进行 play back,这样能避免一些动捕的不确定性导致的致命穿模或效果不佳。而如下图红圈所示,发丝的物理效果不一致,应该是计算得到的。当然,此处所需的算力并没有网友猜测的那么夸张。

如何评价米哈游虚拟偶像「鹿鸣」的首次直播  第5张

从技术角度来说,基于 2.1 中的方案,语音是可以实时生成的,不过没有必要这么做。整个直播过程中鹿鸣的口误和停顿非常少,这也许是努力彩排的结果,但可能也要归功于预先录制/合成出来的语音和动画。尤其是一些肢体与语音卡点的待机动作,预制能避免语音合成模型和动捕延迟差异导致的不同步。

2.4 舞蹈部分可能通过连续预测实现节奏控制

直播中舞蹈部分的动作轻快而准确,应该是预制的,不过同样是预制也有简单和复杂两种方案。简单的就是纯 play back,在开始和结束处做好动作融合。直播中有个细节,即 16:17 处跳舞时拍手的声音被录进去了,也许这是中之人很敬业在播片的同时跟着跳了(此时出现了轻微的音画不同步),但也有一种可能是做了更复杂的方案:即舞蹈部分也是 Motion Matching 的一环,舞蹈的预制动作通过连续的预测来调整速率,进而跟中之人的动作实现协同,做到由人控制节奏、由参数确保精准。在舞蹈阶段中,搜索空间仅包含分解后的舞蹈动作,加上时间信息和前后依赖关系,应该能达到较为理想的准确度,让舞蹈可快可慢、说停就停。

2.5 短期内无法用人工智能技术取代中之人和剧本编排

这部分涉及自然语言处理 (NLP)、搜索与开放领域问答、知识图谱等,这些都是我的老本行,因此我可以大胆地断言:至少三年内中之人无法被取代,至少五年内无法实现自主的节目生成。这已经是较为乐观的预测了,通用人工智能之类的更是无从谈起。

取代中之人的难点有很多,但其中语音合成和动作生成反而是最有希望被解决的,真正让人绝望的是自然语言理解、common sense、computational creativity 等几座绕不过的大山。自然语言理解与 common sense 的挑战我在其他问题的回答中已经多次列举过,在此不做展开了。Computational creativity 目前很大程度是依靠输入的特征再叠加一些随机性(如随机初始噪点),内容的产出有不可控性,即使部分可控也无法保证内容是合理的或有价值的,更无法奢望内容是对观众来说有乐趣的。

除了一些硬性的技术限制外,内容合规也是直播中绕不开的一环。以开放领域问答为例,无论是 generative model 还是 retrieval-based,都很容易被恶意引导,然后产生不合规的内容,导致直播间被封。内容生成中的审查是一个很复杂的问题(涉政、偏见、事实错误等等),不是简单的关键词列表能覆盖的。个人势或小团体搞一些实验性的互动 AI 主播还好,但对米哈游来说这是不可承受的风险,除非这个 AI 主播你让她干啥她都:

如何评价米哈游虚拟偶像「鹿鸣」的首次直播  第6张

再次声明以上内容都是以 “如果是我的话我会怎么做?” 为出发点的猜测,但米哈游是自由的。

The End