Best Open-Source Voice Assistants and Speech Tools
Open-source voice stacks let you build an assistant that listens, thinks and speaks without sending everything to a cloud provider. The pieces are speech recognition, a language model, speech synthesis and, for hardware, a server that connects to the device.
This list covers all of those: a speech recognition toolkit, backend servers for Xiaozhi ESP32 voice hardware, on-device SDKs and runtimes, and desktop assistants that run locally.
AgentIndex · Updated 2026-10-14
Quick picks
- FunASR — industrial speech recognition toolkit with streaming support; pick it for the recognition layer.
- runanywhere-sdks — SDKs for running LLMs, speech-to-text and text-to-speech on-device in mobile apps.
- xiaozhi-esp32-server — self-hosted backend for xiaozhi-esp32 voice hardware with MCP and a knowledge base.
- xiaozhi-esp32-server-java — Java server and admin console for Xiaozhi ESP32 devices, with STT/TTS, several LLM providers, MCP, RAG and OTA updates.
- jarvis — local-first desktop voice assistant that runs speech and language models on your own hardware.
- OGAM — mobile and Mac app that runs chat, image generation, vision and voice fully on-device, with a paid Pro tier.
Side-by-side comparison
| Tool | What it is | Stars | License | Last push | Install |
|---|---|---|---|---|---|
| FunASR | Industrial speech recognition toolkit with streaming support | 20.7k | MIT | 2026-10-13 | pip install funasr |
| runanywhere-sdks | SDKs for running LLMs, speech-to-text and text-to-speech on-device in mobile apps | 10.3k | Apache-2.0 | 2026-10-13 | npm install @runanywhere/core @runanywhere/llamacpp |
| xiaozhi-esp32-server | Self-hosted backend for xiaozhi-esp32 voice hardware with MCP and knowledge base | 10.8k | MIT | 2026-10-13 | git clone https://github.com/xinnan-tech/xiaozhi-esp32-server.git |
| xiaozhi-esp32-server-java | MIT Java server and admin console for Xiaozhi ESP32 voice devices, with STT/TTS, LLM providers, MCP tools, RAG and OTA updates | 1.4k | MIT | 2026-09-27 | git clone https://github.com/joey-zhou/xiaozhi-esp32-server-java |
| py-xiaozhi | Python desktop client for the Xiaozhi voice assistant, with wake word and MCP tools | 3.5k | MIT | 2026-09-11 | pip install -r requirements.txt |
| jarvis | Local-first desktop voice assistant that runs speech and language models on your own hardware, with memory and MCP tools | 2.0k | n/a | 2026-10-13 | git clone https://github.com/isair/jarvis.git |
| OGAM | MIT mobile and Mac app that runs chat, image generation, vision, voice and tools fully on-device, with a paid Pro tier | 3.2k | MIT | 2026-10-13 | git clone https://github.com/off-grid-ai/OGAM.git |
| osaurus | macOS runtime that runs local MLX and cloud models and exposes tools over MCP | 8.0k | MIT | 2026-10-13 | brew install --cask osaurus |
Tools in this list with an in-depth AgentIndex review: 8/8
How to choose
- Decide where it should run: on a phone or Mac, on a desktop, on an ESP32 device with a server, or in the cloud.
- Check what is local. Speech recognition, the language model and synthesis can each be local or cloud.
- For hardware projects, check compatibility with your device and firmware.
- Local models need disk and memory; some servers here report around 2 GB of RAM in their own tests.
- Note licences: most are MIT or Apache-2.0, but one desktop assistant lists no standard licence.
FAQ
Can I run a voice assistant completely offline?
Yes, in principle: choose local speech recognition, a local language model and local speech synthesis. Tools such as Jarvis and Off Grid AI aim for fully on-device operation. Expect to download models and to need enough memory.
What is Xiaozhi ESP32?
It is an open-source voice assistant project for ESP32 hardware. The listed servers provide the backend that handles speech recognition, the language model and speech synthesis for those devices, and py-xiaozhi is a Python desktop client.
Which speech recognition tool should I start with?
FunASR is a widely used open-source toolkit with streaming support and is a good starting point for the recognition layer. If you want a complete assistant instead of a component, look at the desktop and server projects in this list.
How we compiled this list
Tools are chosen by hand from the projects in our index, favouring those we have reviewed in depth. Stars, licence, last-push date and install command come from each repository and are refreshed with the site data. We read each project's README and docs; we have not run every tool ourselves, so test before you depend on one.