返回项目页
PiCarVoice · 项目详解

家庭机器人实时语音交互系统

面向家庭陪伴机器人的端侧实时语音对话系统,在桌面端与 Raspberry Pi 5 边缘平台上实现低延迟、可打断、带回声消除的自然语音交互。

实时语音对话 Raspberry Pi 5 双状态 AEC Barge-in Flutter 家庭机器人
PiCarVoice 吉祥物 进入幻灯片目录 →
目录

从实时语音到家庭机器人交互闭环

01 · 项目背景

自然语音正在成为家庭机器人的核心入口

传统“唤醒词 + 命令词”只能覆盖少量固定任务,而家庭陪伴、老人看护、儿童教育需要更自然、更连续、更个性化的对话体验。

  • 低延迟:用户开口到 AI 开始回复需要接近实时。
  • 可打断:用户在 AI 说话时可以插话,系统必须立即响应。
  • 无回声:音箱输出不能被麦克风重新录入造成自激循环。
  • 个性化:儿童、老人、成年人需要不同语气、话题和背景知识。
PiCarVoice 吉祥物

PiCarVoice 以自然语音作为家庭机器人交互入口

02 · 项目目标

端到端可落地的家庭机器人语音系统

  1. 双平台一致:桌面开发端与 Pi5 部署端保持一致体验。
  2. 接入实时大模型:使用端到端 Audio-to-Audio 多模态语音能力。
  3. 图形化前端:唤醒、音量、挂断、状态指示直观可见。
  4. 可打断 + 抗回声:接近商用品质的自然对话体验。
  5. 人设与背景注入:通过 system prompt 实现角色个性化。
  6. 小车集成:扩展为语音驱动的家庭机器人。
<1s目标级低延迟体验
AEC回声路径切断
Barge-in真实插话打断
PiCarVoice App 日程健康首屏

桌面端与 Pi5 端共享同一套前端交互设计

03 · 系统架构

前端、语音中台与实时语音大模型

图形化前端(桌面 / 嵌入式)
├── 唤醒按钮(三态:离线 / 待命 / 对话中)
├── 音量调节 + 文字转写气泡
└── 状态指示灯
          │
          ▼
语音中台(Audio Bridge)
├── 麦克风阵列采集 + 扬声器播放
├── 能量 + VAD 双重门控
├── 双状态 AEC:SPEAKING / PLAYING
├── 本地 Barge-in:音量阈值 + 连续帧计数
└── 人设与用户背景注入
          │
          ▼
大模型实时语音服务(Audio-to-Audio)

系统总体架构:前端控制、Audio Bridge 和实时语音服务分层解耦

04 · 平台与部署

桌面开发端 + Raspberry Pi 5 部署端

设备规格作用
开发端桌面操作系统 + USB 阵列麦克风快速调试 UI、音频链路与模型接口
部署端Raspberry Pi 5 · Ubuntu · ROS2家庭机器人边缘平台
麦克风USB 麦克风阵列,免驱即插即用采集用户语音,部分型号具备硬件 AEC
播放器USB 音箱 / 3.5mm 耳机口播放 AI 回复语音
网络WiFi 联网连接实时语音大模型服务

嵌入式音频挑战

  • Pi5 USB 总线供电、设备枚举与音频丢帧需要工程化排查。
  • 扬声器输出与麦克风输入距离近,容易产生回声循环。
  • 桌面端稳定可用的音频参数,迁移到 Pi5 后仍需重新校准。
  • 长时运行需要自动恢复、开机自启和状态可观测。
05 · 双状态 AEC

用状态门控切断回声路径

在边缘设备上,纯软件 AEC 难以彻底消除扬声器到麦克风的回声。本项目采用双状态静音门控,从上行通道切断回声来源。

1SPEAKING用户说话或 AI 已播完,正常采集并上传麦克风数据。
2PLAYINGAI 正在播放,上行通道切换为静音帧。
3COOLDOWNAI 播放结束后短暂冷却,避开功放余音。
4恢复监听冷却结束后恢复采集,等待下一轮用户输入。

效果

  • 回声完全清除:长时对话测试中实现零回声循环。
  • 机制简单稳定:不依赖复杂自适应滤波即可获得稳定效果。
  • 适合机器人:家庭机器人扬声器和麦克风近距离布置时尤其有效。
  • 可与硬件 AEC 叠加:硬件 AEC 负责前级降噪,状态门控负责链路保障。
06 · VAD 双重门控

静默时不上传,无效声音不过网

