xiaozhi-esp32-server-java

joey-zhouMIT活跃维护

面向小智 ESP32 语音硬件的 Java 企业级管理后台,集设备监控、音色定制、角色切换与对话记录管理于一体,前后端和服务端开箱即用。

小智ESP32的Java企业级管理平台,提供设备监控、音色定制、角色切换和对话记录管理的前后端及服务端一体化解决方案

v5.1.0发布于 2026-04-21 10:21 UTC1,414star512fork同步于 2026-11-07 07:30 UTC

怎么上手

由 README 提炼,执行前请确认
mkdir xiaozhi && cd xiaozhi
curl -O https://raw.githubusercontent.com/joey-zhou/xiaozhi-esp32-server-java/main/docker-compose.yml
docker compose up -d
硬件要求按 README 说明

README 未说明显存或 GPU 要求;源码部署需 JDK 21、Maven、Node 22、MySQL 8、Redis 7,基准测试在 8 核 8G 云服务器上完成

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

小智 ESP32 的 Java 企业级服务端,带前后端管理平台,让智能硬件有后端和可视化后台

面向小智 ESP32 语音硬件的 Java 企业级管理后台,集设备监控、音色定制、角色切换与对话记录管理于一体,前后端和服务端开箱即用。

核心能力

  • 多模块双进程架构,管理后台与对话服务独立部署扩容
  • 集成 OpenAI、智谱、讯飞、Ollama、Dify、Coze 等大模型平台
  • 本地与云端 STT/TTS 全链路,支持音色克隆与实时打断
  • 声纹识别区分家庭成员,多成员独立记忆互不干扰
  • WebSocket + MQTT 双向通信,支持 OTA 分批升级与时间窗控制

容易踩的坑

