Analysis updated 2026-05-18
Keep a smart home ESP32 voice assistant working during internet outages
Add basic offline voice control for lights or fans to an embedded project
Extend the xiaozhi-esp32 project with a local fallback speech mode
Learn how to use ESP-SR for on device command recognition
| liwuyuee/xiaozhi-esp32-local | chillymasterio/puttyalt | freertos/freertos-smp-demos | |
|---|---|---|---|
| Stars | 61 | 59 | 68 |
| Language | C | C | C |
| Last pushed | — | — | 2025-02-16 |
| Maintenance | — | — | Stale |
| Setup difficulty | hard | easy | moderate |
| Complexity | 4/5 | 2/5 | 3/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires ESP32-S3 hardware with PSRAM and the ESP-IDF v5.5 toolchain, documentation is in Chinese.
xiaozhi-esp32-local is a firmware extension for xiaozhi-esp32, an open source AI voice assistant that runs on ESP32 hardware. The original project needs a network connection to send speech to a cloud server for understanding and reply. This fork adds a fallback: when the device cannot reach the server, it switches to a local offline mode and can still understand a small set of spoken commands using on device recognition instead of the cloud. The offline mode ships with ten Chinese language voice commands covering simple smart home actions such as turning lights on or off and asking for the current time. After the wake word is spoken, the device listens for four seconds. If it cannot reach the cloud server in that window, it falls back to matching the spoken audio against its built in command list using ESP-SR, a speech recognition library from Espressif, the maker of the ESP32 chip. A matched command runs immediately on the device and the result is shown on screen along with a spoken confirmation. If nothing matches before the timeout, the device returns to standby. The project targets ESP32-S3 hardware with PSRAM, since the local recognition model needs that extra memory to run, and it has been tested specifically on the ICECAT K2 development board, though the underlying xiaozhi-esp32 project supports many other boards. It is built with ESP-IDF 5.5 and FreeRTOS. Developers can add their own custom offline commands by editing a command list in the source code and reflashing the device. Setup involves cloning the repository, selecting the ESP32-S3 target and board type through the ESP-IDF menuconfig tool, then building and flashing as normal. Offline recognition can be toggled on or off through the same configuration menu, and when disabled it uses no extra device resources. The project is released under the MIT license, matching the license of the original xiaozhi-esp32 project it builds on, and credits both that project and Espressif's ESP-SR and ESP-IDF frameworks.
A firmware add-on for an ESP32 voice assistant that lets it understand a handful of spoken commands offline when it cannot reach the cloud.
Mainly C. The stack also includes C, C++, ESP-IDF.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.