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 语音活动检测在设备上运行,以加快中断处理并实现更流畅的机器人聆听。

工作原理(架构概览)

  1. 用户说话 → 麦克风音频(16 kHz)被发送到 Hugging Face 实时服务。
  2. 服务返回转录文本,并可选择返回合成的回复。
  3. 转录的回合被馈送给 LLM 助手,助手可能请求一个 工具。
  4. 应用执行该工具(例如,移动机器人的头部、播放情绪片段、查询网络)并将结果返回给 LLM。
  5. 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 和 /rpc WebSocket,用于流式传输 VAD 概率和状态变化(有助于调整延迟)。
  • 多机器人:使用 --robot-name 来寻址同一子网上的特定守护进程。

谁可能使用这个?

  • 研究人员 构建具身对话代理。
  • 教育工作者 在物理机器人上演示多模态 AI(语音、视觉、运动)。
  • 爱好者 想要一个即插即用的语音控制机器人,并具有可扩展的工具插件。

许可证

该仓库根据 MIT 许可证 发布(请参阅 LICENSE)。

相关

  • 项目
  • Dispatch
  • Dispatch
  • 项目
  • 项目