pollen-robotics/reachy_mini_conversation_app
Talk with Reachy Mini!
Reachy Mini 对话应用 – 它是什么
目的 – 一个 Python 应用,让你可以与 Reachy Mini 机器人对话。它将你的语音流式传输到 Hugging Face 实时语音模型,将转录文本发送给大语言模型(LLM)助手,并将助手的回复转化为机器人动作(舞蹈、头部运动、情绪等)。
关键能力
- 低延迟语音 – 使用 Hugging Face 的实时后端(或本地托管的端点)进行语音转文本和文本转语音。
- 视觉集成 –
camera工具可以捕获一帧并将其馈送到同一实时后端进行图像分析。 - 运动混合 – 队列系统处理高级动作(舞蹈、姿势、呼吸),而“摆动”层响应语音节奏。
- 工具生态系统 – LLM 可以调用一组 工具(例如,
dance、move_head、remember、网络搜索、天气),这些工具可以是本地 Python 模块或远程 Hugging Face Spaces。 - 个性配置文件 – 每个配置文件定义提示词、语音、问候语和默认工具;您可以通过可选的 Web UI 即时切换个性。
- 长期记忆 – 可选的关于用户的持久事实,助手可以在会话之间回忆。
- 本地 VAD 和打断 – 可选的 Silero 语音活动检测在设备上运行,以加快中断处理并实现更流畅的机器人聆听。
工作原理(架构概览)
- 用户说话 → 麦克风音频(16 kHz)被发送到 Hugging Face 实时服务。
- 服务返回转录文本,并可选择返回合成的回复。
- 转录的回合被馈送给 LLM 助手,助手可能请求一个 工具。
- 应用执行该工具(例如,移动机器人的头部、播放情绪片段、查询网络)并将结果返回给 LLM。
- LLM 的最终答案被朗读给用户,并可能触发运动混合。
仓库中的图表(conversation_app_arch.svg)可视化了这些组件。
开始使用
先决条件
- 必须首先安装 Reachy Mini SDK(请参阅链接的仓库)。
- Python 3.12 和 uv(推荐)或 pip 用于依赖管理。
- 可选:如果您不想使用托管服务,可以使用本地 Hugging Face 实时端点。
安装(uv 示例)
uv venv --python /opt/homebrew/bin/python3.12 .venv
source .venv/bin/activate
uv sync # 安装运行时依赖
uv sync --group dev # 安装开发工具(可选)
(或使用经典的 python -m venv + pip install -e . 工作流程。)
配置
复制 .env.example → .env 并调整变量,例如:
HF_REALTIME_CONNECTION_MODE–deployed(默认)或local。HF_REALTIME_WS_URL– 自托管后端的 WebSocket URL。LOCAL_VAD_ENABLED/LOCAL_BARGE_IN_ENABLED– 切换设备上的语音检测和中断。REACHY_MINI_MEMORY_ENABLED– 打开/关闭持久记忆。
在 Web UI 中编辑的设置会持久化到 settings.json,并覆盖 .env 默认值。
运行应用
reachy-mini-conversation-app # 仅控制台模式
reachy-mini-conversation-app --ui # 同时启动 Web UI(http://127.0.0.1:7860/)
确保 Reachy Mini 守护进程首先运行;否则您将看到 TimeoutError。
CLI 标志允许您禁用相机(--no-camera)、选择网络上的特定机器人(--robot-name)或启用详细调试(--debug)。
工具 – 助手可以做什么
| 工具 | 它做什么 | 它在哪里 |
|---|---|---|
dance / stop_dance |
从公共 舞蹈库 数据集中排队或清除舞蹈序列。 | 核心安装 |
play_emotion / stop_emotion |
从 情绪库 数据集中播放短情绪音频片段。 | 核心安装 |
camera |
捕获一帧并通过实时后端运行(需要相机)。 | 核心安装 |
move_head / head_tracking / sweep_look |
控制头部姿势或跟踪面部。 | 核心安装 |
remember / forget |
存储或删除关于用户的短事实(持久化在 memory.v1.json 中)。 |
核心安装 |
volume_control |
通过机器人守护进程获取/设置扬声器或麦克风音量。 | 核心安装 |
robot_status |
查询机器人元数据(软件版本、Wi-Fi IP、IMU、已安装应用)。 | 核心安装 |
pollen_robotics_reachy_mini_search_tool__search_web |
通过预先发布的 Hugging Face Space 进行网络搜索。 | 远程 Space |
pollen_robotics_reachy_mini_weather_tool__get_weather |
当前天气查询。 | 远程 Space |
pollen_robotics_reachy_mini_time_tool__get_time |
时区感知的时钟信息。 | 远程 Space |
pollen_robotics_reachy_mini_knowledge_tool__* |
公司/产品常见问题解答和文档搜索。 | 远程 Space |
您可以通过创建一个继承 Tool 的 Python 模块并将其放置在 src/reachy_mini_conversation_app/tools/ 中来添加 本地工具。远程工具通过安装实现 MCP API 的 Hugging Face Space 来添加。
自定义配置文件和个性
配置文件位于 profiles/ 下(或通过 REACHY_MINI_CUSTOM_PROFILE 指定的自定义目录)。每个配置文件包含一个 profile.md 文件,其中包含:
- 提示词(Markdown 正文),塑造助手的角色。
- 可选元数据(
voice、greeting、default_tools)。 hidden标志,用于从 UI 中隐藏。
UI 允许您创建、选择和编辑配置文件,并为每个个性启用/禁用单个工具。
高级主题
- 本地 VAD:Silero VAD 模型 v6.2.1 在首次运行时下载、缓存,并使用 ONNX Runtime 运行,以实现亚秒级检测。
- 打断:启用后,如果机器人检测到用户在说话,它会降低播放音量,从而实现平滑中断。
- 调试诊断:
--debug暴露/static/vad-monitor.html和/rpcWebSocket,用于流式传输 VAD 概率和状态变化(有助于调整延迟)。 - 多机器人:使用
--robot-name来寻址同一子网上的特定守护进程。
谁可能使用这个?
- 研究人员 构建具身对话代理。
- 教育工作者 在物理机器人上演示多模态 AI(语音、视觉、运动)。
- 爱好者 想要一个即插即用的语音控制机器人,并具有可扩展的工具插件。
许可证
该仓库根据 MIT 许可证 发布(请参阅 LICENSE)。
相关
- 项目
- Dispatch
- Dispatch
- 项目
- 项目