openWakeWord erkennt das Wake Word nicht? So findest du die Ursache
Ein Modell ohne Reaktion ist nicht automatisch schlecht trainiert. Fehler beim Mikrofon, Resampling, Framing, bei der Merkmalsextraktion, beim Schwellenwert oder eine Lücke zwischen TTS-Training und echten Stimmen sehen identisch aus. Prüfe sie in dieser Reihenfolge.
1. Modell mit einer WAV-Datei testen
Teste vor dem Live-Mikrofon eine bekannte positive 16-kHz-Datei mit predict_clip(). Kontrolliere Modellname und Score. Falsche Pfade, Cache-Dateien oder eine Verwechslung von ONNX und TFLite wirken wie null Recall.
from openwakeword.model import Model
model = Model(wakeword_models=["mein_modell.onnx"])
print(model.predict_clip("positiv.wav"))
2. Audiovertrag prüfen
openWakeWord erwartet 16-Bit-PCM mit 16 kHz; Frames sollten laut Dokumentation Vielfache von 80 ms sein. Speichere den echten Eingabestrom als WAV und höre ihn an. Prüfe Kanäle, Datentyp, Framelänge und Amplitude. Deaktiviere AGC, Rauschunterdrückung und Echo-Cancelling vorübergehend.
3. Scores statt nur Trigger ansehen
0.5 ist ein Ausgangspunkt, keine universelle Schwelle. Messe mindestens 20 beabsichtigte Äußerungen und mehrere Minuten Alltagssprache. Eine niedrigere Schwelle reduziert Aussetzer, erhöht aber Fehlaktivierungen.
| Beobachtung | Nächster Schritt |
|---|---|
| Score bleibt nahe null | Pfad, Audioformat, Sample-Rate, Feature-Pipeline |
| Zielwort knapp unter Threshold | Niedrigere Schwelle gegen Negativdaten testen |
| WAV geht, Mikrofon nicht | Capture, Resampling und Puffer vergleichen |
| Nur eine Person wird erkannt | Sprecher- und Aussprachevielfalt ergänzen |
| Nur in Ruhe zuverlässig | Reale Geräusche, Raum und Distanz testen |
4. VAD und Cooldown isolieren
VAD-Gates, Debounce, Cooldown oder mehrere erforderliche positive Frames können einen gültigen Score blockieren. Schalte sie zur Diagnose aus und aktiviere sie einzeln wieder. Logge Score, VAD, Schwellenentscheidung und Cooldown gemeinsam.
5. Trainingsdaten erweitern
- Mehrere TTS-Stimmen sowie Tempo, Tonhöhe und Lautstärke variieren.
- Geräusche, Raumimpulsantworten und Distanz passend zum Zielgerät simulieren.
- Ähnlich klingende Wörter als schwierige Negativbeispiele verwenden.
- Bei Akzentproblemen sauber geschnittene echte Aufnahmen ergänzen.
- Recall und Fehlaktivierungen auf getrennten Daten bewerten.
Wie Voicute Schwankungen reduziert
Voicute trainiert ein kompaktes Zielwortmodell, erweitert synthetische Sprache um akustische Variationen und bietet eine Voice-Enhanced-Variante mit ausgewählten echten Aufnahmen. Damit wird die Lücke zwischen sauberer Synthese und realem Mikrofon kleiner. Das exportierte ONNX-/TFLite-Modell muss trotzdem auf der Zielhardware getestet und eingestellt werden; ein Messwert ist keine Garantie für jede Umgebung.