py-xiaozhi
py-xiaozhi is a Python implementation of the Xiaozhi voice client, intended for learning through code and for experiencing Xiaozhi's voice features without the hardware. It is ported from the xiaozhi-esp32 project, and the README is in Chinese with an English version.
Features include voice interaction, visual multimodal understanding, configurable wake words using offline Sherpa-ONNX recognition, and an MCP tool ecosystem: system control, schedule management, countdown timers, online music playback, 12306 train ticket queries, web search through Bing, a recipe library, Amap maps, a traditional Bazi fortune-telling tool and a camera tool. It also has IoT device management, audio processing (Opus, resampling, voice activity detection, WebRTC echo cancellation), a PyQt5 GUI, a command-line mode for embedded or headless use, a system tray and WSS encrypted audio transport. It needs Python 3.9 to 3.12, a microphone and speakers and a stable internet connection, with at least 4 GB of RAM recommended 8 GB, and optional model downloads for wake words. The README asks users to reinstall pip dependencies after each update. It is MIT licensed.
Features
Why choose it
Trade-offs
Maintenance check
- Last commit
- 2026-09-11
- Commits, last 90 days
- 5
- Releases, last 90 days
- 1
- Latest release
- v2.1.2 (2026-09-11)
- Open issues
- 8
- Recent issues with at least one comment
- 6/10
Oldest week on the left; the latest four weeks are orange. Source: GitHub commit activity.
Status rule: archived on GitHub = Archived; last commit within 90 days = Active; 91 to 365 days = Slowing; older = Stale. All figures come from the GitHub API on the date shown.
Most discussed open issues
- #317 [Improvement] py-xiaozhi should be only a library4 comments · 2026-08-07
- #316 Looking for Open-Source Infrastructure Sponsorship: Storage, CDN or Server1 comments · 2026-07-28
- #325 [Security] TLS 证书验证在全部传输层被禁用(WebSocket / OTA / 激活 / MQTT),与文档中 "certificate verification" 的说明不符0 comments · 2026-10-09
- #323 Optional consent-based memory for recurring voice sessions0 comments · 2026-09-28
- #322 Feature Suggestion: Optional token metering & paid API key support via `neuforge-pay`0 comments · 2026-09-12
Issue titles are quoted from GitHub. Open the link to check whether a problem still applies to the version you use.
Who it fits
- You want to try the Xiaozhi voice assistant on a computer without ESP32 hardware.
- You want offline wake words with Sherpa-ONNX, echo cancellation and a GUI or command-line mode.
- You want ready MCP tools such as schedules, timers, music, train tickets, web search and maps.
- You want a self-contained assistant: AI features depend on the Xiaozhi service.
- You cannot use Python 3.9 to 3.12, working audio devices and an internet connection.
- You want to self-host the backend: that is the server projects' job.
How it differs
xiaozhi-esp32-server is a backend for Xiaozhi devices. py-xiaozhi is a client that plays the device's role on a computer.
Compatibility
Quick start
Use cases
Alternatives
Featured in these lists
Comments
No comments yet. Be the first!