LibreAI / Audio / xiaozhi-esp32-server
// audio · xinnan-tech/xiaozhi-esp32-server

xiaozhi-esp32-server

Self-hosted backend that gives ESP32 'Xiaozhi' devices streaming voice chat, memory and tool control.

★ 10.8k stars⑂ 3.7k forksMITupdated 2026-10
▦ visual — this project's README ships no embeddable screenshot,
so here's a placeholder. The guide below is complete regardless.
// project facts

Project facts

xiaozhi-esp32-server is an open-source audio project by xinnan-tech (xinnan-tech/xiaozhi-esp32-server on GitHub). It has 10,756 GitHub stars and 3,670 forks, is released under the MIT license, and was last updated on GitHub on 8 October 2026.

GitHub stars
10,756
Forks
3,670
License
MIT
Last updated on GitHub
8 October 2026
Category
Audio
Listing
Full install guide
Official site
Official site
// how it works

How it works

  1. Get your ESP32 device talking first

    Flash or buy a Xiaozhi ESP32 device and confirm it works against a public test backend, so you know the hardware side is fine before self-hosting.

  2. Choose an install tier

    Pick the minimal install (single agent, config-file storage, no database) or the full-module install (multi-user, multi-agent, web control console, database) - each is offered as Docker or source deployment in the docs.

  3. Configure the AI pipeline

    Select ASR, LLM, vision and TTS providers in the config; the documented all-free starter setup uses local FunASR, EdgeTTS and free-tier cloud models.

  4. Point devices at your server

    Set your firmware to your server's OTA and WebSocket endpoints, then watch it answer, recognize speakers and run tools through the control console.

// features

Why people love it

Streaming voice pipeline

Streaming ASR, streaming TTS and voice-activity detection give low-latency, interruptible conversations in multiple languages.

Voiceprint recognition

Multiple users can register voiceprints; the server identifies who is speaking in parallel with recognition and passes that to the LLM for personalized replies.

Many model providers

LLMs connect via OpenAI-compatible APIs, Ollama, Dify, FastGPT, Coze, Xinference or Home Assistant; ASR, TTS and vision models include local options like FunASR, FishSpeech and GPT-SoVITS as well as major cloud providers.

MCP and IoT tool calling

Supports client IoT protocols, client and server MCP, and MCP access points, and can push MCP commands from the console down to ESP32 devices over MQTT.

Memory and knowledge base

Choose local short-term memory, mem0ai or PowerMem for conversation memory, and plug in a RAGFlow knowledge base the model can consult before answering.

Web management console

The full-module install adds a web admin for users, system configuration and devices (in Simplified/Traditional Chinese and English), plus performance and audio test tools.

Advertisement
// run it

Run it yourself

  1. Clone the repository

    Get the server source; deployment itself is covered by the project's step-by-step deployment docs.

    git clone https://github.com/xinnan-tech/xiaozhi-esp32-server.git
    cd xiaozhi-esp32-server
  2. Pick a deployment route

    Follow the deployment document for your tier - Docker or source, minimal or full-module - linked from the README's deployment section.

    # see the deployment docs linked from the README for the exact commands
  3. Connect a device and test

    Point your ESP32 firmware at the server's OTA/WebSocket endpoints and use the bundled test tools to check ASR, LLM and TTS latency.

    # verify with the performance tester and audio test tool described in the README
// use cases

What you can build

Advertisement
// faq

Questions, answered

Who maintains xiaozhi-esp32-server?

The xinnan-tech team maintains it; the project is spearheaded by Professor Siyuan Liu's team at South China University of Technology and a large contributor community.

Is it free to use?

Yes. The server is MIT-licensed, and the README documents an all-free configuration (local FunASR recognition, EdgeTTS, free-tier models) for home use.

Does it need a paid API key?

Not necessarily. You can run every module with local or free-tier components; paid cloud ASR, LLM or TTS providers are optional upgrades for speed and quality.

How does it compare with using the public Xiaozhi backend?

The public service is zero-setup but shared and third-party-run; self-hosting gives you your own data, your own model choices, multi-user management and no dependence on someone else's server.

How do I get started?

Clone the repo, follow the deployment doc for the minimal Docker install, then point one ESP32 device at your server's WebSocket endpoint.

// keep exploring

Similar tools

Audio

VoiceMem

VoiceMem — streaming dual-brain memory for voice agents: a left brain for facts, a right brain for emotion

★ 2.4k starsApache-2.0
View guide →
Audio

Chatterbox-TTS-Server

Self-host Chatterbox TTS with web UI, API, and voice cloning.

★ 1.5k starsMIT
View guide →
Audio

dograh

Open source voice AI platform. Self-hosted alternative to Vapi and Retell. On Prem, BYOK across Speech to Speech or LLM/STT/TTS, with a visual workflow build…

★ 5.8k starsBSD-2-Clause
View guide →
Audio

koma

Self-hosted AI video analysis: summaries, chapters, transcripts.

★ 236 starsCustom
View guide →
Audio

whats-reader

Browse WhatsApp chat exports offline, with AI voice transcription.

★ 272 starsAGPL-3.0
View guide →
Audio

CosyVoice

CosyVoice: multilingual voice generation with zero-shot cloning, streaming and fine-tuning

★ 23.9k starsApache-2.0
View guide →
// alternatives

Alternatives in Audio

The most-starred other Audio projects in the LibreAI catalogue — the realistic shortlist if xiaozhi-esp32-server is not the right fit.

Get xiaozhi-esp32-server

Free and open — grab the source, star the repo, and start creating.