This is an automated archive made by the Lemmit Bot.
The original was posted on /r/homeassistant by /u/tristanbrotherton on 2026-07-11 02:40:51+00:00.
I am an avid user of home assistant and openclaw. I have a few Voice PE's and was never really happy with the user-experiance. After building a voice / phone plugin for Open Claw recently i decided voice was fun and I decided to fix this. I looked at other work but nothing quite hit the feature set i was going for. The result is honestly the assistant I always wanted. Repos at the bottom — it's two halves, ESPHome firmware + an HA add-on.
What it does now:
-
True speech-to-speech. No STT→LLM→TTS chain — replies are generated as speech, so it sounds like conversation using OpenAI's real-time API. Smart-home control goes through HA's native tools and is instant. Persona is fully promptable; mine is a dry British butler.
-
Custom wake word, trained on us. I say "hey leonard." The firmware ships a microWakeWord model trained on ~50k voices. Detection margin improved 65% over three training passes.
-
It knows who's talking. Say "teach me my voice" and the device runs a guided enrollment session (mic pinned open, audio coach walks you through it, everything stays local). Speaker embeddings then identify each of us by name on every wake — it greets me by name, as well as my wife, and treats unknown voices as guests. Certain tools are locked to my voice only.
-
It learns from its mistakes. Every wake capture is archived locally. False trigger? Say "that was a false alarm" or just double-press the button. A weekly job retrains the wake word on exactly those failures, quality-gates the result against the current model, stages it (never auto-flashes), and texts me (via openclaw) — I reply to deploy, or roll back with one command if a model misbehaves.
-
The domestic stuff: voice timers that ring on-device, HA sensors for who's-speaking / active timers / daily false-wake counts, and errors are LED-only — no more "cloud unavailable" announcements waking the house at 3 am. A ton of quality / UX improvements.
Almost everything — enrollment, labeling, retraining, notifications — was built because something annoyed me. The false-wake flywheel exists because it interrupted breakfast.
Built on the shoulders of xandervanerven's and fjfricke's realtime work and the official ESPHome firmware — credits in the repos:
-
Backend: https://github.com/TristanBrotherton/voicepe-realtime-backend
-
Firmware: https://github.com/TristanBrotherton/voicepe-realtime-firmware
Happy to answer questions.