# Xiaozhi ESP32 Server Java - 技术文档 ## 项目概述 **Xiaozhi ESP32 Server Java** 是一个基于 Spring Boot 的企业级语音AI助手服务端项目,为 ESP32 硬件设备提供完整的后端支持和管理平台。项目包含前后端完整解决方案,支持多设备接入、语音识别、AI对话、设备管理等功能。 - **项目版本**: 2.8.1 - **开发语言**: Java 21 + JavaScript - **架构模式**: 前后端分离 - **部署方式**: Docker + Docker Compose --- ## 核心技术栈 ### 后端技术栈 #### 核心框架 - **Spring Boot**: 3.3.0 (主框架) - **Spring MVC**: Web层框架 - **Spring WebSocket**: 实时通信 - **Spring Boot Actuator**: 系统监控 - **Spring Cache**: 缓存管理 - **Java**: 21 (LTS版本) #### 数据层 - **MyBatis**: 3.0.3 (持久层框架) - **MySQL**: 数据库 - **PageHelper**: 2.1.0 (分页插件) - **HikariCP**: 数据库连接池 #### AI 和语音技术 - **Spring AI**: 1.0.0 (AI集成框架) - OpenAI 集成 - 智谱AI 集成 - Ollama 本地大模型 - **语音识别 (STT)**: - Vosk: 0.3.45 (本地离线识别) - 阿里云 ASR: 2.2.1 - 腾讯云 STT: 1.0.53 - 讯飞语音: 3.0.2 - **语音合成 (TTS)**: - Edge TTS: 1.2.6 - 阿里云 TTS: 2.2.17 - 火山引擎 TTS - **音频处理**: - JavaCV: 1.5.10 - FFmpeg: 6.1.1 - TarsosDSP: 2.5 - Opus 编码: 1.0.2 #### 智能体平台 - **Coze API**: 最新版本 - **Dify Client**: 1.0.7 (Java客户端) #### 网络和通信 - **WebSocket**: 实时双向通信 - **MQTT**: IoT设备通信 - **OkHttp**: 5.0.0 (HTTP客户端) - **Netty**: 4.1.110 (网络通信框架) #### 工具库 - **Lombok**: 1.18.32 (代码生成) - **Gson**: 2.10.1 (JSON处理) - **Thumbnailator**: 图片处理 - **ONNX Runtime**: 1.20.0 (机器学习推理) #### 云服务 SDK - **腾讯云 COS**: 5.6.155 - **阿里云 Dashscope**: 2.20.2 ### 前端技术栈 #### 核心框架 - **Vue.js**: 2.5.2 (渐进式框架) - **Ant Design Vue**: 1.7.8 (UI组件库) - **Vue Router**: 3.0.1 (路由管理) - **Vuex**: 3.5.1 (状态管理) #### 开发工具 - **Webpack**: 3.12.0 (构建工具) - **Babel**: ES6+转译 - **ESLint**: 代码规范检查 - **Sass**: CSS预处理器 #### 功能库 - **Axios**: 0.19.2 (HTTP客户端) - **ECharts**: 4.9.0 (图表库) - **Chart.js**: 2.9.3 (图表库) - **Moment.js**: 2.27.0 (时间处理) - **Vue-i18n**: 8.18.2 (国际化) - **WaveSurfer.js**: 7.9.1 (音频可视化) ### 容器化技术 #### Docker - **基础镜像**: - 后端: Eclipse Temurin 21-JRE - 前端: Node.js - 数据库: MySQL 8.0 - **编排工具**: Docker Compose - **网络**: Bridge网络模式 - **数据持久化**: Docker Volumes ### 数据库设计 #### MySQL 配置 - **版本**: 8.0+ - **字符集**: UTF-8 - **时区**: Asia/Shanghai - **连接池**: HikariCP - **最大连接数**: 15 - **最小空闲连接**: 5 --- ## 系统架构 ### 整体架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ ESP32 设备 │ │ Web 前端 │ │ 移动端 APP │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ │ WebSocket/MQTT │ HTTP/WebSocket │ HTTP API │ │ │ ▼ ▼ ▼ ┌───────────────────────────────────────────────────────────────┐ │ Spring Boot Server │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ │ │ Web MVC │ │ WebSocket │ │ MQTT │ │ AI 引擎 ││ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ │ │ 设备管理 │ │ 语音处理 │ │ 用户管理 │ │ 智能体 ││ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘│ └───────────────────────────────────────────────────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ MySQL │ │ Redis │ │ LLM │ │ (数据存储) │ │ (缓存服务) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ### 核心模块 #### 1. 设备管理模块 - 设备注册与绑定 - 设备状态监控 - 设备配置管理 - 多设备协同控制 #### 2. AI 对话模块 - 多LLM平台集成 - 对话记录管理 - 角色切换系统 - 智能体集成 #### 3. 语音处理模块 - 语音识别 (STT) - 语音合成 (TTS) - 音频格式转换 - 声纹识别 (开发中) #### 4. 用户管理模块 - 用户认证授权 - 权限管理 - 多用户支持 - 个性化配置 #### 5. 实时通信模块 - WebSocket 双向通信 - MQTT 消息推送 - 实时状态同步 - 消息队列处理 --- ## 环境要求 ### 开发环境 - **Java**: 21+ (必须) - **Node.js**: 16+ (前端开发) - **MySQL**: 8.0+ (数据库) - **Maven**: 3.8+ (构建工具) - **Docker**: 20.10+ (容器化,可选) ### 生产环境 - **CPU**: 4核心以上 - **内存**: 8GB以上 - **存储**: 100GB以上 - **网络**: 公网IP或内网穿透 - **操作系统**: Linux (推荐 Ubuntu 20.04+) ### 网络端口 - **后端服务**: 8091 (WebSocket + HTTP API) - **前端服务**: 8084 (生产环境通常使用 Nginx 代理) - **MySQL**: 3306 (内部访问) - **Redis**: 6379 (内部访问,可选) --- ## 核心功能特性 ### 已实现功能 1. **多设备管理**: 支持多个ESP32设备同时接入 2. **AI对话**: 集成多种大语言模型 3. **语音识别**: 支持本地和云端识别 4. **语音合成**: 多种TTS引擎支持 5. **智能体集成**: 支持Coze和Dify平台 6. **实时通信**: WebSocket双向通信 7. **用户管理**: 多用户权限控制 8. **设备监控**: 实时状态监控 9. **音色克隆**: 个性化语音合成 10. **角色切换**: 预设AI角色模式 ### 开发中功能 1. **声纹识别**: 个性化语音识别 2. **多模态交互**: 图像识别集成 3. **Function Call**: 复杂任务处理 4. **Home Assistant**: 智能家居控制 5. **知识库集成**: 外部知识源接入 --- ## 部署方案 ### 1. Docker 部署 (推荐) ```bash # 克隆项目 git clone [项目地址] # 启动服务 docker-compose up -d # 检查状态 docker-compose ps ``` ### 2. 源码部署 ```bash # 后端编译 mvn clean package -Dmaven.test.skip=true # 前端构建 cd web && npm install && npm run build # 启动服务 java -jar target/xiaozhi.server-2.8.1.jar ``` ### 3. 生产环境部署 - 使用 Nginx 作为反向代理 - 配置 SSL 证书 - 设置数据库备份策略 - 配置日志收集和监控 --- ## 配置说明 ### 主要配置文件 - `application.properties`: 基础配置 - `application-dev.properties`: 开发环境配置 - `application-prod.properties`: 生产环境配置 - `docker-compose.yml`: 容器编排配置 ### 关键配置项 ```properties # 服务端口 server.port=8091 # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/xiaozhi spring.datasource.username=xiaozhi spring.datasource.password=123456 # AI 平台配置 spring.ai.openai.api-key=your-api-key spring.ai.zhipuai.api-key=your-api-key # 语音服务配置 xiaozhi.tts.engine=edge xiaozhi.stt.engine=vosk ``` --- ## 技术亮点 ### 1. 企业级架构 - Spring Boot 3.x 最新版本 - 完整的微服务架构设计 - 支持高并发和高可用 ### 2. AI 技术集成 - Spring AI 统一接口 - 多平台AI模型支持 - 智能体平台集成 ### 3. 实时通信 - WebSocket 双向通信 - MQTT 消息推送 - 低延迟语音处理 ### 4. 容器化部署 - Docker 容器化 - 一键部署脚本 - 环境隔离和版本管理 ### 5. 前后端分离 - RESTful API 设计 - Vue.js 现代化前端 - 响应式UI设计 --- ## 后续发展规划 ### 短期目标 (3-6个月) - 完善Function Call功能 - 实现多模态交互 - 优化性能和稳定性 ### 中期目标 (6-12个月) - 集成更多AI平台 - 开发移动端应用 - 支持更多硬件设备 ### 长期目标 (12个月以上) - 构建完整的IoT生态 - 开发商业化版本 - 国际化支持 --- ## 技术支持 ### 文档资源 - [部署文档](./docs/) - [API文档](./docs/api/) - [开发指南](./docs/development/) ### 社区支持 - 微信群: 790820705 - QQ群: 790820705 - GitHub Issues: 技术问题反馈 ### 商业支持 - 定制开发服务 - 技术咨询服务 - 部署和运维支持 --- *文档版本: v2.8.1* *最后更新: 2025年1月*