models/ 和 lib/ 不在 Git 仓库中,源码部署首次必须运行 ./scripts/download_models.sh 下载模型和原生库;系统不预置任何大模型密钥,登录后要自己配 API Key 才能对话;设备侧 OTA 用 8091、WebSocket 用 8092,改端口时要同步改 xiaozhi.server.port 与 xiaozhi.dialogue.port

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v5.1.0
  1. v5.1.0最新正式版2026-04-21 · 2026-04-21 10:21 UTC

    [5.1.0] - 2025-04-21

    🚀 New Features

    • 新增 web 聊天功能

    🔧 Refactoring

    • SpringAI 项目升级 1.1.4
    • 单次调用改用 chatClient,代码风格统一化
    • 重构 toolcalls
    • 重构 prompt 与 context 注入方法
    • 重构 ai 模块,弱化 device 概念,改为 owner
    • 重构 message 表

    🐛 Bug Fixes

    • 修复 mcp 调用错误问题
    • 修复错误 sql
    • 修复表情发送问题以及模型表情问题
    • 修复 toolcalls 导致的音频更新报错问题
    • 修复模型一次性输出多句导致丢失问题
    • 修复工具调用错误问题
    • 修复设备 mcp 工具调用错误问题
    • 修复没有默认 local 存储缓存穿透问题以及 vosk 与 edge 默认 -1 穿透问题
    • 修复 vad 错误问题

    📝 Updates

    • 更新 log 采用注解
    • 更新字段引用
    • Update SafeSkill badge in README.md
  2. v5.0.02026-04-14 · 2026-04-14 01:58 UTC
    查看更新说明

    [5.0.0] - 2025-04-10

    💥 重大变更

    • refactor!: 项目拆分为多模块架构
      • 从单体项目重构为 Maven 多模块:xiaozhi-common、xiaozhi-service、xiaozhi-ai、xiaozhi-dialogue、xiaozhi-server
      • 模块间通过窄接口解耦,AI 模块与 Service 层解耦 (narrow ports)
      • Web 组件从 common 迁移至 server 模块,职责更清晰

    新增功能

    架构 & 基础设施
    • feat: 引入 Flyway 数据库版本管理
    • feat: 引入 DDD 领域驱动设计模式(聚合根、领域事件、Pipeline)
    • feat: 新增通用 Shell 脚本用于服务管理
    • feat: 添加前端单元测试 (Vitest) 和 E2E 测试 (Playwright) 基础设施
    • feat: 新增审计日志注解 (AuditLog),增强操作追踪
    权限 & 安全
    • feat: 重构权限管理系统
    • feat: 新增权限管理页面(前端)
    • feat(auth): 暴露角色权限并在用户管理中展示
    AI & 对话
    • feat: 增强长期记忆会话,支持图检索能力 (Graph Retrieval)
    • feat: 重构知识库,整合长期记忆与声纹识别
    • feat: 知识库 Pipeline 重构
    • feat: 实现 Edge TTS 流式语音合成
    • feat: 添加从输入流读取 Ogg Opus 格式音频帧的功能
    前端
    • feat: 新增音频播放器 fallback 支持

    重构 & 优化

    异常处理统一化
    • refactor: 全面统一 Controller 层异常处理(共 4 批次)
    • refactor: 统一 CRUD 操作失败语义(create/update/delete)
    • refactor: 统一语音克隆、声纹识别、用户校验等模块异常处理
    • refactor: 强化 OTA 协议、上传/TTS、特殊端点的错误处理
    • refactor: 消除 null 和 zero 失败语义,内部 BO 创建不再返回 null
    领域模型 & 命名
    • refactor: SysSummary 替换为 SummaryBO
    • refactor: ConversationTurn 重命名为 DialogueTurn
    • refactor: functionNames 重命名为 mcpList
    • refactor: 统一 auth role permission 命名
    • refactor: 用户角色字段统一为 authRole
    • refactor: 重构 ApiResponse 统一响应格式
    • refactor: 重构 token 管理及 message 发送方法
    API & 接口
    • refactor: 重构 API 端点为 RESTful 风格
    • refactor: 分页参数从 start/limit 统一为 pageNo/pageSize
    • refactor: MCP Controller 错误契约标准化
    • refactor: 拆分 mcpServer 与 mcpEndpoint 模块
    • refactor: 替换手动 login id 转换为 sa-token typed API
    架构解耦
    • refactor: 适度解耦 Session 架构
    • refactor: Dialogue 和 Server 模块只扫描需要的包
    • refactor: 移除 req 对象在 dialogue 和内部运行时流中的泄漏
    • refactor: 用户 ID 在 service 和 task 边界显式传递
    • refactor: 运行时路径配置整合,减少 STT/TTS 服务中的硬编码路径
    • refactor: 去除路径硬编码
    • refactor: 统一缓存位置
    • refactor: 统一领域事件
    • refactor: 优化对话逻辑并去掉冗余的虚拟线程方法
    清理
    • refactor: 移除未使用的 ExitKeywordDetector、IntentDetector 类
    • refactor: 移除未使用的 HttpSessionProvider、ResponseUtils、SessionProvider、DramaJson 类
    • refactor: 移除声纹阈值自定义功能
    • refactor: 移除多个过时的架构文档
    • delete: 去掉知识库中关于 userId 多余的传递
    • delete: 去除未使用的方法

    修复

    • fix: 修复若干 bug 及优化集群部署
    • fix: 修复 endpoint 集群部署问题及 mcpServer 迁移依赖
    • fix: 修复 CosyVoice 音频句子发送 bug
    • fix: 修复角色更新后设备未及时更新问题
    • fix: 修复 MQTT 重复构建对话消息与唤醒词多次发送 start 问题
    • fix: 修复测试音效错误及音频缓存命中错误问题
    • fix: 修复类启动错误问题
    • fix: 修复调用错误方法

    Docker & 部署

    • refactor: 统一 Docker 网络、添加资源限制、调整上传大小为 100MB
    • update: Dockerfile-server 适配多模块构建
    • update: Dockerfile-node 构建上下文调整为 web 目录
    • update: .dockerignore 更新排除规则
    • update: docker-compose.yml 移除无用的 maven_repo 卷

    测试

    • test: 完成 Controller 测试基线
  3. v4.1.02026-02-21 · 2026-02-21 08:36 UTC
    查看更新说明

    [4.1.0] - 2026-02-21

    💥 重大变更

    • feat: 对话记忆系统引入摘要模式

      • 新增 SummaryConversation / SummaryConversationFactory,支持对话摘要长期记忆
      • 当上下文消息数达到阈值(默认 8 条)时,通过虚拟线程调用 LLM 异步生成 ≤150 字摘要
      • 摘要自动注入后续对话的系统提示词,实现跨会话记忆延续
      • 新增 ConversationIdentifier 统一标识 deviceId + roleId + sessionId
      • 新增摘要提示词模板:init_summarizer.md(首次摘要)、again_summarizer.md(增量摘要)、system_prompt_with_summary.md(摘要注入)
      • 角色支持选择记忆类型(window / summary),通过 memoryType 字段配置
      • 删除 WindowConversationFactory,由 DefaultConversationFactory + SummaryConversationFactory 分别承担
    • feat: 音频播放架构全面重构

      • 新增 ScheduledPlayer:纳秒精度帧调度、突发预缓冲(前 2 帧立即发送)、句间 300ms 间隔、基于 Flux 的多句排队
      • 新增 PlayerWithOpusFile:播放同时录制 Ogg-Opus 文件,并向 AEC 喂参考信号
      • 新增 Speech 值对象,携带音频数据及对应文本(用于歌词同步等场景)
      • 新增 SentenceHelper:独立的句子分割辅助类,支持中英文标点、表情检测、小数点消歧
      • 新增 ChatConverter 函数式接口,用于 token 流到句子流的转换
      • 删除 FilePlayer、ThreadPlayer、ThreadSynthesizer(由新架构替代)
    • feat: 对话领域模型重构(Persona / Dialogue)

      • 新增 Persona:封装 ChatModel、Synthesizer、Player、Conversation、SttService 等,统一管理对话全链路
      • 新增 Dialogue:不可变值对象,完整表达一轮对话(UserMessage、ChatResponse、工具调用详情、时间戳等),支持转换为持久化实体
      • DialogueService 大幅精简,核心 LLM/TTS 逻辑下沉到 Persona
      • ChatService 演进为 Persona 工厂,通过 buildPersona() 统一构建对话能力

    新增功能

    服务端 AEC 回声消除
    • feat: 新增 AecService,基于 WebRTC AEC3(webrtc-java 0.14.0)实现服务端回声消除
      • 集成回声消除、噪声抑制(MODERATE)、高通滤波、自适应增益控制
      • TTS 播放结束后自动重建 AEC 实例,避免过度抑制后续用户语音
      • 可通过 aec.enabled、aec.stream.delay.ms、aec.noise.suppression.level 配置
    • feat: 新增 TtsPlaybackEndEvent 事件,播放停止时通知 AEC 和 VAD 重置状态
    • delete: 删除 AudioEnhancer(功能由 AEC 管道中的 AGC 替代)
    MCP 工具管理
    • feat: 新增 McpToolController,提供 MCP 工具的全局/角色级启用禁用管理 API
      • 支持单个工具开关、批量设置角色排除工具列表、全局工具开关
      • 查询角色及全局禁用工具列表、获取系统内置工具列表、刷新缓存
    • feat: 新增 McpToolExcludeService 及 Redis 缓存支持
    • feat: 新增请求参数类:BatchSetRoleExcludeToolsParam、ToggleGlobalToolStatusParam、ToggleRoleToolStatusParam
    记忆管理接口
    • feat: 新增 MemoryController,提供摘要记忆的查询与删除 REST API
    • feat: 新增 SysSummaryService 及 SummaryMapper 数据访问层
    • feat: 前端新增 memory.ts 服务模块,支持摘要记忆和聊天记忆查询/删除
    新增 STT 提供商:火山引擎
    • feat: 新增 VolcengineSttService,实现火山引擎(字节跳动)WebSocket 流式语音识别
      • 使用自定义二进制协议 + Gzip 压缩 JSON 头 + 音频载荷
      • 支持批量和流式识别模式
    新增 TTS 提供商:腾讯云
    • feat: 新增 TencentTtsService,实现腾讯云 WebSocket 流式语音合成
      • 支持语音名称、音调、语速配置
    • feat: 新增腾讯云音色列表 tencentVoicesList.json
    绘本与音乐播放器
    • feat: 新增 HuiBenPlayer,替代 HuiBenService,独立绘本播放器
    • feat: 新增 MusicPlayer,替代 MusicService,独立音乐播放器
      • 支持 LRC 歌词解析与同步显示,歌词文本随音频帧发送
    • delete: 删除 HuiBenService、MusicService(功能整合到新播放器)
    事件系统
    • feat: 新增 DeviceOnlineEvent,设备上线时触发(用于 OTA 升级结果检查等)
    • feat: 新增 TtsPlaybackEndEvent,TTS 播放结束时触发

    优化与改进

    Tool Calling 增强
    • fix: 修复 Spring AI #4629/#4790 问题——OpenAI 兼容 API(如通义千问)流式返回的工具调用分片合并
      • 新增 mergeFragmentedToolCalls() 方法,按 ID 及空 ID/空名称延续策略合并分片
    • fix: 优雅处理 LLM 幻觉工具调用(调用未注册工具名时返回错误信息而非崩溃)
    • update: 工具调用详情记录到 ChatSession,支持持久化
    VAD 重构
    • refactor: 简化 VAD 架构,删除 VadDetector 接口、VadSessionState、VadServiceAdapter
    • update: VadService 监听 TtsPlaybackEndEvent,TTS 结束后重置 Silero 隐藏状态,消除状态污染
    会话管理
    • update: ChatSession 新增 toolCallDetails 管理(CopyOnWriteArrayList)
    • update: ChatSession 新增 getAudioPath() 方法,统一生成用户 WAV / 助手 Ogg 文件路径
    • update: SessionManager 新增 findConversation() 查找活跃会话的 Conversation 实例
    前端优化
    • update: 记忆管理视图 MemoryManagementView 支持摘要记忆的展示与删除
    • update: 角色编辑表单新增 memoryType 选择器(window / summary)
    • update: 新增 useSelectLoadMore 组合式函数,支持下拉分页加载
    • update: 国际化资源更新,新增记忆类型、MCP 工具管理、新提供商相关翻译
    • update: 路由配置新增记忆管理页面
    • update: LLM 工厂配置与 Provider 配置更新
    其他
    • update: Entity 基类支持自动传递
    • update: 角色相关参数和 DTO 新增 memoryType 字段
    • refactor: 智谱模型提供商 ZhiPuModelProvider 优化
    • update: 消息删除新增 MessageDeleteParam 参数类

    删除

    • delete: 删除 AjaxResult、HttpStatus(已被 ResultMessage 替代)
    • delete: 删除 FilePlayer、ThreadPlayer、ThreadSynthesizer(已被 ScheduledPlayer 架构替代)
    • delete: 删除 HuiBenService、MusicService(已被 HuiBenPlayer、MusicPlayer 替代)
    • delete: 删除 VadDetector、VadSessionState、VadServiceAdapter(VAD 架构简化)
    • delete: 删除
  4. v4.0.02025-12-17 · 2025-12-17 18:04 UTC
    查看更新说明

    [4.0.0] - 2025-12-18

    💥 重大变更

    • feat: 对话系统全面重构 🚀

      • LLM 提供商架构升级,引入统一的 ChatModelProvider 接口
      • 新增多个 LLM 提供商支持:星辰、星火、Coze、Dify、Ollama、OpenAI、智谱
      • 重构 ChatModelFactory 和 EmbeddingModelFactory,采用工厂模式统一管理
      • 对话记忆系统全面升级(ChatMemory、Conversation 重构)
      • 新增意图检测功能 (IntentDetector)
      • 优化 Tool Calling 机制和元数据管理
      • 新增星辰大模型流式对话支持 (XingChenChatModel + XingChenClient)
      • 新增星火大模型支持 (XingHuoChatModel)
      • Dify Workflow 集成 (WorkflowRequest)
    • feat: API 接口全面标准化 📋

      • 集成 Swagger/OpenAPI 文档,提供完整的 API 接口文档
      • 新增统一的请求参数类 (Param):
        • Agent 相关:AgentAddParam, AgentUpdateParam, AgentDeleteParam
        • Config 相关:ConfigAddParam, ConfigUpdateParam, ConfigGetModelsParam
        • Device 相关:DeviceAddParam, DeviceUpdateParam, DeviceBatchUpdateParam, DeviceDeleteParam
        • User 相关:LoginParam, RegisterParam, ResetPasswordParam, TelLoginParam, SendCaptchaParam, UserUpdateParam
        • Role 相关:RoleAddParam, RoleUpdateParam
        • Template 相关:TemplateAddParam, TemplateUpdateParam
        • 其他:TestVoiceParam
      • 新增统一的响应数据类 (DTO):
        • AgentDTO, ConfigDTO, DeviceDTO, MessageDTO, RoleDTO, TemplateDTO, UserDTO
        • LoginResponseDTO, PermissionDTO
      • 引入 DtoConverter 统一处理实体与 DTO 转换
      • 所有 Controller 层全面重构,采用 Param/DTO 模式
    • feat: 缓存架构升级 ⚡

      • 新增 Redis 缓存配置 (RedisCacheConfig)
      • 新增布隆过滤器管理器 (BloomFilterManager)
      • 新增缓存辅助工具类 (CacheHelper)
      • 引入 Redisson 分布式锁支持 (redisson-config.yml)

    新增功能

    对话服务增强
    • feat: 新增文件播放器服务 (FilePlayer, ThreadPlayer)
    • feat: 新增语音合成服务 (FileSynthesizer, ThreadSynthesizer, Synthesizer 接口)
    • feat: 新增句子处理抽象 (Sentence)
    • feat: 新增唤醒服务 (WakeUp)
    • feat: 新增对话辅助工具 (DialogueHelper)
    • feat: 新增超时和再见消息供应器 (TimeoutMessageSupplier, GoodbyeMessageSupplier)
    • feat: 新增退出关键词检测器 (ExitKeywordDetector)
    TTS/STT 服务扩展
    • feat: 新增阿里云 NLS TTS 服务 (AliyunNlsTtsService)
    • feat: 新增阿里云 NLS STT 服务 (AliyunNlsSttService)
    Tool Calling 增强
    • feat: 新增 Quote0Function 工具函数
    • feat: 新增 ChatModelObservationHandler 监控处理器
    • feat: 新增 XiaozhiToolMetadata 工具元数据管理
    • feat: Tool Calling 结果转换器优化 (ToolCallStringResultConverter)
    认证与授权
    • feat: SaToken 配置升级,增强权限控制
    • feat: 新增 @SaIgnore 注解支持(如 OTA 请求权限豁免)

    优化与改进

    架构优化
    • refactor: 配置文件从 properties 迁移到 yml 格式
      • application.properties → application.yml
      • application-dev.properties → application-dev.yml
      • application-prod.properties → application-prod.yml
    • refactor: 所有 Mapper XML 文件优化
    • refactor: Service 层全面重构,统一业务逻辑
    • refactor: 实体类优化 (Base, SysConfig, SysDevice, SysMessage, SysRole, SysUser)
    对话流程优化
    • update: VAD 服务优化 (VadService)
    • update: 绘本服务优化 (HuiBenService)
    • update: 音乐服务优化 (MusicService)
    • update: 消息处理器优化 (MessageHandler)
    • update: 会话管理器优化 (SessionManager)
    • update: WebSocket 处理优化 (WebSocketHandler, WebSocketSession)
    前端优化
    • update: 配置管理组件优化 (ConfigManager.vue)
    • update: 新增拖拽上传覆盖层组件 (DragUploadOverlay.vue)
    • update: 新增音频播放器 Composable (useAudioPlayer.ts)
    • update: 新增拖拽上传 Composable (useDragUpload.ts)
    • update: 新增记忆视图 Composable (useMemoryView.ts)
    • update: 新增记忆管理视图 (MemoryManagementView.vue)
    • update: 新增 Web Audio 录音处理器 (audio-recorder-processor.js)
    • update: 新增格式化工具类 (format.ts)
    • update: Provider 配置优化 (providerConfig.ts)
    • update: LLM 工厂配置更新 (llm_factories.json)
    • update: 国际化资源更新 (zh-CN.ts, en-US.ts)
    工具类优化
    • update: 音频工具类优化 (AudioUtils, AudioEnhancer, OpusProcessor)
    • update: 通用工具类优化 (CommonUtils, DateUtils, CmsUtils)
    • update: Emoji 工具类优化 (EmojiUtils)
    • update: 文件上传工具优化 (FileUploadUtils)
    • update: 邮件工具优化 (EmailUtils)
    数据库
    • update: 数据库初始化脚本更新 (init.sql)
    • add: 新增 2025-12-17 数据库变更脚本 (db/2025_12_17.sql)
    • delete: 删除旧的数据库变更脚本 (db/2025_11_01.sql, db/2025_11_29.sql)

    删除

    • delete: 删除 AudioService(功能整合到新的播放器和合成器架构)
    • delete: 删除 StreamResponseListener 接口(统一到新的流式响应机制)

    依赖更新

    • update: 依赖包更新 (pom.xml)
    • update: 前端依赖更新 (package.json, bun.lock)
    • update: 生产环境配置更新 (web/.env.production)
  5. v3.0.02025-11-01 · 2025-11-01 14:42 UTC
    查看更新说明

    [3.0.0] - 2025-11-01

    💥 重大变更

    • feat: 前端架构全面升级到 Vue3 🎉

      • 完整迁移到 Vue 3.5.22 + Composition API
      • 使用 Vite 7 作为构建工具,提升开发体验和构建速度
      • 采用 TypeScript 5.9 增强类型安全
      • 状态管理升级到 Pinia 3
      • 路由升级到 Vue Router 4
      • 采用 Composables 模式重构代码,提高可复用性
    • feat: 后端架构全面升级与重构 🚀

      • 引入 JWT 认证机制,增强安全性
      • 新增统一结果封装 (ResultMessage/ResultStatus)
      • 新增事件驱动架构 (ChatSessionOpenEvent、ChatAbortEvent 等)
      • 新增完整的权限管理系统 (RBAC)
      • Controller 层全面重构,代码结构更清晰

    新增功能

    前端
    • feat: 升级 Node.js 运行时到 v22
    • feat: 引入现代化开发工具链
      • 使用 oxlint 和 ESLint 9 进行代码检查
      • 集成 Vue DevTools 8 用于调试
      • 采用 Prettier 3.6 统一代码风格
    • feat: UI 组件库升级到 Ant Design Vue 4.2.6
    • feat: 新增 @vueuse/core 工具库,提供丰富的组合式 API
    • feat: 新增全局加载组件和错误边界
    • feat: 新增浮动聊天组件,优化交互体验
    后端核心功能
    • feat: 新增 JWT 认证系统 (JwtUtil)
      • 支持 Token 生成和刷新
      • 支持微信登录 Token
      • 支持自定义 claims
    • feat: 新增微信登录服务 (WxLoginService)
    • feat: 新增权限管理系统
      • 角色权限映射 (SysAuthRole, SysPermission, SysRolePermission)
      • 完整的 RBAC 权限控制
    • feat: 新增验证码工具 (CaptchaUtils)
    • feat: 新增邮件工具 (EmailUtils)
    • feat: 新增短信服务 (SmsUtils)
    • feat: 新增文件哈希工具 (FileHashUtil)
    • feat: 新增音频增强工具 (AudioEnhancer)
    AI & LLM
    • feat: 新增 OpenAI LLM 服务 (OpenAiLlmService)
      • 支持流式响应
      • 支持深度思考模式
      • 支持 Function Calling
      • 新增 Token 回调机制
    • feat: 新增 MCP (Model Context Protocol) 支持
      • MCP Session 管理
      • MCP 设备服务集成
    • feat: 增强对话服务 (DialogueService)
      • 优化会话管理
      • 改进消息处理流程
      • 支持事件驱动
    • feat: VAD 服务重大重构
      • 优化语音活动检测
      • 改进 Silero VAD 模型
      • 新增高级参数配置
    依赖更新
    • update: 阿里云 SDK 全面升级
      • nls-sdk-transcriber: 2.2.1 → 2.2.18
      • nls-sdk-tts: 2.2.17 → 2.2.18
      • dashscope-sdk-java: 2.20.2 → 2.20.6
      • 新增阿里云短信服务 SDK 2.0.24
    • update: Spring Boot 依赖更新
      • 新增 spring-boot-starter-data-redis (缓存增强)
      • spring-ai-starter-mcp-client 集成
    • update: commons-io: 2.11.0 → 2.18.0
    • update: okhttp: 5.0.0-alpha.14 → 4.9.3 (提升稳定性)
    • update: 新增 okio 3.13.0

    优化与改进

    前端优化
    • perf: Vite 开发服务器性能大幅提升
    • perf: 生产构建体积优化和加载速度提升
    • perf: 优化路由守卫和权限检查
    • update: Docker 镜像更新到 node:22-alpine
    • update: 依赖包全面更新到最新稳定版本
    • update: 优化开发环境配置和热更新机制
    • dx: 更好的 TypeScript 类型推导和提示
    • dx: 更快的热模块替换 (HMR)
    后端优化
    • refactor: 全局异常处理增强 (GlobalExceptionHandler)
      • 新增资源未找到异常 (ResourceNotFoundException)
      • 新增未授权异常 (UnauthorizedException)
      • 统一异常响应格式
    • refactor: 认证拦截器重构 (AuthenticationInterceptor)
      • 支持 JWT 认证
      • 优化权限验证逻辑
    • refactor: 会话管理重构 (SessionManager)
      • 改进会话生命周期管理
      • 优化并发处理
    • refactor: 消息处理器重构 (MessageHandler)
      • 优化消息流转
      • 改进错误处理
    • refactor: WebSocket 处理器优化 (WebSocketHandler)
      • 增强连接管理
      • 改进异常处理
    • refactor: 对话记忆系统优化
      • DatabaseChatMemory 重构
      • MessageWindowConversation 改进
      • Conversation 接口优化
    • refactor: LLM 工具调用优化
      • ToolsGlobalRegistry 改进
      • XiaoZhiToolCallingManager 重构
      • 新增 NewChatFunction
    • refactor: STT 服务优化
      • 所有 STT 提供商代码优化
      • 改进错误处理和日志
    • refactor: 实体类优化
      • SysConfig, SysDevice, SysMessage, SysUser 改进
    • refactor: Mapper XML 优化
      • 所有 Mapper 文件重构
      • SQL 优化
    • refactor: Service 层全面重构
      • 新增事务配置 (TransactionConfig)
      • 优化业务逻辑
      • 改进数据访问层

    Docker 更新

    • update: docker-compose.yml 配置优化
      • 改进服务依赖关系
      • 优化健康检查
      • 增强网络配置
    • update: Dockerfile-node 升级到 Node 22

    Full Changelog: https://github.com/joey-zhou/xiaozhi-esp32-server-java/compare/v3.0.0...v3.0.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    项目简介

    Xiaozhi ESP32 Server Java 是基于 Xiaozhi ESP32 项目开发的 Java 企业级服务端,采用多模块 + 双进程架构设计,为 ESP32 智能硬件提供完整的后端支撑和可视化管理平台。

    核心亮点

    • 多模块 + 双进程架构 — 管理后台与对话服务独立运行,互不影响,支持分别扩容
    • 多 AI 平台集成 — OpenAI / 智谱 / 讯飞 / Ollama / Dify / Coze,MCP 工具协议扩展
    • 语音全链路 — 本地 & 云端 STT/TTS,音色克隆,双向流式交互,实时打断,智能防误打断,极速响应
    • 声纹识别 — 识别家庭成员,多成员独立记忆,共用设备互不干扰
    • WebSocket + MQTT — 实时双向通信,服务端主动唤醒与消息推送,OTA 分批升级与时间窗控制
    • 多设备就近应答 — 同空间多台设备同时唤醒,仅一台应答
    • IoT 智能家居 — 语音指令控制设备,多设备协同,Function Call 智能决策
    • RAG 知识库 — 多格式文档解析(PDF / Office / 图片),检索增强生成
    • 长期记忆与记忆图谱 — 记住用户偏好与关键信息,理解人物关系,跨会话记忆
    • 全链路监控 — Token / 时延 / 设备活跃度多维可视化,运维指标对接,设备接入一键自检
    • 一键部署 — bin 脚本 / Docker Compose,Flyway 自动建表,模型自动下载

    技术栈

    类别技术选型
    后端Spring Boot、Spring MVC、MyBatis-Plus、Flyway、WebSocket
    前端Vue.js、Ant Design、响应式布局
    数据层MySQL 8.0、Redis 7、Qdrant(向量检索)
    语音识别sherpa-onnx SenseVoice(本地)、Vosk(本地)、FunASR、阿里云、阿里云 NLS、腾讯云、讯飞、火山引擎
    语音合成sherpa-onnx(本地)、Edge TTS、阿里云、阿里云 NLS、腾讯云、讯飞、火山引擎、MiniMax
    大语言模型OpenAI、智谱 AI、讯飞星火、火山方舟、星辰、Ollama、Dify、Coze
    扩展能力MCP 工具协议与接入点、Function Call、RAG 知识库、长期记忆与记忆图谱、声纹识别、音色克隆

    项目架构

    双进程架构:两个独立进程共享 MySQL 和 Redis,可分别部署与扩容。

    • xiaozhi-server :8091 — 管理后台,提供 REST API、用户/设备/角色管理、OTA 升级
    • xiaozhi-dialogue :8092 — 对话服务,处理 WebSocket/MQTT 实时音频流、AI 对话管道

    dialogue 支持横向扩展,新实例自动注册至 server,通过设备 OTA 实现负载均衡。


    适用人群

    • 已购买 ESP32 硬件,需要功能完善的管理平台
    • 需要企业级稳定性和扩展性
    • 个人开发者,希望快速搭建使用
    • 需要支持大量设备并发连接的场景

    功能对比

    部分功能未开源,有需求请通过下方联系方式沟通


    部署

    方式适合前置条件
    Docker(推荐)直接用起来只要 Docker
    源码要改代码JDK 21、Maven、Node 22、MySQL 8、Redis 7

    Docker

    mkdir xiaozhi && cd xiaozhi
    curl -O https://raw.githubusercontent.com/joey-zhou/xiaozhi-esp32-server-java/main/docker-compose.yml
    docker compose up -d
    

    等容器都 healthy 后打开 http://localhost:8084,账号 admin / 123456。 详见 Docker 部署。

    源码

    git clone https://github.com/joey-zhou/xiaozhi-esp32-server-java
    cd xiaozhi-esp32-server-java
    docker compose -f docker-compose-db.yml up -d   # 起 MySQL + Redis,已有可跳过
    ./scripts/download_models.sh                    # 下载模型和原生库,首次必须
    bin/all.sh start                                # 自检、编译并启动
    cd web && npm install && npm run dev            # 前端
    

    Windows 用 bin\all.ps1 start。详见 CentOS 部署 / Windows 部署。

    models/ 和 lib/ 不在 Git 仓库中,首次部署需通过脚本下载。 语音识别与合成全用第三方 API 的话,只跑 ./scripts/download_base.sh 即可(仅 VAD 模型和原生库)。

    登录之后

    要自己配一个大模型的 API Key 才能对话,系统不预置任何密钥。 语音识别用内置本地模型、语音合成用免费 Edge TTS,都可以先不管。 见配置说明。

    设备侧填这两个地址(分属两个进程,别写混):

    • OTA:http://<内网IP>:8091/api/device/ota
    • WebSocket:ws://<内网IP>:8092/ws/xiaozhi/v1/

    改了服务端口时,要同步改 xiaozhi.server.port 与 xiaozhi.dialogue.port, 否则下发给设备的地址还是旧端口。

    文档

    文档内容
    Docker 部署一键启动、升级、源码构建
    配置说明首次配置、环境变量、安全默认值
    常见问题部署与使用中的高频问题
    CentOS 部署Linux 源码部署,推荐生产环境
    Windows 部署Windows 开发与测试
    固件编译ESP32 固件编译和烧录

    性能测试

    我们开发了专门的 WebSocket 并发测试工具 Xiaozhi Concurrent,用于评估系统的性能和稳定性。测试工具支持模拟大量设备同时连接,测试完整的 WebSocket 通信流程,并生成详细的性能报告和可视化图表。

    📖 测试工具的详细使用说明、安装步骤和参数配置请查看:Xiaozhi Concurrent 仓库

    基准测试结果

    以下测试数据基于腾讯云服务器(8核8G,100M按量付费带宽) 环境,100个设备、100并发连接、持续5轮 对话测试:

    性能指标
    测试项目成功率平均时延最小值最大值备注
    WebSocket连接100% (500/500)0.090s--建立连接耗时
    Hello握手100% (500/500)0.073s--握手响应时间
    唤醒词响应100% (500/500)0.333s--唤醒词到音频回复
    语音识别准确率100% (500/500)---真实音频识别
    语音识别时延-0.988s0.949s1.255sASR识别耗时(包含800ms静音)
    服务器处理时延-0.849s0.454s3.759s服务端处理耗时(LLM+TTS)
    用户感知时延-1.837s1.433s4.723s说话结束到收到回复
    服务器资源占用
    资源类型空闲时峰值说明
    CPU使用率0%80%8核CPU占用率
    内存占用1.8G1.96GJVM堆内存稳定
    网络带宽(上行)02200KB/s客户端音频上传
    网络带宽(下行)03300KB/s服务端音频下发
    WebSocket连接数0100并发活跃连接数
    音频传输质量
    指标数值说明
    音频帧平均间隔58.07ms音频帧发送间隔
    帧延迟率8.47% (4226/49918)>65ms

    测试结果可视化


    商业合作

    我们接受各种项目开发,如果您有特定需求或对商业版本感兴趣,欢迎通过微信联系洽谈。

    贡献指南

    欢迎任何形式的贡献!如果您有好的想法或发现问题,请通过以下方式联系我们:

    微信

    微信群超200人无法扫码进群,可以加我微信备注 小智 我拉你进微信群

    QQ

    欢迎加入我们的QQ群一起交流讨论,QQ群号:790820705


    免责声明

    本项目仅提供技术实现代码,不提供任何媒体内容。用户在使用相关功能时应确保拥有合法的使用权或版权许可,并遵守所在地区的版权法律法规。

    项目中可能涉及的示例内容或资源均来自网络或由用户投稿提供,仅用于功能演示和技术测试。如有任何内容侵犯了您的权益,请立即联系我们,我们将在核实后立即采取删除等处理措施。

    本项目开发者不对用户使用本项目代码获取或播放的任何内容承担法律责任。使用本项目即表示您同意自行承担使用过程中的全部法律风险和责任。


    Star History