一、项目背景
随着大语言模型在通用场景下的普及,自然语音对话正在成为新一代家庭机器人、陪伴机器人、儿童教育机器人的核心交互方式。与传统"语音唤醒 + 命令词"模式不同,实时全双工语音对话要求:
- 低延迟 —— 用户开口到 AI 开始回复的端到端延迟控制在 1 秒以内;
- 可打断 —— 用户在 AI 说话过程中随时可以插话(Barge-in),AI 能立即停止当前回复并响应新问题;
- 无回声 —— 音箱播出的 AI 声音不会被麦克风重新录入形成自激循环;
- 个性化 —— 不同用户(老人、儿童、成年人)听到的是语气、话题与用词都不同的 AI 陪伴者。
然而,把这一整套能力稳定地跑在 Raspberry Pi 5 这样的边缘设备上,并与家庭机器人底盘深度融合,在工程上面临大量挑战:音频总线稳定性、实时回声抑制、流畅打断机制、上下文个性化注入等。本项目从零搭建完整可用的端侧语音交互方案,沉淀出一份可复用的家庭机器人实时对话参考设计。
二、项目目标
面向家庭场景(尤其是儿童陪伴 + 老人看护方向),研制一套端到端可落地的实时语音交互系统,实现:
- 桌面开发端 + Pi5 部署端 双平台一致的交互体验;
- 接入主流大模型实时语音服务,享有最新多模态对话能力;
- 跨平台图形化前端,提供唤醒、音量调节、挂断、状态指示等直观交互;
- 可打断 + 抗回声 —— 接近商用产品的自然对话体验;
- 人设与用户背景注入 —— 通过系统提示一次注入,实现角色个性化;
- 与机器人小车集成 —— 可扩展为"语音驱动的家庭机器人",支持语音导航、传感器状态播报等。
三、系统架构
系统自上而下分为四层:图形化前端 → 语音中台(Audio Bridge)→ 云端实时语音链路 → 端到端多模态语音大模型。上行链路负责采集、门控、静音策略与 Barge-in 检测;下行链路负责合成语音播放与文字转写展示。
硬件平台
| 开发端 | 桌面操作系统 + USB 阵列麦克风 |
|---|---|
| 部署端 | Raspberry Pi 5 · Ubuntu · ROS2 机器人操作系统 |
| 麦克风 | USB 阵列麦克风,免驱即插即用,带硬件 AEC |
| 播放器 | USB 音箱 / 3.5mm 耳机口 |
| 网络 | WiFi 联网 |
四、关键技术方案
1. 双状态 AEC 回声消除
在没有通话级硬件 AEC 的边缘设备上,纯软件方案难以彻底清除音箱到麦克风的回声。本项目采用双状态静音门控策略:
- SPEAKING 态(用户说话 / AI 已播完):正常采集并上传麦克风数据;
- PLAYING 态(AI 正在播放):上行通道切换为静音帧,从根源切断回声路径;
- 冷却期(COOLDOWN):AI 播完后保持短时静音,避免功放余音被采集。
配合本地 Barge-in 检测(音量阈值 + 连续帧计数),实现:
- 完全消除回声 —— 长时对话测试中实现零回声循环;
- 可打断对话 —— 用户可在 AI 说话过程中随时插话,AI 立即停止响应新问题。
2. 能量 + VAD 双重门控
Pi5 端采用能量阈值 + 语音活动检测的双重门控机制,在静默时段完全不上传音频,减少无意义的网络流量与服务端 token 消耗:
- 能量低于阈值 → 本地直接过滤;
- 能量过阈值 → 送入 VAD 算法二次判定;
- 两重门控同时通过 → 上传大模型。
3. 人设与用户背景注入
采用系统提示一次注入的轻量方案,在建连时传入 人设段 + 用户背景段 拼接后的完整 system prompt:
- 人设段:阳光知性大男孩形象,轻快有活力,回复简短精炼;
- 用户背景段:例如"幼儿园大班男孩(5–6 岁),喜欢英语与机械/电子";
- 风格规则:只在明确提问时回答、1–2 句话、禁止复读、不主动发起话题等。
该方案零架构改动、延迟零增加、即可生效。后续可平滑升级为动态刷新 + 知识库检索,支持病历、体检报告等大文档的按需注入。
4. 全双工状态机
后端采用三态状态机:
用户唤醒即建连,长时无语音自动断连回到离线态。整条对话链路可靠可观测,异常易于恢复。
5. 跨平台图形化前端
基于 Flutter 跨平台 UI 框架打造桌面 + 嵌入式双端应用,共享同一套界面代码:
- 橙色电源按钮:后端未启动 → 点击唤起服务;
- 蓝色麦克风按钮:已连接 → 点击开始对话;
- 红色挂断按钮:对话中 → 点击立即结束;
- 音量滑块 + AI 文字转写气泡 + 状态指示灯。
五、App 界面预览
前端采用深色主题,主屏以"情绪表情 + 时间问候语 + 可横滑的信息卡片"为核心;底部为音量滑块与状态按钮。下图为桌面端待命态的两种首屏:
界面要素:左上关闭、右上电量与时间、顶部情绪表情 + 时间问候、中部横滑信息卡(天气 / 日程 / 健康)、底部音量滑块、橙色电源按钮(离线态入口)。点击电源按钮即唤起后端,进入待命;再次点击即开始对话。
六、工程亮点
- 回声完全清除 —— 双状态 AEC + 客户端 VAD 门控,长时对话测试零回声循环;
- 真实打断可用 —— 功放余音误打断率低,真实打断成功率高;
- 双平台一致 —— 桌面端与 Pi5 端提供一致的交互体验与可靠性表现;
- 嵌入式稳定性 —— 深入定位并解决了 Pi5 USB 总线供电、音频丢帧、设备枚举等一系列嵌入式音频特有的工程问题;
- 开机自启动 —— 部署端支持系统服务形式的开机自启,满足"插电即用"的家庭设备使用预期;
- 可扩展的知识注入通路 —— 静态提示 → 配置文件 → 动态刷新 → 向量检索增强,演进路径清晰。
七、应用场景
- 儿童 AI 陪伴机器人 —— 以个性化人设陪伴学龄前儿童学英语、玩机械/电子、讲故事;
- 独居老人家庭护理助手 —— 注入家庭信息、健康档案与用药计划,主动提醒吃药、应对紧急情况;
- 家庭服务小车 —— 结合机器人底盘,实现"去厨房""电量多少""前面有什么"等语音指令驱动的室内导航与环境感知;
- 教育科研演示平台 —— 作为高校人工智能、机器人、物联网相关课程的参考实现,支持学生开展二次创新。