同一次击杀,四种完全不同的解说
假设某MOBA游戏里,一名玩家在第18分钟打出一次一换一的击杀(示意场景)。这次击杀可能是四件完全不同的事:
| 局势背景 | 这次击杀的性质 | 合适的解说 |
|---|---|---|
| 双方经济接近,无关目标 | 普通击杀 | 一句话带过,语气平稳 |
| 正在争夺关键目标,人数刚好被打平 | 关键团战的开端 | 语速加快,只报信息 |
| 己方落后很多,这次击杀保住了基地外塔 | 逆风的第一口气 | 点出“还有机会”,不必喊胜利 |
| 击杀发生在决胜团战的最后一秒 | 最终决胜 | 先让画面和音效响,再收束一句 |
同样的画面,同样的“某人击杀了某人”事件,对应的话术几乎没有交集。能说出“漂亮”的系统很多,能分清这四种情况的系统很少,这是AI主播和“会说话的数字人”的分界线。数字人解决的是形象与声音,游戏理解解决的是说得对不对。
三层结构:看见、判断、开口
一个合理的设计通常把主播拆成三层,而不是把画面直接塞给大模型让它自由发挥。
- 感知层:Game Vision读取画面里的血条、技能冷却、小地图、比分牌;如果游戏能提供事件日志或观战接口,就优先用结构化数据,画面识别只做补充和校验。输出是带时间戳的事件,比如“击杀、防御塔倒塌、目标刷新”。
- 局势层:维护一份不断更新的比赛状态,包括比分差、经济差、目标控制、最近几分钟的走势,以及己方是否处在追分状态。这一层负责回答“这次击杀意味着什么”。
- 表达层:大模型在这里才登场,拿到的输入是“事件加局势标签加已经说过什么”,而不是原始画面。它决定措辞、语气和长度。
局势层不需要复杂,一个能跑的起点是几个数字加一条规则:最近三分钟的经济差变化、当前目标是否在争夺、双方存活人数,再配一条“落后方连续两次团战获胜即标记为逆风翻盘候选”的判断(阈值均为示意,实际要按具体游戏调)。这些标签比一段自由文本可靠得多,也方便写测试。
这样分层有一个很实际的好处:出了错可以定位。如果主播把“逆风翻盘”说成了“普通击杀”,问题出在局势层的阈值,而不是要去调提示词。金沙娱乐AI在设计主播时采用的也是这种分层思路:先把事件和局势做成可检查的中间结果,再交给表达层。多路输入怎样对齐时间,属于感知层的另一个话题,这里不展开。
说什么,和什么时候说
(这一节的结论都来自公开研究与常见工程做法,不是某个产品的指标。)
游戏解说要同时解决两件事:说什么,什么时候说。相关研究把这两点分开处理,并提出了无需微调的提示式解码:固定间隔地预测下一次发言,或按“上一句话有多长”动态推算下一次发言的时间点,后者在时间点和内容上更接近人类解说。另一类工作用并行文本生成,让下一句提前准备,缩短两句解说之间的静默。
放到工程里,这意味着三条朴素的规则:
- 一句话的时长决定下一句的起点。上一句要念五秒,就不应该在第二秒判断新事件并打断,除非新事件的优先级更高。
- 说话之前先预生成。事件刚出现就开始准备候选语句,事件确认后只做挑选和微调,而不是从零生成,否则总会慢半拍。
- 确认再断言。击杀发生的瞬间,能说的是“打下来了”,能不能说“团战赢了”要等局势层确认。
沉默是解说的一部分
真人解说员会在团战刚爆发的两三秒里闭嘴,让观众自己听技能音效;会在双方对峙的空档补一句战术判断。AI主播如果被设计成“每个事件都要回应”,就会陷入持续输出的机械感。
所以除了“说什么”,还要有“不说”的策略:短促的击杀连续发生时,合并成一句总结;局势不明朗时,只描述可以确定的部分;主播刚刚讲过某个对比后,同类事件降低播报频率。这些都需要主播知道自己刚才说了什么,这部分见实时解说为什么需要比赛记忆。
几种典型的翻车
- 结果说反:对方已经放弃抵抗、正在拖延时间,主播还在喊“胜负未分”。原因通常是局势层只看击杀,不看经济和基地血量。
- 剧透式解说:画面延迟比数据更新慢一两秒,主播提前说出了“基地被推掉了”,观众看到的还是最后一击的前一帧。需要对齐画面与数据的时间。
- 误认事件:把队友被击杀识别成己方击杀,只因为击杀提示的位置相似。这类错误应该拿一批固定录像做回归测试。
- 抢话:观众弹幕里有人问问题,主播回答得很自然,却错过了下一个目标刷新。这是另一个话题,见AI主播怎样在弹幕和比赛之间分配注意力。
上线前怎样测
我更愿意用一份“容易说错”的片段清单做回归,而不是靠一次整场直播的观感。清单可以按类型建:逆风翻盘、一边倒的碾压、连续短击杀、长时间对峙、画面被特效遮挡。每个片段写清楚“正确的局势标签”和“不应该说的话”,再检查主播的输出有没有违反。
金沙娱乐大模型的游戏解说方向也是围绕这类清单来验证的,具体接入方式以后续公布为准。评价的重点也要换:语音是否自然是第二位的,局势判断和真实比赛是否一致才是第一位的。如果连这一步都没通过,把数字人形象做得再像真人,观众也只会觉得是在听一个看不懂比赛的人念稿。
如果想在自己的直播里试,可以先从创建AI虚拟游戏主播并设置角色风格的思路入手,把禁区和语气定好再接游戏数据。更难的下一步是:当游戏没有开放任何事件接口,只有一路画面的时候,主播能靠什么保持判断的稳定?