Voice-Stack¶
Sprachsteuerungs-Pipeline für Home Assistant: Wyoming-Server für Speech-to-Text und Text-to-Speech.
Diese Seite ersetzt die früheren Einzelseiten zu Whisper und Piper
Faster-Whisper läuft nicht mehr — die Spracherkennung macht seit dem Umbau NVIDIA Parakeet. Derselbe Stack läuft zusätzlich auf dem AI-Server, der ihn ablösen soll.
Zugriff¶
| Netzwerk | voice_internal, Host-Ports 10300 und 10200 |
| Traefik | Nein — Wyoming ist binäres TCP, kein HTTP |
| HA-Anbindung | Über localhost:<port> aus dem HA-Container im Host-Netzwerk |
Komponenten¶
| Container | Image | Port | Zweck |
|---|---|---|---|
wyoming-parakeet |
ghcr.io/tboby/wyoming-onnx-asr |
10300 | STT — NVIDIA Parakeet TDT v3 (ONNX, CPU) |
wyoming-piper |
lscr.io/linuxserver/piper |
10200 | TTS — Stimme de_DE-thorsten-high |
STT-Modell: istupakov/parakeet-tdt-0.6b-v3-onnx, 25 EU-Sprachen inklusive
Deutsch. Der erste Start lädt rund 2 GB nach /data/models.
STT auf der CPU ist eine bewusste Entscheidung: Es gibt keinen fertigen Wyoming-Server mit Intel-OpenVINO-Execution-Provider. Latenz typisch 500 ms bis 2 s.
Beide Healthchecks sind TCP-Verbindungsproben — Wyoming spricht kein HTTP, ein
curl gegen den Port läuft ins Leere.
Pfade¶
| Pfad | Zweck |
|---|---|
/mnt/ssd/container-data/voice-stack/parakeet |
ONNX-Modell-Cache |
/mnt/ssd/container-data/voice-stack/piper |
Stimm-Modelle |
Conversation-Agent: Google Gemini¶
Die Pipeline nutzt Google Generative AI als Conversation-Agent im Hybrid-Modell: Home Assistant versucht zuerst seine eingebauten Intents, das LLM ist der Auffangpfad.
Begründung: Lokale 3–4B-Modelle auf der Intel Iris Xe lieferten zu
inkonsistentes Tool-Calling und gelegentlichen Token-Collapse bei
Multi-Turn-Gesprächen. Gemini Flash liefert stabile deutsche Antworten,
zuverlässige HassTurnOn/HassTurnOff-Argumentschemata und Latenz unter einer
Sekunde bei Kosten um 0,30 € im Monat.
Einrichtung: Settings → Devices & Services → Add Integration → Google
Generative AI. Modell gemini-2.5-flash, „Control Home Assistant" an,
„Prefer handling commands locally" an, dazu eine deutschsprachige
Anweisung im Instructions-Feld.
Was das Haus verlässt¶
| Bleibt lokal | Geht an Google |
|---|---|
| Sprachaufnahme (Parakeet STT) | Transkribierter Text |
| Sprachausgabe (Piper TTS) | Entity-Liste, Tool-Definitionen, Gesprächsverlauf |
Das Daten-Routing ist global — bei der Developer-API gibt es kein garantiertes EU-Hosting.
Der lokale Ersatz steht bereit
Der AI-Server fährt seit Juli 2026 einen
residenten Voice-Agent auf llama-swap, gemessen 634 ms End-to-End und
24/25 korrekt erkannten Kommandos. Damit entfällt der Gemini-Umweg
vollständig. Die Umstellung der HA-Pipeline auf 10.10.10.7 steht noch
aus.
Pipeline in Home Assistant¶
Settings → Voice Assistants → Add:
- Sprache: Deutsch
- STT: Parakeet (Wyoming,
localhost:10300) - TTS: Piper (Wyoming,
localhost:10200) - Conversation-Agent: Google Generative AI
Fehlerfälle¶
| Fall | Auswirkung |
|---|---|
| Gemini nicht erreichbar (Internet-Ausfall) | Eingebaute HA-Intents arbeiten weiter, nicht passende Sätze ergeben „Tut mir leid, ich habe das nicht verstanden". Der Voice-Stack selbst bleibt unbeeinträchtigt |
| Container down | Die Pipeline scheitert beim STT- oder TTS-Schritt und meldet einen Fehler in der UI |
docker compose -f voice-stack/docker-compose.yml up -d
docker compose -f voice-stack/docker-compose.yml logs -f
Offen¶
- Wake-Word (openWakeWord) und Kokoro-TTS auf der Intel-iGPU waren als Stage 2 geplant — beides läuft derzeit nicht
- Voice-Pipeline-Monitoring in Grafana (Stage 3)
- Umstellung auf den AI-Server, danach Abschaltung dieses Stacks