教练控制台
连接中…
大模型 —
语音 —
用户端
说明
实时语音反馈的 AI 运动教练 Agent
拖动左边的参数,教练会当场判断该不该开口、说什么,并念出来。
跑者参数
改完点应用
目标配速
5:10
心率上限
173
人格
专业纠错 · 直接、少废话
温和陪伴 · 描述现状、允许商量
激励挑战 · 语气强、往前推
今天的课
轻松跑
节奏跑
间歇
长距离
恢复跑
比赛
目标距离
5.0 km
训练计划记忆:加载中…
话术引擎
在线(Edge 神经语音)
离线(本机 SAPI,断网可用)
音色
云希 · 男 · 年轻亲和
云健 · 男 · 有精神
云扬 · 男 · 沉稳
晓晓 · 女 · 温柔
晓伊 · 女 · 活泼
应用参数(重置会话)
人格只改说话方式,不改安全阈值。
心率上限和配速目标来自训练计划(课型决定),换人格不会动它们 —— 不然「温和」人格就成了「不安全」人格。
跑步控制
t = 0 s
心率
148
配速
5:10
推进 1 秒
推进 10 秒
推进 1 分钟
▶ 自动播放
重置到 0
每一步都会真正调用本地 agent:
状态 → 决策 → 意图 → 话术 → 语音
。 不说话的步骤也会记录原因。
情景预设
稳态轻松跑
心率飙升
悄悄掉速
上坡吃力
最后冲刺
点一个情景,再点「自动播放」,看教练怎么反应。
实时状态
state_estimator 输出
心率
—
bpm
配速
—
偏离
—
疲劳度
—
心率分区
—
阶段
—
置信度
—
已跑
—
m
教练发言
0 次开口
还没开始。点左边的「推进」或「自动播放」。
最近一次决策
为什么说 / 为什么不说
—
直接问教练
走真大模型
问
提问会带上当前目标配速与心率上限,交给大模型回答, 再过一遍话术守门(≤20 字 / 无阿拉伯数字 / 不做医学诊断)。
这个页面是怎么连上 agent 的
网页不是播放录制好的音频,而是每推进一步就真的问一次 agent。
网页 ──POST /api/tick──▶ state_estimator → coach/policy → coach/intent → 话术
↓
网页 ◀──audio_url──── 语音合成(在线 Edge / 离线 SAPI)◀── 守门 ◀── 大模型 或 模板
所以你在左边拖滑块、切情景,右边的每一句话都是 agent
当场算出来
的。 本地服务:
—