← all repositories
joey-zhou/xiaozhi-esp32-server-java

Java backend gives ESP32 voice assistants an enterprise dashboard

A Spring Boot management layer for Xiaozhi ESP32 hardware that handles real-time voice pipelines, device fleets, and enough LLM integrations to keep an IT department happy.

1.3k stars Java AgentsInference · Serving
xiaozhi-esp32-server-java
Not currently ranked — collecting fresh signals.
star history

What it does

It’s a complete Java rewrite of the backend for the Xiaozhi ESP32 open-source voice assistant. The project ships a Vue.js management dashboard and splits runtime into two processes: xiaozhi-server handles REST APIs, user management, and OTA updates, while xiaozhi-dialogue manages WebSocket/MQTT audio streams and the AI inference pipeline. Both share MySQL and Redis, and the dialogue service can scale horizontally behind a load balancer.

The interesting bit

The dual-process architecture is the quietly clever part: by decoupling the admin dashboard from the real-time audio service, you can scale the chatty voice pipeline without dragging the management UI along for the ride. It also integrates a laundry list of Chinese and international AI services—OpenAI, Zhipu, iFlytek, Ollama, Dify, Coze—and supports MCP tool protocols, RAG knowledge bases, and IoT function calls, making it less a simple bridge and more a full integration layer.

Key highlights

  • Dual-process architecture: xiaozhi-server for admin/OTA, xiaozhi-dialogue for real-time audio, sharing MySQL/Redis
  • Horizontal scaling of dialogue nodes with auto-registration and OTA load balancing
  • Pluggable LLM/STT/TTS providers including OpenAI, Zhipu, iFlytek, Ollama, Dify, Coze, and local engines like Vosk and sherpa-onnx
  • Full-duplex voice pipeline with local/cloud STT, TTS, voice cloning, real-time interruption, and bidirectional streaming
  • Vue.js dashboard for device fleets, role switching, dialogue logs, and firmware upgrades
  • Benchmarked to 100 concurrent device connections on 8C/8G cloud hardware with ~1.8s end-to-end latency

Caveats

  • Some features shown in the comparison table are locked behind a commercial version and not included in the open-source release
  • Native ML models and libraries are excluded from the repository and must be fetched via external scripts before the first run
  • The codebase is purpose-built for the Xiaozhi ESP32 firmware; it is not a drop-in backend for other hardware

Verdict

Grab it if you are running Xiaozhi ESP32 devices and need a Java-native, dashboard-driven backend that can handle a fleet. Pass if you are looking for a generic, hardware-agnostic voice assistant server or a lightweight Python alternative.

Frequently asked

What is joey-zhou/xiaozhi-esp32-server-java?
A Spring Boot management layer for Xiaozhi ESP32 hardware that handles real-time voice pipelines, device fleets, and enough LLM integrations to keep an IT department happy.
Is xiaozhi-esp32-server-java open source?
Yes — joey-zhou/xiaozhi-esp32-server-java is open source, released under the MIT license.
What language is xiaozhi-esp32-server-java written in?
joey-zhou/xiaozhi-esp32-server-java is primarily written in Java.
How popular is xiaozhi-esp32-server-java?
joey-zhou/xiaozhi-esp32-server-java has 1.3k stars on GitHub.
Where can I find xiaozhi-esp32-server-java?
joey-zhou/xiaozhi-esp32-server-java is on GitHub at https://github.com/joey-zhou/xiaozhi-esp32-server-java.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.