Eigenen deutschen Wake-Word erstellen – ohne eigene Aufnahmen
Wenn dein Smarthome oder Gerät auf eine deutsche Phrase reagieren soll – „Hallo Lampe" statt des englischen „OK Nabu" – stößt du schnell an eine Wand: Fast jedes beliebte Wake-Word-Tool ist auf Englisch optimiert. Hier ist der ganze Weg, inklusive des Teils, der mich überrascht hat.
Das Problem
Das Standard-Wake-Word der Home-Assistant-Voice-Preview-Edition ist englisch. Die Optionen für Deutsch sehen so aus:
- openWakeWord – kostenlos und gut, aber die offiziellen Modelle sind nur englisch. Ein deutsches Modell selbst zu trainieren hat mich ein Wochenende Python, CUDA und Hyperparameter gekostet – und das Ergebnis hat auf jeden zweiten Satz reagiert.
- Porcupine (Picovoice) – funktioniert, aber als Lizenz pro Gerät mit Account, und die Sprachunterstützung wurde seit Jahren kaum erweitert.
- Einen deutschen Datensatz selbst aufnehmen – hunderte unterschiedliche Aufnahmen, Bereinigung, VAD, Training. Für ein Heimprojekt unrealistisch.
Ich wollte es so einfach wie möglich: deutsche Phrase eingeben, kleines Offline-Modell bekommen, fertig.
Warum englische Tools bei Deutsch scheitern
Es fehlt nicht nur eine Modelldatei – die beiden Probleme sind strukturell:
- Daten. Ein gutes Wake-Word braucht viele Stimmen, Akzente und Hintergrundgeräusche. Englisch hat riesige offene Datensätze; Deutsch hat deutlich weniger.
- Phonetik. Deutsch hat Vokallänge („Bahn" vs. „Bann"), Umlaute („ü", „ö") und Konsonantenhäufungen („Strom"), die ein auf englische Keywords abgestimmtes Modell einfach nicht überträgt.
Die praktische Abkürzung sind TTS-synthetisierte Trainingsdaten: Erzeuge in Minuten tausende variierte Äußerungen für dein Keyword – ohne Aufnahme. Das bringt dich grob 90 % des Weges.
Die letzten 10 % sind das eigentliche Problem
Rein synthetische Daten decken die „Standardaussprache" ab. Echte Nutzer haben Akzente, nuscheln und reden gegen den Fernseher – im Feld kann der Recall von ~90 % auf ~50 % fallen. Die Lösung, die bei mir tatsächlich funktioniert hat: ein paar echte Aufnahmen (~5 kurze Clips) ergänzen und neu trainieren. Das Modell lernt die reale akustische Streuung menschlicher Stimmen, der Recall steigt wieder über 90 %, und die Fehlauslösungen sinken.
Genau darauf solltest du bei jedem Generator achten: Lässt er dich ein schwaches Modell mit echtem Audio nachbessern – oder steckst du mit dem fest, was die TTS liefert?
Ergebnisse (meine eigenen Tests)
| Metrik | Wert |
|---|---|
| Modellgröße | ~100 KB |
| Recall bei deutschen Phrasen | > 90 % in ruhiger Umgebung |
| Fehlauslösungen | < 1 pro Tag (mehrstufige Filterung) |
| Latenz | < 5 ms – fühlt sich sofort an |
Du musst die Zahl nicht glauben – Modelle und Inferenz-Code sind öffentlich unter github.com/voicute/onnx-wakeword, du kannst klonen und den Recall selbst messen.
Ausführen
Das Modell ist Standard-ONNX und läuft über die Open-Source-onnx-wakeword-Engine (Python, Android, ESP32 und Web):
pip install onnxruntime numpy pyaudio
from wakeword_engine import WakeWordEngine
engine = WakeWordEngine()
engine.load('model_info.json', 'melspectrogram.onnx')
engine.start(lambda word, prob, info: print(f'{word} {prob:.0%}'))
Deutsch ist nicht die einzige Sprache, die funktioniert – derselbe Weg deckt Französisch, Japanisch und Chinesisch ab. Wie die Tools insgesamt abschneiden, zeigt der vollständige Vergleich.
Deutschen Wake-Word trainieren →