LW IT Solutions
« Blog-Übersicht /Smart Home/Tutorials / Lokale Sprachsteuerung in Home Assistant mit Whisper...
Diesen Artikel in anderen Sprachen lesen:

Lokale Sprachsteuerung in Home Assistant mit Whisper & Piper

Teil 4 von 6 der Reihe Home Assistant ohne Cloud

Lokale Sprachsteuerung in Home Assistant mit Whisper & Piper
Inhalt
  1. 1. Architektonische Grundlagen: Die Wyoming-Sprachpipeline
  2. 2. Schritt-für-Schritt-Installation der Whisper- & Piper-Add-ons
  3. 3. Schritt-für-Schritt-Konfiguration der Assist-Pipeline
  4. 4. Zusammenfassung & Mehrwert
  5. Fragen und Antworten
  6. Quellen

Cloud-abhängige Sprachassistenten wie Amazon Alexa, Google Assistant und Apple Siri basieren auf externen Servern für die Spracherkennung (ASR), die Aktivierungserkennung und die Verarbeitung natürlicher Sprache (NLP). Diese Abhängigkeit verursacht Latenzen, schafft Anfälligkeiten bei Internetausfällen und wirft erhebliche Datenschutzbedenken bezüglich permanenter akustischer Überwachung auf. Die Implementierung einer vollständig lokalen Sprachsteuerungsarchitektur in Home Assistant über das Wyoming-Protokoll – durch die Kombination von OpenAI Whisper für Speech-to-Text (STT) und Piper für neuronales Text-to-Speech (TTS) – führt Sprachbefehle in Bruchteilen von Sekunden aus, komplett innerhalb des lokalen Netzwerks.

1. Architektonische Grundlagen: Die Wyoming-Sprachpipeline

Die lokale Sprachverarbeitung in Home Assistant operiert als modulare, entkoppelte Pipeline, in der Audioströme sequenziell ohne externe API-Aufrufe verarbeitet werden:

  • Wake-Word-Erkennung (openWakeWord / microWakeWord): Leichte KI-Modelle analysieren kontinuierlich die Mikrofoneingaben – openWakeWord auf dem Home-Assistant-Server, dem der Satellit dafür dauerhaft Audio streamt, microWakeWord direkt auf der Satelliten-Hardware (z. B. ESP32-S3) –, um die Pipeline bei Erkennung des Aktivierungswortes zu starten.
  • Speech-to-Text (Whisper): Audiopakete werden über das Wyoming-Protokoll an den lokalen Whisper-Container gestreamt und in strukturierte Zeichenketten transkribiert.
  • Absichtserkennung (Home Assistant Assist): Natürliche Sprachparser gleichen die transkribierte Zeichenkette mit definierten Entitäten, Räumen und Automatisierungs-Aliasnamen ab.
  • Text-to-Speech (Piper): Der Antworttext wird durch Piper in eine natürlich klingende Sprachausgabe synthetisiert und an den Lautsprecher des Satelliten zurückgestreamt.
Kreislauf der lokalen Sprachsteuerung vom ESPHome-Satelliten über Whisper und Home Assistant bis zur Antwort über Piper
Die Wyoming-Pipeline ist ein Kreislauf: Der Satellit hört, Whisper macht Text daraus, Home Assistant handelt, und Piper spricht die Antwort auf demselben Weg zurück — vollständig im lokalen Netz.

2. Schritt-für-Schritt-Installation der Whisper- & Piper-Add-ons

Die Bereitstellung lokaler Sprachdienste erfordert die Installation dedizierter Container-Add-ons unter Home Assistant OS oder in überwachten Docker-Umgebungen:

  1. Installation des Whisper-Add-ons: Unter Einstellungen > Add-ons > Add-on Store ist nach Whisper zu suchen. Bei der Konfiguration muss die passende Modellgröße gewählt werden: tiny-int8 oder base für reine CPU-Server (Raspberry Pi 4/5) oder medium für Systeme mit GPU-Beschleunigung oder Google Coral TPUs.
  2. Installation des Piper-Add-ons: Nach der Installation des Piper-Add-ons wird im Konfigurationsbereich das gewünschte neuronale Sprachmodell (z. B. de_DE-thorsten-medium für Deutsch) ausgewählt und der Dienst gestartet.
  3. Konfiguration der Wyoming-Integration: Unter Einstellungen > Geräte & Dienste > Integration hinzufügen wird nach Wyoming Protocol gesucht und sowohl Whisper (Standardport 10300) als auch Piper (Standardport 10200) hinzugefügt.

3. Schritt-für-Schritt-Konfiguration der Assist-Pipeline

Sobald die Verarbeitungsmodule integriert sind, muss eine einheitliche Sprachassistenten-Pipeline eingerichtet werden:

  1. Erstellung einer Sprachpipeline: Unter Einstellungen > Sprachassistenten > Pipeline hinzufügen ist ein aussagekräftiger Name wie Lokaler Assist - Deutsch zu vergeben.
  2. Zuweisung lokaler Engines: Als Sprache-zu-Text-Engine wird Whisper, als Konversationsagent Home Assistant und als Text-zu-Sprache-Engine Piper konfiguriert.
  3. Aktivierung des lokalen Wake-Words: Für die Aktivierungserkennung auf dem Home-Assistant-Server wird openWakeWord gewählt und ein passendes Schlüsselwort (z. B. Okay Nabu oder Hey Jarvis) festgelegt.

Produktionsreifes ESPHome-Satelliten-YAML

Um Sprache aufzunehmen und Antworten ohne Cloud-Hardware auszugeben, kann ein ESP32-S3-Sprachsatellit (z. B. ESP32-S3-BOX-3) mit folgender ESPHome-Konfiguration betrieben werden:

