先看结论:两条链的差别在起点
数字人常被当作一个统一的技术类别,好像只要有了嘴型自然的形象,接上不同的台词就能扮演任何角色。但把工作流摊开来看,主播和教练的差异从第一个环节就开始了。
主播链的输入是外部世界的事件:比赛里的进球、犯规、换人、比分变化。这些事件与用户无关,所有人看到的事实必须一致。教练链的输入是用户自己的身体:摄像头里的画面、手机或智能鞋里的传感器信号,每个用户、每一次动作都不同。
一条链关心“世界发生了什么”,另一条链关心“你刚才做了什么”。所以它们后面的模块、出错的方式、允许的延迟,几乎都不一样。
主播链:从体育数据到个性化分发
按顺序,主播链可以写成七个环节:
- 体育数据:来自结构化赛事数据与事件流,带有时间戳与来源。
- AI理解:识别哪些是有效事件、哪些是重复或待确认的信息,把它们对应到具体球员、球队和比赛阶段。
- 内容规划:决定这一刻该讲什么,是进球回放、数据补充,还是战术小结。
- 文字生成:把规划好的要点变成播报稿,数字与人名从槽位取值,而不是靠模型记忆。
- 语音生成:把稿件合成语音,处理术语读音与语速。
- 数字人驱动:根据语音生成口型、表情和简单的手势。
- 个性化分发:在允许的范围内,按用户关注的球队或深度调整内容的侧重。
这条链的核心约束是事实先于表达。前四步都在保证“说的是对的”,后三步才是“说得像人”。为什么事实约束这么重要,可以参考AI体育主播最难的是别把比赛讲错一文中的展开。
教练链:从摄像头到动作演示
教练链同样可以拆成几个环节:
- 摄像头与传感器:采集视频、加速度、心率等输入,并记录画面质量与佩戴状态。
- 姿态分析:提取骨骼关键点,计算关节角度、动作轨迹、节奏和左右差异。
- 技术问题识别:把数值变化转成“哪里做得不对”,比如下蹲时髋部没有充分后移。
- 反馈生成:从多个问题里挑最重要的一个,换成用户能听懂、下一次能改的一句话。
- 数字人动作演示:只演示与用户动作不同的部分,而不是从头播放一遍标准动作。
这条链的核心约束是看得准,并且说得对时机。姿态分析里的遮挡、视角和深度误差,会直接影响后面的判断。更细的分析方法见数字人教练如何把动作数据变成可执行的反馈。
对照表:同一个数字人,两条不同的链
| 对照维度 | 主播链 | 教练链 |
|---|---|---|
| 输入 | 赛事数据、事件流 | 摄像头画面、传感器信号 |
| 面向对象 | 大量观众,事实一致 | 单个用户,因人而异 |
| 核心判断 | 事件是否确认,哪些事实可用 | 动作哪里错,哪个问题最重要 |
| 文字的来源 | 槽位与结构化事实 | 动作分析结果加教学话术 |
| 常见出错点 | 数据过期、实体混淆、数字写错 | 关键点误检、遮挡、误判动作阶段 |
| 延迟的含义 | 讲了已经过期的内容 | 纠正了一个已经过去的动作 |
| 出错后的处理 | 撤回、更正、保守表述 | 降低反馈强度、改为训练后总结 |
| 个性化 | 只调整侧重,不改事实 | 反馈内容本身就是个性化的 |
需要说明,表里只是设计层面的归纳,不含任何实测数值。
两条链交汇的地方
看到差异之后,也要看到共用的部分,否则就成了两套互不相干的系统。两条链在下面几处会汇合:
- 语音与口型:无论是播报还是教学,最后一步都是把文字变成语音,再驱动口型与表情。这一段可以共用同一套引擎,但语气与语速的参数不同。
- 形象与风格:形象层负责“像不像同一个品牌的数字人”,它不应该影响事实和判断。
- 体育知识:战术术语、动作要点、规则说明,两边都需要,最好由同一份知识库维护。
- 用户偏好:用户喜欢简短的提示还是详细的解释,这种偏好在两条链里都有用,但要注意它只能影响表达方式,不能改变事实或安全建议。
延迟:同一个词,两种问题
“延迟”这个词在两条链里含义不同,处理方式也不同。
主播链的延迟,本质上是事件确认与播出之间的时间差。稍微慢一点通常可以接受,但把已经变化的比分当作现在的比分讲出来,就是事实错误。合理的设计是先给保守的表述,确认后再补充,并且允许更正。这个取舍在AI主播慢两秒和说错一句话的比较里讨论过。
教练链的延迟,则和动作阶段绑定。举例来说,下蹲动作的最低点只持续一瞬间,如果等分析完再提醒,用户可能已经站起来了。所以教练链的一部分反馈应放到“动作之间”的间隙,或者放到训练后总结,而不是硬要即时说出来。
一个举例:同一晚上的两次调用
假设某位用户晚上先看了一场比赛,第二天早上做训练。前一晚,主播链在处理事件流时,遇到一次“进球待确认”的信息,先用“球进了,正在等待确认”这样的保守表述,确认之后再补充球员与时间。第二天早上,教练链在处理摄像头画面时,发现连续几次下蹲的膝盖内扣,于是选择在这组动作结束后给出一条提醒,而不是每一次都说。
两次调用用的是同一个数字人形象,但走的是完全不同的链:一条围绕“事实确认”,一条围绕“动作与时机”。这个例子的场景与数字均为示意,用来说明链路的差别,不代表某个已实现的功能效果。
个性化分发:为什么只放在主播链的末尾
主播链的最后一步是个性化分发,这个位置是有意安排的。如果把个性化放在前面,比如按用户偏好去挑选“事实”,就可能让不同用户看到互相矛盾的比赛描述。放在末尾,意味着事实、事件和数字已经确定,个性化只做三件事:
- 决定讲多深:有人只要比分和一句话点评,有人愿意听到传球网络与跑位的细节。
- 决定先讲谁:关注某支球队的用户,先听到他关心那一队的变化。
- 决定用什么节奏:简短提示还是完整讲解。
教练链则相反,反馈本身就依赖个体:同样是下蹲,不同人的关节活动度、训练水平和当天状态不同,最应该纠正的问题也不同。所以教练链的个性化发生在“判断”环节,而不是最后一步。这也解释了为什么两条链不能共用同一个“个性化模块”。
失败时各自怎样退回
一条工作流是否可靠,主要看出错时怎样处理。
主播链的常见退路有:数据源中断时,暂停实时播报,切换到只说已确认的信息;实体匹配不确定时,用“某位球员”这样的泛指,而不是猜一个名字;语音合成失败时,退回文字字幕。
教练链的常见退路有:画面质量太差、关键点置信度低时,不给出具体纠正,只提示调整机位与光线;识别结果在相邻帧之间跳变时,把反馈推迟到训练后总结;用户出现明显疲劳或动作严重变形时,优先建议降低强度或结束训练,如果有不适,应停止训练,必要时咨询专业医生。
两条链的退路都指向同一个原则:宁可少说,也不要说错。
设计上的几个原则
从两条链的对照里,可以归纳出江南体育官网在设计数字人工作流时的几条原则:
- 先分链,再共用末端:不要用一套逻辑硬套两类任务,只在语音、口型与形象层共用。
- 每一环都能降级:数据不确定就用保守表述,动作识别不可靠就改成训练后总结。
- 事实与表达分层:个性化只能改变说法与侧重,不能改变比分、阵容或安全建议。
- 保留可追溯性:主播的每个数字应能对应到数据来源,教练的每条反馈应能对应到具体的动作片段。
小结
把体育数字人拆成主播链与教练链,并不是为了增加复杂度,而是为了让每条链只解决自己的问题:一条守住事实,一条看准动作。共用的只有末端的语音、口型与形象,以及底下的体育知识与用户偏好。这也是江南体育官网整理数字人相关内容的出发点。