Hlasový asistent v Home Assistant: lokální wake word bez cloudu

Postavit si doma plně lokální hlasový asistent bez odesílání dat na cizí servery už není sci-fi — je to otázka pár hodin práce a Docker kontejnerů. Ukážeme ti, jak na to krok za krokem, od instalace přes nastavení vlastního probuzovacího slova až po provoz v praxi.
Když jsem před pár lety poprvé křičel „Hey Google" na reproduktor, ani mě nenapadlo, že jednou budu mít doma plně lokální hlasový asistent, který nepošle ani bajt dat na cizí server. Dnes to není sci-fi — je to reálné odpoledne práce a pár Docker kontejnerů. Pojďme si projít, jak to celé funguje a jak to nastavit od nuly.

Jak to celé do sebe zapadá: Wyoming protokol jako lepidlo
Celá architektura stojí na Wyoming protokolu — jednoduchém TCP protokolu, který Home Assistant používá k propojení externích hlasových služeb. Funguje to tak, že každá část pipeline (rozpoznání wake wordu, převod řeči na text, převod textu na řeč) běží jako samostatná služba a HA s nimi komunikuje přes Wyoming.
V praxi to znamená tři komponenty:
- openWakeWord — detekuje probuzovací slovo (wake word) a poslouchá na pozadí
- Wyoming Whisper (faster-whisper) — převádí mluvenou řeč na text lokálně
- Piper — generuje odpověď jako hlas
Každá z těchto služeb může běžet jako HA add-on (pokud máš Home Assistant OS) nebo jako Docker kontejner na libovolném stroji v síti. Já osobně preferuji Docker — mám větší kontrolu a můžu to provozovat odděleně od HA instance.
Základní compose.yaml pro Whisper vypadá takto:
whisper:
container_name: whisper
image: rhasspy/wyoming-whisper:latest
restart: unless-stopped
ports:
- "10300:10300"
volumes:
- ./whisper-data:/data
command: --model tiny-int8 --language cs
Model tiny-int8 je nejrychlejší, ale pokud má tvůj server trochu více výkonu, klidně zkus base-int8 — rozpoznávání bude znatelně přesnější. Pro češtinu stačí změnit --language en na --language cs.
Probuzovací slova: ok nabu, hey jarvis nebo vlastní jméno

Detekci wake wordu zajišťuje openWakeWord. Instalace na Home Assistant OS je přímočará: Settings → Apps → openWakeWord → Install. Po spuštění aplikace se v Settings → Devices & services automaticky objeví Wyoming integrace — stačí potvrdit a hotovo.
Pokud běžíš bez HA OS, openWakeWord je dostupný také jako Docker kontejner naslouchající na portu 10400.
Výchozí wake words jsou ok nabu, hey jarvis a alexa. Já začínal s ok nabu čistě pro ověření, že vše funguje — a doporučuju to i tobě. Teprve potom jsem šel po vlastním wake wordu.
Vlastní wake word — konkrétní postup
Chceš, aby tvůj asistent reagoval na „Hej Domácnost" nebo třeba „Skynet"? Jde to. Z home-assistant-wakewords-collection si stáhneš .tflite soubor a zkopíruješ ho do správné složky:
cd ~/docker/wyoming
sudo curl -L -o ./openwakeword/Skynet.tflite \
https://github.com/fwartner/home-assistant-wakewords-collection/raw/main/en/skynet/Skynet.tflite
Pak upravíš compose.yaml — změníš --preload-model 'hey_jarvis' na --preload-model 'Skynet' — a restartuješ kontejner:
docker compose restart openwakeword
V HA pak jdeš do Settings → Voice Assistants → tvůj asistent → Edit Streaming Wake Word a vybereš Skynet. Pokud používáš Wyoming satelit (fyzické zařízení s mikrofonem), .tflite soubor patří do složky wyoming-satellite/local/custom-wake-words/openWakeWord/ — a pak se automaticky objeví v nastavení satelitu.
Důležitá věc, na kterou jsem narazil: soubor musí mít správné pojmenování. Pokud se jmenuje emma.tflite, přejmenuj ho na emma_v0.1.tflite a v konfiguraci satelitu odkazuj jen na emma. Bez toho to prostě nenajde.
Upozornění: openWakeWord v současnosti funguje spolehlivě pouze pro anglická wake words, protože chybí dostatečné množství multi-speaker modelů v jiných jazycích. Pokud chceš česky pojmenované wake word, realisticky očekávej vyšší míru falešných poplachů.
Reálný provoz a na co si dát pozor

Největší překvapení pro mě bylo, jak moc záleží na výkonu serveru. Na starém Intel NUC s modelem tiny-int8 trvalo rozpoznání řeči 2–3 sekundy — použitelné, ale ne oslnivé. Po přechodu na base-int8 to bylo výrazně lepší, asi 1–1,5 sekundy. Pokud máš k dispozici GPU, faster-whisper s GPU průchodem to dostane pod půl sekundy — ale to je už jiná liga nasazení.
Praktická rada: nastav si monitoring Wyoming Whisper endpointu. Stačí jednoduchý ping skript nebo HA automatizace, která ti pošle notifikaci, pokud služba přestane odpovídat. Jinak na výpadek přijdeš až tak, že budeš křičet do místnosti a nic se nebude dít.
Jedna věc, která mě příjemně překvapila: Home Assistant nyní podporuje mapování dvou wake wordů na dvě různé pipeline. Takže teoreticky můžeš mít „Hey Jarvis" pro rychlé lokální příkazy a druhé slovo pro pipeline napojené na LLM. Já to zatím nemám ostré, ale plánuju to — přijde mi to jako elegantní řešení pro případy, kdy chceš „jen zhasnout světlo" versus „vysvětli mi, co se děje s elektřinou v domě".
Také počítej s tím, že naučit rodinu nové wake word dá čas. Vážně. „Proč nemůžu říct Hey Google?" je věta, kterou jsem doma slyšel měsíce.
Kam dál?
Lokální hlasový asistent v Home Assistantu je v roce 2026 reálně použitelný každodenní nástroj — ne jen hračka pro nadšence. Wyoming protokol dává celé architektuře flexibilitu, openWakeWord spolehlivou (i když anglicky optimalizovanou) detekci probuzení a Whisper překvapivě dobré rozpoznávání řeči i na skromném hardwaru.
Pokud začínáš, doporučuju tenhle postup: nejdřív rozjed celou pipeline s výchozím ok nabu, ověř, že funguje end-to-end, a teprve pak laď vlastní wake word a modely. Ušetříš si hodiny debugování.
A teď na tebe: máš doma už něco podobného rozjetého, nebo teprve plánuješ? Napiš do komentářů — zajímá mě hlavně, jak řešíte češtinu v rozpoznávání řeči. To je pořád místo, kde lokální řešení trochu kulhá.
Zdroje
- 01Setting Up Home Assistant Voice Assistant With Local Mic/Speaker | Random Ones And Zeros
- 02Wake words for Assist - Home Assistant
- 03Custom wakeword with wyoming satelitte - Voice Assistant - Home Assistant Community
- 04I Built a Fully Local Voice Assistant for Home Assistant (With GPU, No Cloud Required) | Joe Karlsson
- 05Home Assistant - Exploration Of Fully Local Voice Assist - Blog - Level1Techs Forums
- 06Wyoming Protocol - Home Assistant
- 07The Home Assistant approach to wake words - Home Assistant
- 08Building a Local Voice Assistant with OpenHab Integration - Beginners - openHAB Community