跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

Xiaozhi-ESP32 开源 AI 语音机器人:低成本构建个人智能助理

Xiaozhi-ESP32 是基于 ESP32 开发板的开源 AI 语音交互项目,采用 ESP-IDF 框架。支持离线唤醒、多语言识别及大模型对话,通过 WebSocket 连接云端服务。架构模块化,兼容多种硬件,具备物联网控制能力。适合低成本 DIY 智能助手及 AIoT 学习实践。

DevStack发布于 2026/4/6更新于 2026/5/2339 浏览
Xiaozhi-ESP32 开源 AI 语音机器人:低成本构建个人智能助理

项目概述:开源 AI 语音交互解决方案

Xiaozhi-ESP32 是一个基于 ESP-IDF 开发框架的开源硬件项目,旨在利用低成本硬件打造个人专属的 AI 聊天机器人。它通过 WebSocket 或 UDP 协议与 LLM、TTS API 服务连接,实现实时语音交互功能,无需在设备上运行 LLM。

该项目采用 MIT 开源协议,允许用户自由使用、修改和分发代码,只需包含原作者的版权声明和许可声明即可。这一特性使其特别适合学生、创客和开发者进行 AI+IoT 项目实践。

核心设计理念是通过模块化、可扩展的架构,在资源受限的嵌入式设备上实现流畅的语音交互。该方案平衡了性能与成本,让更多人能够接触并学习 AI 技术。

核心功能:全面而实用的特性

Xiaozhi-ESP32 集成了多种先进功能,使其在开源智能硬件中表现突出:

  • 语音唤醒与交互:支持离线语音唤醒,同时也可通过 BOOT 键实现点击和长按两种触发方式,提供灵活的交互选择
  • 多语言识别:支持国语、粤语、英语、日语、韩语五种语言的语音识别,借助 SenseVoice 模型实现高效准确的识别
  • AI 对话与合成:集成多种大语言模型(如 Qwen、DeepSeek、Doubao),支持大模型 TTS(包括火山引擎或 CosyVoice),实现自然流畅的语音对话
  • 显示功能:支持 OLED/LCD 显示屏,可实时显示信号强度、对话内容,还支持 LCD 显示图片表情
  • 物联网控制:内置 ThingManager 类管理物联网设备,可通过语音命令控制智能家居设备
  • 声纹识别:能够识别是谁在喊 AI 的名字,基于 3D Speaker 模型,提供个性化体验
  • 记忆功能:具备短期记忆能力,每轮对话后会进行自我总结,增强交互连续性
  • 网络连接:除了常规的 Wi-Fi 连接,还支持 ML307 Cat.1 4G 网络,增加使用场景灵活性

系统架构:模块化设计

Xiaozhi-ESP32 采用模块化架构,中央应用控制器负责协调各个子系统。该架构使系统能够与不同的硬件配置协同工作,同时保持一致的功能。

核心组件

系统由几个关键组件协同工作:

  • 应用程序控制器:管理设备状态并协调所有其他组件,是系统核心
  • 电路板抽象层:提供独立于硬件的物理组件访问,使核心应用程序无需了解组件具体实现细节即可与它们交互
  • 通信协议:通过 WebSocket 或 MQTT 处理客户端 - 服务器通信
  • 显示系统:管理所连接显示器上的视觉反馈
  • 音频处理:处理音频输入/输出和处理
状态管理

系统通过明确定义的状态机进行操作,控制设备响应用户交互和系统事件的行为。状态包括启动、激活、升级、空闲、连接、监听、说话和 Wi-Fi 配置等不同模式。

硬件与部署:灵活的选择方案

硬件需求

Xiaozhi-ESP32 兼容多款 ESP32 开发板,以下是核心硬件要求:

  • 主控板:ESP32-S3 或 ESP32-C3 开发板(如 ESP32-WROOM 或 ESP32-S3)
  • 音频模块:麦克风模块用于语音输入,扬声器模块用于语音输出
  • 显示模块:可选配 OLED 或 LCD 显示屏
  • 网络模块:支持 Wi-Fi 或 ML307 Cat.1 4G 通信
部署方式

项目提供两种运行方式:

  • 在线版本:接入 xiaozhi.me 服务器,个人用户可免费试用,适合普通用户
  • 离线版本:在本地个人电脑上搭建服务器,需要一定的技术背景,更适合开发者

代码解析:清晰的结构设计

了解项目代码结构有助于二次开发,项目主要使用 C++ 语言实现。

工程结构

项目仓库包含多个文件和文件夹,主要结构如下:

  • main/:主要源码文件夹,包含应用程序核心逻辑
  • docs/:文档文件,包含 README 文档使用的图片资料和服务器 websocket 交互协议
  • scripts/:脚本文件,包含音频编码测试脚本、烧录调试脚本等
  • 配置文件:包括分区配置和 SDK 默认配置
核心类设计

