py-xiaozhi
An open-source AI voice client for desktops and ARM devices, with camera input and Home Assistant control; AI services require internet access.

py-xiaozhi is a Python AI voice client for people who want to try Xiaozhi conversations on a computer or build voice interaction into hardware projects. It builds on the xiaozhi-esp32 project and lets you use a desktop microphone and speakers without dedicated Xiaozhi hardware.
- Voice conversations: Talk to AI services through streaming audio, with on-device wake word detection through Sherpa-ONNX and support for custom wake words.
- Camera input: Use a connected camera with vision-language models to interpret images and scenes.
- Desktop tools: MCP tools let the assistant play music, take screenshots, manage apps, check weather and adjust volume; plugins can add further capabilities.
- Home and hardware control: Connect Home Assistant devices, or use GPIO for robotics, sensors and physical controls.
The client runs locally on Windows, macOS and Linux, including ARM devices such as Raspberry Pi, Horizon Robotics RDK and Jetson Nano. It has a graphical interface and command-line modes for desktop and headless use. It's open source under the MIT license.
Local operation doesn't make the whole assistant offline: wake word detection runs on the device, while AI services and online features need an internet connection. Voice use requires a microphone and speakers, and camera features require a camera. The stated memory requirement is at least 4GB RAM, with 8GB or more recommended.