Pi5 端采用能量阈值 + VAD 的双重门控,在静默时段完全不上传音频,减少网络流量、模型 token 消耗和误触发。

麦克风音频帧
  │
  ├─ 能量低于阈值 → 本地过滤
  │
  └─ 能量超过阈值
        │
        ├─ VAD 判断非语音 → 丢弃
        │
        └─ VAD 判断为语音 → 上传实时语音模型
Energy低成本快速粗筛
VAD语音活动二次判定
Upload只上传有效语音
PiCarVoice App 天气日程首屏

本地门控降低模型调用压力,让待命首屏更像家庭设备而不是开发 Demo

07 · Barge-in 与状态机

用户随时插话,AI 立即停止

本地 Barge-in 使用音量阈值 + 连续帧计数判断真实用户插话,避免功放余音误触发。后端采用三态状态机保证对话链路可观测、可恢复。

SLEEPING 离线 LISTENING 倾听 PLAYING 播放
  • 用户唤醒后建立连接,进入 LISTENING。
  • 模型回复播放时进入 PLAYING,上行静音门控生效。
  • 检测到真实插话时立即停止当前播放,切回新一轮输入。
  • 长时无语音自动断连回到离线态。

为什么 Barge-in 重要

家庭机器人不是电话客服。用户经常会在 AI 没说完时纠正、补充、打断,系统如果无法实时停止,会显得“听不懂人话”。

PiCarVoice 把打断逻辑放在本地,避免完全依赖云端 VAD,从而减少等待和误判。

08 · 个性化

人设与用户背景一次注入

系统在建连时传入人设段 + 用户背景段拼接后的完整 system prompt,实现零架构改动、零额外延迟的人格和上下文定制。

注入内容示例作用
人设段阳光知性大男孩,轻快有活力确定语气、角色与陪伴风格
用户背景幼儿园大班男孩,喜欢英语与机械电子让回答更贴近用户兴趣和年龄
风格规则1-2 句话,只在明确提问时回答,禁止复读控制回复长度与交互节奏

演进路线

1静态提示建连时一次传入。
2配置文件多用户多角色切换。
3动态刷新按家庭状态更新背景。
4知识库检索病历、日程、档案按需注入。
09 · Flutter 前端

桌面 + 嵌入式共享同一套交互

  • 橙色电源按钮:后端未启动时点击唤起服务。
  • 蓝色麦克风按钮:已连接后点击开始对话。
  • 红色挂断按钮:对话中点击立即结束。
  • 音量滑块:始终悬浮于下方,便于家庭场景快速调节。
  • 状态指示:让离线、待命、对话中三个状态清晰可见。
PiCarVoice App 日程健康首屏 PiCarVoice App 天气日程首屏

待命首屏:日程、天气、健康提醒与底部语音入口

10 · 机器人集成

从“会聊天”到“能行动”

PiCarVoice 可作为 PiCarHome 等家庭机器人的自然语言入口,把语音意图转换为导航、状态查询、传感器播报和家庭提醒。

语音导航“去客厅”“到桌子旁边”“回充电点”。
状态播报“电量多少”“前面有什么”“地图建好了吗”。
家庭提醒复诊、吃药、天气、日程和紧急求助。

语音系统不直接耦合底盘细节,而是通过上层任务接口与机器人系统通信,便于后续替换模型和底盘。

语音中台可向下连接机器人导航、感知和家庭任务系统

11 · 应用场景

儿童陪伴、老人看护与教学演示

  • 儿童 AI 陪伴机器人:陪学英语、讲故事、解释机械电子知识。
  • 独居老人家庭护理助手:注入家庭信息、健康档案与用药计划,主动提醒与应急响应。
  • 家庭服务小车:结合底盘,实现室内语音导航与环境感知问答。
  • 教育科研演示平台:用于 AI、机器人、物联网课程的参考实现。
陪伴角色化自然对话
看护日程健康提醒
服务语音驱动小车
PiCarVoice 吉祥物

项目以家庭机器人真实交互体验为目标,而不是单次语音问答 Demo

12 · 工程价值

一套可复用的家庭机器人实时对话参考设计

PiCarVoice 的价值在于把实时语音大模型、边缘音频工程、回声抑制、可打断对话、个性化提示和机器人交互统一到一条可部署链路中。它为家庭陪伴、老人看护和服务小车提供了自然语言入口。

零回声循环 真实打断可用 双平台一致 人设注入 机器人扩展
PiCarVoice App 首屏 回到封面 ↑