esphome:
  name: "voice-satellite-livingroom"
  friendly_name: "Living Room Voice Satellite"

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

api:
  encryption:
    key: "GENERATE_YOUR_KEY_HERE"

i2s_audio:
  - id: i2s_in
    i2s_lrclk_pin: GPIO4
    i2s_bclk_pin: GPIO5
  - id: i2s_out
    i2s_lrclk_pin: GPIO15
    i2s_bclk_pin: GPIO16

microphone:
  - platform: i2s_audio
    id: sat_mic
    i2s_audio_id: i2s_in
    i2s_din_pin: GPIO6
    adc_type: external
    pdm: false

speaker:
  - platform: i2s_audio
    id: sat_speaker
    i2s_audio_id: i2s_out
    i2s_dout_pin: GPIO17

voice_assistant:
  id: va_pipeline
  microphone: sat_mic
  speaker: sat_speaker
  use_wake_word: true
  noise_suppression_level: 2
  auto_gain: 31dBFS
  volume_multiplier: 2.0

4. Zusammenfassung & Mehrwert

Was sich damit erreichen lässt: Die erfolgreiche Bereitstellung einer vollständig autonomen, lokalen Sprachsteuerungsarchitektur in Home Assistant mit dem Wyoming-Protokoll, Whisper STT, Piper TTS und ESPHome-basierter Hardware-Satelliten.

Resultierender Mehrwert: Die Sprachsteuerung im Smart Home wird komplett unabhängig von Cloud-Servern Dritter. Privatsphäre und akustische Telemetriedaten bleiben strikt innerhalb des lokalen Netzwerks isoliert, was jegliches Profiling und Datenabfischen ausschließt. Darüber hinaus entfällt das Routing über externe Server, wodurch Sprachbefehle in weniger als einer Sekunde verarbeitet werden und eine 100-prozentige Verfügbarkeit auch bei Internetausfällen garantiert ist.

Fragen und Antworten

Funktioniert die Sprachsteuerung bei einem Internetausfall vollständig?

Die Kette selbst schon, vom Aktivierungswort über Whisper und Assist bis zu Piper, denn keines ihrer Glieder verlässt das lokale Netz. Ausführen lässt sich ein Befehl aber nur an Geräten, die Home Assistant selbst im lokalen Netz ansteuert; eine Integration, die über die Cloud des Herstellers schaltet, fällt mit dem Internet aus, gleich wie gut der Satz erkannt wurde. Auch ein Wechsel des Whisper-Modells oder der Piper-Stimme braucht eine Verbindung, weil die Add-ons Modelle und Stimmen beim ersten Gebrauch herunterladen.

Warum führt Assist einen Satz nicht aus, den Whisper richtig erkannt hat?

Weil der eingebaute Konversationsagent von Home Assistant keinen freien Text deutet. Er gleicht den erkannten Satz mit festen Satzmustern und mit den Namen und Aliasnamen von Entitäten und Räumen ab. Ein Satz, der eine Lampe beim Namen nennt und sie einschalten soll, passt zu einem Muster; eine Bemerkung wie „Hier ist es zu dunkel“ passt zu keinem, auch wenn Whisper jedes Wort richtig transkribiert hat.

Drei Schritte helfen, in dieser Reihenfolge:

  1. Der Blick auf den Durchlauf. In den Einstellungen der Sprachassistenten lässt sich jeder Durchlauf einer Pipeline nachverfolgen, samt dem Text, den Whisper geliefert hat, und dem, was Assist daraus gemacht hat. Daran ist sofort zu erkennen, ob der Fehler bei der Erkennung oder beim Abgleich liegt.
  2. Aliasnamen. Eine Entität darf mehrere Namen tragen, und die Wörter, die im Alltag wirklich fallen („Deckenlampe“, „großes Licht“), gehören genau dorthin.
  3. Eigene Sätze. Eine Automatisierung mit einem Satz als Auslöser reagiert auf frei gewählte Formulierungen und kann danach beliebige Aktionen ausführen, bei Bedarf mehrere auf einmal.

Home Assistant ohne Cloud

  1. Zigbee2MQTT vs. ZHA: Aufbau eines ausfallsicheren Mesh-Netzwerks in Home Assistant
  2. ESPHome und ESP32 in der Praxis: Eigene Cloud-freie Umweltsensoren entwickeln
  3. Präsenzerkennung 2.0: mmWave-Radare (LD2410/LD2450) in der Lichtautomatisierung
  4. Lokale Sprachsteuerung in Home Assistant mit Whisper & Piper
  5. WireGuard & Tailscale DMZ: Sicherer externer Zugriff auf Home Assistant und eigene Server
  6. Lokales Energiemanagement: Integration von PV-Wechselrichtern und Batteriespeichern über Modbus TCP
Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Kommentar schreiben

Erfahrungen mit anderen Geräten oder Integrationen und Rückfragen zur Einrichtung sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.

Artikel & Kategorien

CCTV

Diese Rubrik per RSS verfolgen

Cloud & AI

Alle 17 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Data Privacy

Alle 19 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Digital Analytics

Alle 58 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Digital Marketing

Alle 37 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

IT & Networks

Alle 18 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Music Production

Alle 17 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Raspberry Pi

Diese Rubrik per RSS verfolgen

SaaS & Internet Earning

Diese Rubrik per RSS verfolgen

Smart Home

Alle 18 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

Web Entwicklung

Alle 11 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen

WordPress-Plugins & Tricks

Alle 14 Artikel dieser Rubrik Diese Rubrik per RSS verfolgen