RK3576 Runs Local Home Assistant Voice
A maker project by Hanzo Huang packages Whisper, Piper, openWakeWord, and Qwen 2.5 1.5B into a Docker Compose stack that runs entirely on a Rockchip RK3576 board's NPU, giving Home Assistant a fully local voice backend with no cloud dependency. Per-stage measurements show Whisper transcription at 0.626 seconds and Piper synthesis at 0.474 seconds, though end-to-end pipeline latency has not yet been published. The stack uses Home Assistant's Wyoming protocol as a hard abstraction boundary, so the Assist pipeline only ever sees standard speech services while RKNN model loading and NPU-specific packaging stay inside Docker containers, making the deployment reproducible on other boards. Prebuilt ARM64 images let users skip model-format conversion, and the project runs on a Seeed Studio reComputer RK3576.
Most edge-AI hardware projects fail to move from proof-of-concept to something another maker can reproduce because hardware-specific details leak upward through every layer. This RK3576 stack avoids that by treating Home Assistant's Wyoming protocol as a hard abstraction boundary: the Assist pipeline only ever sees standard STT, TTS, and wake-word services over TCP, while RKNN model loading, NPU device access, and Rockchip-specific packaging stay sealed inside Docker containers. That means a practitioner can replicate the deployment without touching model conversion or board-specific runtimes.
What happened
Hobbyist developer Hanzo Huang published a Docker Compose stack that turns a Rockchip RK3576 board into a fully local voice backend for Home Assistant. Four containerized services handle the pipeline: openWakeWord detects the wake phrase (port 10400), Wyoming Whisper handles speech-to-text (port 10300), Wyoming Piper handles text-to-speech (port 10200), and Qwen 2.5 1.5B, served through an RKLLM-backed OpenAI-compatible API, handles open-ended conversation (port 8001). Prebuilt ARM64 images mean users skip model-format conversion entirely, and the project runs on a Seeed Studio reComputer RK3576 paired with a reSpeaker XMOS XVF3800 microphone array.
Technical context
Huang reports per-stage timings for a typical smart-home command: Whisper transcription at 0.626 seconds, Piper synthesis at 0.474 seconds, and RKLLM response at 2.82 seconds; he notes end-to-end pipeline benchmarks are still pending. The RK3576 integrates a 6 TOPS dual-core NPU supporting INT4/INT8/FP16 inference, and vendor benchmarks place it at roughly 70% of the RK3588's performance at around 30% of its price, a cost-effective tier for always-on home appliances. For comparison, Home Assistant's own documentation puts Whisper on a Raspberry Pi 4 at around 8 seconds per command on CPU, so the NPU acceleration is meaningful even on these preliminary per-stage numbers.
For practitioners
This is a maker tutorial, not a packaged product: clone the GitHub repo (github.com/Hanzo-Huang/rk3576-home-assistant-voice), run docker compose up -d --pull always, then add three Wyoming integrations in Home Assistant under Settings, Devices & services, Wyoming Protocol, plus the HACS Local LLM integration to connect Qwen 2.5 1.5B as a conversation agent. Home Assistant can optionally co-host on the same board via a Compose profile flag. The reusable pattern is the Wyoming abstraction itself: swapping in a different Whisper model size or Piper voice requires only a container image update, not a Home Assistant reconfiguration.
What to watch
Whether Huang publishes the promised end-to-end pipeline benchmarks, and whether improving sub-2B instruction-tuned models (Qwen 2.5, Phi-3.5-mini, Gemma-3 1B) combined with the RK3576's INT4 support close the gap on the 2.82-second LLM response time enough to feel conversational without a hardware upgrade.
Key Points
- 1A Docker Compose stack runs Whisper, Piper, openWakeWord, and Qwen 2.5 1.5B on the RK3576 NPU for fully local Home Assistant voice.
- 2Measured per-stage latency is 0.626 seconds for speech-to-text and 0.474 seconds for text-to-speech, though full pipeline timing is not yet published.
- 3Using Home Assistant's Wyoming protocol as a hard abstraction boundary makes the deployment reproducible without touching board-specific model conversion.
Scoring Rationale
A well-documented, single-author maker project combining Whisper, Piper, openWakeWord, and Qwen 2.5 1.5B on the RK3576 NPU for fully local Home Assistant voice; reproducible via prebuilt ARM64 images and verified against the original write-up, but the author himself flags end-to-end benchmarks as still pending, and this remains a single-hardware hobbyist build rather than a broader platform signal.
Sources
Primary source and supporting public references used for this report.
Practice interview problems based on real data
1,625 SQL & Python problems across 15 industry datasets — the exact type of data you work with.
Try 250 free problems

