Zum Inhalt

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