整个工程的类图主要围绕 Application、Board、ThingManager 三个大类进行实现:

  • Application 类:作为整个应用程序的核心管理类,负责协调和控制各个功能模块的运行
  • Board 类:是一个抽象基类,定义了硬件设备的接口,为不同的硬件平台提供统一的操作方法
  • ThingManager 类:作为物联网设备管理类,负责管理多个 Thing 对象
入口函数

整个工程的入口函数在 xiaozhi-esp32/main/main.cc 中,初始化默认事件循环和 NVS 后,通过 Application::GetInstance().Start() 直接启动应用。

extern "C" void app_main(void) {
    // 初始化默认事件循环
    ESP_ERROR_CHECK(esp_event_loop_create_default());
    // 初始化 NVS flash 以存储 WiFi 配置
    esp_err_t ret = nvs_flash_init();
    // ... 更多初始化代码
}

使用方法:快速上手指南

环境准备

要开始使用 Xiaozhi-ESP32,需要先准备开发环境:

  1. 安装开发环境:推荐使用 Arduino IDE 或 PlatformIO 进行代码编写和烧录
  2. 配置硬件:将麦克风模块、扬声器及其他所需传感器连接到 ESP32 开发板上
  3. 获取源码:从 GitHub 仓库下载项目代码
基础配置

配置设备主要涉及以下步骤:

  1. 网络配置:设置 Wi-Fi 或 4G 网络连接参数
  2. 服务配置:配置 LLM 和 TTS 服务参数
  3. 设备注册:在管理后台注册设备并获取访问凭证

优势对比:与传统方案的比较

与商业智能助手相比,Xiaozhi-ESP32 具有明显优势:

特性商业智能助手Xiaozhi-ESP32
成本高昂使用低成本 ESP32,经济实惠
数据隐私数据传输至云端,有隐患本地运行,无需云端支持,隐私性更高
功能定制功能固定,扩展困难完全开源,可自由扩展功能
技术门槛专业配置入门简单,适合学习与开发

应用场景:广泛的适用领域

Xiaozhi-ESP32 可应用于多种场景:

  • 智能家居控制:通过语音控制灯光、窗帘、空调等家电设备
  • 个人语音助手:提供天气查询、日程提醒、语音备忘等功能
  • 教育与实践:作为物联网和人工智能开发的优秀学习案例
  • 工业物联网:各类传感器设备返回定制化的状态报告

总结:开创性的 AIoT 开源项目

Xiaozhi-ESP32 是一个兼具功能性和学习价值的开源项目,它降低了 AI 语音交互的开发门槛,让更多人能体验并学习 AI 技术。项目采用模块化架构设计,功能丰富且持续更新,社区活跃。

无论是智能家居控制、个人语音助手开发,还是 AI+IoT 技术学习,Xiaozhi-ESP32 都是一个理想的选择。其开源特性也允许开发者根据自己的需求定制功能,为智能硬件开发提供了更多可能性。

目录

  1. 核心功能:全面而实用的特性
  2. 系统架构:模块化设计
  3. 核心组件
  4. 状态管理
  5. 硬件与部署:灵活的选择方案
  6. 硬件需求
  7. 部署方式
  8. 代码解析:清晰的结构设计
  9. 工程结构
  10. 核心类设计
  11. 入口函数
  12. 使用方法:快速上手指南
  13. 环境准备
  14. 基础配置
  15. 优势对比:与传统方案的比较
  16. 应用场景:广泛的适用领域
  17. 总结:开创性的 AIoT 开源项目
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 JSP 的志愿者管理系统设计与实现
  • 阿里云发布通义听悟:音视频内容 AI 处理新工具评测
  • 微信小程序 AR 开发:5 步实现增强现实应用
  • 前端面试高频场景题汇总
  • 前缀和算法详解:连续数组与矩阵区域和
  • AIGC 时代技术创作者如何守护数字作品价值
  • IsaacLab 快速搭建机器人训练环境入门指南
  • 数据结构——图:遍历、最小生成树与最短路径
  • Flash Attention 导入报错 undefined symbol 解决方案
  • Llama 3:Meta 新一代开源大语言模型详解
  • Tactical RMM 开源远程监控管理工具使用指南
  • SpringBoot 整合 Langchain4j 对接主流大模型实战
  • OpenClaw 在 Manjaro 系统上的部署与使用指南
  • 基于 Python 和 AI 的智能害虫识别助手搭建
  • Java 自定义等级字符串比较逻辑分析
  • FAIR plus 机器人全产业链接会:聚焦具身智能与全球协作
  • 使用 OpenCore Legacy Patcher 升级 2012-2015 款老旧 Mac 系统
  • 服务器文件备份策略与自动化实施指南
  • AIGC 微电影《编钟》制作流程复盘
  • 无显卡也能跑 AI 绘画?云端部署 Stable Diffusion 实战指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online