项目概述
xiaozhi-esp32-server 是为开源智能硬件项目 xiaozhi-esp32 提供后端服务的项目,基于人机共生智能理论和技术研发,采用 Python、Java、Vue 实现,支持 MQTT+UDP 协议、Websocket 协议、MCP 接入点、声纹识别和知识库等功能。
适用人群
适合已购买 ESP32 相关硬件,且成功对接过虾哥部署的后端服务,并希望独立搭建自己的 xiaozhi-esp32 后端服务的用户。
核心组件
- xiaozhi-server:后端服务核心组件
- manager-api:提供管理相关的 API 接口
- manager-web:基于 Vue.js 2 框架构建的单页应用,作为 Web 管理前端,为系统管理员提供图形用户界面,用于全面管理和配置生态系统,其核心技术栈包括 Vue.js 2、Vue CLI、Vue Router、Vuex、Element UI 等
- manager-mobile:移动管理相关组件(具体信息未详细展示)
功能特点
- 提供智能对话、物联网(IOT)、MCP 接入点、声纹识别、视觉感知、OTA(固件更新)等功能
- 支持用户账户、角色及权限的精细化管理
- 允许管理员自定义 TTS 音色、管理 OTA 固件更新流程、调整系统级参数及字典数据等
部署方式
- 源代码部署: 部署所有核心组件(
xiaozhi-server、基于 Java 的manager-api、基于 Vue.js 的manager-web以及所需的数据库服务 MySQL 和 Redis),项目提供各服务的Dockerfile定义,并使用docker-compose.yml文件(如基础版本的 docker-compose.yml、全功能版本的 docker-compose_all.yml)来编排和管理多容器部署,还可能提供 docker-setup.sh 脚本协助自动化部分 Docker 环境设置工作。需要为每个组件手动设置相应的开发环境,如xiaozhi-server需要 Python 环境,manager-api需要 Java/Maven 环境,manager-web需要 Node.js/Vue CLI 环境。
部署方式选择
| 部署方式 | 特点 | 适用场景 | 部署文档 | 配置要求 | 视频教程 |
|---|---|---|---|---|---|
| 最简化安装 | 智能对话、IOT、MCP、视觉感知 | 低配置环境,数据存储在配置文件,无需数据库 | ①Docker版 / ②源码部署 | 如果使用FunASR要2核4G,如果全API,要2核2G | - |
| 全模块安装 | 智能对话、IOT、MCP接入点、声纹识别、视觉感知、OTA、智控台 | 完整功能体验,数据存储在数据库 | ①Docker版 / ②源码部署 / ③源码部署自动更新教程 | 如果使用FunASR要4核8G,如果全API,要2核4G | 本地源码启动视频教程 |
源码部署好后速度测试
项目自带测试代码 打开Anaconda Prompt命令行 进入到代码目录
conda activate xiaozhi-esp32-server
D:
cd D:\AI2026XIAOZHI\xiaozhi-esp32-server\main\xiaozhi-server
python performance_tester.py
使用前请根据doc/performance_testerer.md的说明准备配置。 配置例子 :
asr 测试结果
本地LLM ollama qwen2:7b 测试结果
根据测试结果,我们可以得出以下结论:如果我的服务器在广东,为达到最优响应速度,我应该选择模型组合是:
| 模块类型 | 推荐模型 | 关键指标 | 指标值 |
|---|---|---|---|
| ASR | FunASR (GPU模式) | 平均处理时间 | 0.071秒/次 |
| LLM | qwen-flash-2025-07-28 | 超长角色提示词下的首Token时间 | 0.675秒 |
| TTS | PaddleSpeechTTS(本地部署) | 平均首音时间 | 0.092秒/次 |
| VLLM | qwen2.5-vl-3b-instruct | 平均响应时间 | 1.774秒/次 |