Token导航 LogoToken导航TokenDH.com
Xiaozhi Alarm MCP logo
音视频未说明官方级别未说明来源级核验

Xiaozhi Alarm MCP

MCP Server

基于ESP32-S3的AI闹钟系统,提供智能语音交互和闹钟管理功能,支持多种硬件平台。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
C++本地部署语音音频

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Jason76789

提供方

Jason76789

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

小智 AI 闹钟系统 (Xiaozhi Alarm with MCP Server)

(中文 | English | 日本語

项目简介

这是一个基于 ESP32-S3 的 AI 闹钟系统,采用 MCP (Model Context Protocol) 服务器架构,提供智能语音交互和闹钟管理功能。项目支持多种硬件平台,具有强大的扩展性和灵活性。

核心功能

1. 智能语音交互

  • 离线语音唤醒(支持 ESP-SR 框架)
  • 流式语音识别 (ASR)
  • 自然语言处理 (LLM) 集成
  • 语音合成 (TTS) 输出
  • 支持多种通信协议(WebSocket 或 MQTT+UDP)

2. 闹钟管理系统

  • 多种闹钟类型:支持一次性闹钟、循环闹钟、倒计时闹钟
  • 持久化存储:使用 NVS (Non-Volatile Storage) 存储闹钟配置
  • 灵活配置:可设置闹钟名称、触发时间、重复模式、间隔等
  • 实时提醒:闹钟触发时播放提示音并震动
  • MCP 工具集成:通过 MCP 协议远程管理闹钟

3. 硬件支持

  • ESP32-S3 芯片平台
  • 多种显示屏:OLED、LCD 支持表情显示
  • 音频编解码:K10AudioCodec 音频处理
  • 摄像头:GC2145 摄像头传感器(可选)
  • LED 控制:地址able LED 条支持
  • GPIO 扩展:PCA9554 IO 扩展器
  • 电源管理:电量显示与低功耗模式

4. MCP 协议扩展

  • 设备控制工具:通过 MCP 协议实现设备控制
  • 硬件抽象层:支持多种硬件平台和传感器
  • 云端集成:可与大模型服务器通信
  • 动态工具注册:根据硬件自动注册可用工具

架构设计

核心组件

  1. Application (main/application.cc)

- 设备状态机管理(12种状态) - 语音交互流程控制 - MQTT 连接管理 - 状态切换与事件处理

  1. Alarm Manager (main/alarm_manager.cc/h)

- 闹钟生命周期管理 - 定时器调度与触发 - 持久化存储管理 - 闹钟数量限制(最多支持10个闹钟)

  1. MCP Server (main/mcp_server.cc/h)

- MCP 协议实现 - 工具注册与管理 - JSON-RPC 2.0 通信 - 设备控制接口

  1. Audio Service (main/audio/audio_service.cc/h)

- 音频捕获与播放 - 编解码处理 - 语音唤醒检测 - 音频效果处理

状态机设计

设备支持以下状态:

  • kDeviceStateUnknown:未知状态
  • kDeviceStateStarting:启动中
  • kDeviceStateConfiguring:配置中
  • kDeviceStateIdle:空闲状态(可休眠)
  • kDeviceStateConnecting:连接服务器
  • kDeviceStateListening:聆听状态
  • kDeviceStateSpeaking:播放状态
  • kDeviceStateUpgrading:升级中
  • kDeviceStateActivating:激活中
  • kDeviceStateAudioTesting:音频测试
  • kDeviceStateFatalError:致命错误

关键修复

1. 回答完毕后不进入聆听状态

问题:当 AI 回答完毕时,系统可能停留在 Speaking 状态,导致无法继续对话。

解决方案

  • 优化 tts -> stop 消息处理逻辑
  • 根据不同的聆听模式(ManualStop、AutoStop、Realtime)正确切换状态
  • 增强状态切换的日志输出,便于调试

修改文件main/application.cc:435-451

2. 防止闹钟触发前系统进入休眠

问题:系统在闹钟即将触发时可能进入低功耗模式,导致闹钟无法正常响铃。

解决方案

  • CanEnterSleepMode() 函数中添加闹钟保护逻辑
  • 检查 AlarmManager 中是否有“已激活且未触发”的闹钟
  • 添加 get_active_alarm_count() 接口获取活跃闹钟数量
  • 在闹钟存在时禁止进入低功耗模式

修改文件main/application.cc:758-783main/alarm_manager.h:29main/alarm_manager.cc:227-237

3. 闹钟响铃无声音

问题:闹钟触发时可能没有声音提示。

解决方案

  • 在闹钟触发时先清理当前对话状态
  • 播放本地提示音(使用 P3_EXCLAMATION 声音)
  • 确保音频服务已初始化

修改文件main/alarm_manager.cc:280-300

开发环境

构建工具

  • ESP-IDF 5.4 或更高版本
  • CMake 构建系统
  • Ninja 构建工具

开发流程

# 编译项目
idf.py build

# 擦除 flash 并烧录
idf.py erase-flash
idf.py flash

# 监视串口输出
idf.py monitor

项目结构

main/
├── application.cc/h          # 主应用程序
├── alarm_manager.cc/h        # 闹钟管理
├── mcp_server.cc/h           # MCP 服务器
├── audio/                    # 音频处理
├── boards/                   # 硬件支持
├── display/                  # 显示驱动
├── led/                      # LED 控制
├── protocols/                # 通信协议
├── partitions/               # 分区表
└── scripts/                  # 工具脚本

使用说明

设置闹钟

通过语音指令或 MCP 协议设置闹钟:

"设置一个明天早上7点的闹钟"
"30分钟后提醒我"
"每天下午3点的闹钟"

管理闹钟

  • 查询所有闹钟:"查询所有闹钟"
  • 删除闹钟:"删除明天的闹钟"
  • 删除关键词匹配的闹钟:"删除名字包含会议的闹钟"

硬件支持

项目支持多种开发板和硬件平台,详细列表请查看 main/boards/README.md

许可证

MIT License

联系方式

如有问题或建议,请通过以下方式联系:

  • Issue:https://github.com/Jason76789/xiaozhi-alarm-mcp/issues
  • 邮箱:1935724779@qq.com

致谢

本项目基于虾哥开源的 ESP32 项目开发,感谢原作者的贡献。

目录标签

目录标签

C++本地部署语音音频智能语音交互闹钟管理硬件支持MCP协议扩展

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP