内容提要
快手电商直播团队构建了业界首个大规模实时字幕系统,通过统一媒体PTS时间线、源站单份生产、两级级联分发和客户端版本化渲染,将端到端延迟从2秒降至500毫秒,字错率从7.81%降至3.51%,支撑千万级并发,并沉淀出可复用的实时AI工程范式。
延伸解读
实时字幕的四个目标为何相互制约
文章指出,直播字幕需同时满足准、快、齐、稳四个目标,但它们彼此牵制。例如,延长切句窗口可提升语义完整性,却增加首字延迟;提高中间结果输出频率能让字幕更早出现,但会导致文本修订和视觉跳动;每位用户直接回源虽简单,却无法承受高并发。因此,系统设计必须在端到端链路中重新平衡这些矛盾,而非孤立优化单一指标。
PTS时间线:解决声画字同步的关键
直播字幕面临模型时间与媒体时间不一致的难题。ASR返回的是相对识别会话的时间,而用户端展示必须服从实际播放PTS。若未统一时间线,不同进房时刻、缓冲和追帧都会导致字幕漂移。快手通过PTS Queue将识别结果映射到直播媒体时间线,并由播放器PTS驱动字幕展示,从而确保无论用户何时进房,声画字都能保持同步。
级联分发:支撑千万级并发的架构选择
字幕消息虽小,但频率高、持续时间长,按用户直连源站会放大连接数、跨地域带宽和故障影响。系统采用房间级事件和固定两级级联:源站生产一份字幕,二级节点聚合房间事件,一级节点面向用户扩散。这种架构减少回源和重复计算,并通过有界队列、背压处理和版本化事件(sentenceId+revision)保障高并发下的稳定性和一致性。
从踩坑到范式:实时AI工程的可复用经验
项目初期曾将CER作为主要验收标准,但发现准确率无法回答字幕是否在正确时间以稳定形态出现。直播字幕本质是持续修正的增量结果流,需关注首字延迟、尾延迟、声字偏移等端到端指标。此外,用短请求容量模型设计长连接系统会导致高负载下队列积压。最终沉淀出统一媒体时间线、版本化中间结果、级联分发等可复用范式,为实时翻译、摘要等能力提供基础。
Q&A
快手电商直播的实时字幕系统最终达到了怎样的性能指标?
端到端耗时从1.5~2秒降低到400~500毫秒,字错率从7.81%降至3.51%,并支撑千万级持续并发。
为什么直播字幕比点播字幕更难做?
点播字幕可离线生成且有统一播放起点,直播字幕两者都没有。观众任意时刻进房,网络缓冲、追帧和清晰度切换状态不同;流式ASR会持续追加、回退和修正;字幕需以高频小消息长时间推送给大量在线用户,且信息强时效,晚一两秒就可能失去价值。
直播字幕系统需要同时满足哪四个目标?它们为什么互相牵制?
四个目标是准、快、齐、稳。准指复杂语音环境下准确识别;快指用户感知整条链路而非模型推理一段;齐指字幕跟随用户实际播放位置;稳指高并发下控制队列和故障影响。它们不能分别优化:切句更长语义更完整但延迟上升;中间结果发得更勤字幕出现更快但修正和跳字增多;每位用户直接回源易实现但无法承受大规模并发。
系统如何保证字幕与直播画面同步?
采用统一媒体时间线,将识别结果映射到直播媒体PTS。解码器输出PCM帧时把每段音频的PTS和duration写入队列,识别结果返回后根据文本覆盖的音频时长定位对应帧区间,得到原始直播时间线上的起止PTS,再写入字幕事件。客户端由播放器PTS回调驱动字幕出现、追加和消失,无论用户何时进房都能保持声画字同步。
如何将一份字幕生产结果分发给千万级用户?
采用房间事件加固定两级级联分发。按“直播间×事件类型”组织主题,字幕先进入事件源站,二级节点聚合房间事件,一级节点靠近用户并承接大量客户端连接。首位用户完成级联调度,后续用户优先复用已有主题的边缘节点。客户端使用流式连接,事件携带递增ID和重试提示,支持断线续接、去重与快速恢复。
客户端如何处理流式ASR的中间结果修正,避免阅读跳动?
客户端按PTS缓存未来短时间窗内的事件,使用sentenceId和revision合并同一句的中间态和最终态,依据词级PTS渐进吐字,发生修正时只更新尚未过期的句子,文本超出单行容量后从稳定断点续显,展示、切换和缓存清理由播放器PTS统一驱动。
项目早期踩过哪些主要坑?
坑一:把模型识别准确率当成主要验收标准,忽略了字幕是否在正确时间以稳定形态出现。坑二:用短请求服务的容量模型设计长连接分发系统,只关注平均延迟和峰值QPS,未考虑在线连接数、消息大小、连接时长和房间热度分布,导致高负载下出现内存积压、线程阻塞和故障恢复时的流量高峰。
给同行的实践清单有哪些关键建议?
先看链路再看模型,测算从主播发声到字幕上屏的完整链路和每一跳延迟;用媒体PTS锚定时间,协议设计之初就确定sentenceId、revision、最终态、事件ID和过期策略;模型优化是长期工程,需持续进行动态VAD、热词挖掘、人声增强、领域微调和错例回流;按房间生产、按地域扩散,压测覆盖连接数、消息频率、消息大小与持续时长;三层指标逐个验收:技术层、体验层、业务层。