一段直播时间线里的冲突
先看一段假设的时间线(示意,时间为举例):
- 00:12 观众问:“你今天用的是哪个英雄?”主播开始回答,预计说十秒。
- 00:16 游戏事件:对方最后一个防守目标即将刷新,己方开始集结。
- 00:19 观众刷屏:“主播是真人吗”,短时间涌进几十条。
- 00:21 团战爆发,己方先手击倒两人。
如果系统按到达顺序处理,主播会先讲完英雄选择,再回应刷屏,等轮到团战时,画面里已经打完了。观众听到的是一个非常礼貌、非常有互动感、却完全没有在看比赛的主播。这里的问题并不是回答质量,而是没有一个东西在决定“现在该说什么”。
直播间的四路输入
把话题拆开看,主播在同一时刻要面对四路输入:
| 输入 | 典型例子 | 时效 | 可延后吗 |
|---|---|---|---|
| 游戏关键事件 | 团战、目标争夺、翻盘 | 几秒内 | 基本不可 |
| 正在进行的解说 | 上一句还没讲完 | 当前 | 可分段暂停 |
| 观众弹幕 | 提问、玩梗、情绪 | 十几秒到几分钟 | 多数可以 |
| 历史上下文 | 前面聊到一半的话题 | 长 | 可以,但要回收 |
金沙娱乐AI主播的设计思路是让这四路输入先进入同一个调度器,而不是各自直接连到语言模型。语言模型只负责“说得像人”,什么时候开口、说哪一路,由调度器决定。
事件优先级队列
一个可行的做法是给每个待处理项打三个数:优先级、过期时间、可打断性。
优先级怎么定
- 最高档:游戏里的关键事件,比如团战开始、最终决胜、目标被夺。它们有明确的时间窗口,错过就不再有意义。
- 中档:与当前比赛相关的观众提问,比如“这波该不该开”,可以在稍后的空档回应,还能顺势变成解说内容。
- 低档:闲聊、玩梗、重复问题,可以合并回答,也可以不回答。
优先级不是固定的。团战和目标争夺阶段,整体收紧,只放行高优先级;对峙和回城阶段则放松,让弹幕互动占据更多时间。这一点需要依赖局势判断,见AI主播怎样理解游戏局势。
过期时间
每个项目都要有保质期。“你今天用哪个英雄”在两分钟后回答仍然成立,但“这波团战谁开的”在十秒后就没有意义了。过期的项目直接丢弃或改写成回顾,而不是硬着头皮回答。
可打断与可延后
回答分成三种形态:
- 短答:一句话以内,可以在事件间隙直接插入。
- 分段答:长回答拆成几个小段,每段结束处允许被事件抢占,没说完的部分回到队列。
- 延后答:遇到高优先级事件,主动说一句“等一下,先看这波”,把问题记下,之后再补。
“先看这波”这一句非常关键。它让观众知道自己被听见了,也让事件优先有了一个自然的说法,不显得突兀。
弹幕先过滤,再进队列
弹幕不应该原样送到主播面前。通常的做法是在入口做三件事:
- 归并:短时间内含义相同的问题合成一条,附上“有多少人在问”,这本身就是排序依据。假设十几条都在问“是不是真人”(示意),主播回答一次就够了。
- 相关性打分:与当前比赛有关的问题排前,比如“这波要不要退”;与比赛无关的问题排后。
- 风险筛选:涉及隐私、攻击性言论或诱导性内容的弹幕,直接由规则拦截,不进入语言模型,也不占用队列。
有了这一层,队列里的每一项才是有意义的“待办”,而不是一股原始的文字洪流。
一个容易被忽略的例外
有时弹幕自己就在讨论刚发生的关键事件,比如团战结束后满屏都在问“刚才那个走位是怎么做到的”。这类弹幕不应该被当成普通闲聊,因为它和事件绑定:调度器可以把它升到中高档,让主播用一次回顾同时回答弹幕和解说。也就是说,弹幕与事件不是永远对立的,好的调度会寻找二者重合的时刻,一句话满足两路需求。
话题回收
被打断的话题如果直接消失,观众会觉得主播在敷衍。合理的做法是把它们记成“待办话题”,包含原问题、已经说过的部分、可以在什么时机接回。局面稳定后,主播再主动说“刚才那个问题,我接着讲”。这需要主播持续记住自己讲过什么,相关思路可以看实时解说为什么需要比赛记忆。
同时要防止两个反方向的问题:一是待办堆积,几分钟前的话题已经没有人关心,应该按保质期自动清理;二是同一位观众连续提问占满主播,需要给每个观众设置冷却,把多位观众的相同问题合并成一个回答。
上线前的失败样例
可以事先准备几段固定的模拟直播,专门测试调度器(数字均为假设):
- 弹幕洪峰加团战:三十秒内涌入大量弹幕,同时打一场团战。检查主播有没有在团战开始的窗口内说话。
- 长回答被抢占:让主播回答一个需要三十秒的问题,中途插入一个目标事件。检查它是分段暂停,还是讲完才处理事件。
- 重复提问:同一个问题被不同观众问五遍。检查它是合并回答,还是重复说五遍。
- 回收失败:一个话题被打断后,五分钟内看它有没有被接回,或者被合理地清理掉。
这样的清单在金沙娱乐AI主播的开发过程里比主观试听更有用,因为它把“感觉不太对”变成了可以复现的用例。
怎样判断调度做得好
不建议只看回答是否自然。更有用的指标是:
- 关键事件发生后,主播的第一句话落在哪个时间窗口内(用录像回放统计)。
- 被延后的问题有多少最终得到了回应。
- 主播是否出现过“正在回答弹幕,同时画面已经发生了团战”的错位。
当直播时间变长以后,还会出现话题重复和语言机械的问题,这是另一个层面的调度,需要话题库与去重来配合,可参考24小时自动直播怎样避免话题重复。
一个好的AI主播不是永远有回应,而是知道什么时候先不回应。下一个值得追问的问题是:当弹幕本身就在讨论刚刚发生的关键事件时,它算高优先级还是中优先级?