S07
语音交互与自然语言编程
高中 · 10–12 年级 · 10 课时 × 40–45 分钟
核心问题:怎样让大模型把自然语言稳定地翻译成机器人可执行的动作序列?
项目目标
- 能搭建 ASR—NLU—任务规划—TTS 的完整链路
- 掌握提示工程与工具调用(function calling)
- 能设计安全护栏,处理歧义与危险指令
领域落点
AI:LLM 作为任务规划器,连接语言与机器人能力
硬件:麦克风阵列、扬声器、上位机、底盘/机械臂
算法:意图识别、槽位抽取、任务规划、工具调用
10 课时大纲
2 + 6 + 2| 课次 | 课题 / 驱动问题 | 关键知识点 | 学生任务 | 产出 |
|---|---|---|---|---|
| L01 | 语音交互链路 一句话要经过几道关? | ASR/NLU/DM/NLG/TTS;端到端 vs 级联;延迟与错误传播 | 搭建最小语音链路(录音→识别→打印),测量每级延迟与错误率。 | 链路时序与指标 |
| L02 | 命令词与语料 识别率为什么因人而异? | 口音/语速/距离;语料多样性;热词与语言模型 | 采集 8 位同学各 10 条指令,统计识别率,找出最易错词并加热词。 | 语料与识别报告 |
| L03 | 意图识别与槽位 “去厨房扫地”里有哪些信息? | 意图分类;槽位(地点/动作/时长);规则 vs 模型 | 定义 6 类意图与 4 个槽位,用规则+小模型实现解析,测试 50 条语句。 | 意图槽位解析器 |
| L04 | LLM API 与提示工程 怎样让模型稳定输出结构化结果? | 系统提示与约束;JSON Schema 输出;少样本示例 | 设计提示词,让模型把自然语言转成 `{action, target, params}` JSON,测试 30 条。 | 提示词 + 测试集 |
| L05 | 自然语言→任务计划 一句话可能对应一串动作 | 任务分解;依赖与顺序;可行性检查 | 让模型生成 3-8 步计划,人工检查可行性,统计计划可用率。 | 任务计划生成器 |
| L06 | 工具调用 让模型“能动手”而不是“只会说” | 函数/工具定义;调用与结果回填;失败重试 | 把 `move_to/clean/stop/dock` 注册为工具,实现模型调用并执行。 | 工具调用 demo |
| L07 | 安全护栏 模型说“把桌子推倒”怎么办? | 白名单动作;危险指令拦截;二次确认 | 设计动作白名单与危险词拦截,构造 20 条对抗指令测试拦截率。 | 安全策略 + 测试 |
| L08 | 多轮对话与澄清 说不清时应该反问 | 指代消解;缺失槽位追问;上下文管理 | 实现“去那边扫一下”的追问(哪边?扫多久?),测试 10 组多轮对话。 | 多轮对话 demo |
| L09 | 端到端语音控制 从说话到机器人动起来 | 全链路集成;打断与取消;超时与降级 | 完成“小科,去会议室扫地,然后回来”的端到端演示,记录成功次数。 | 端到端演示 |
| L10 | 交互评测 好用怎么衡量? | 任务成功率/轮次/耗时;用户主观评分;错误归因 | 邀请 5 位用户各完成 5 个任务,统计成功率与 SUS 问卷得分。 | 交互评测报告 |
说明:本页是教程副本(大纲级),不是完整课件。完整课件、教案、学案、代码与仿真场景按学校进度单独导出。