Views
No views yet
pymicro-wakeword. First openly published
Russian microWakeWord.irina.tflite — streaming quantized modelirina.json — v2 manifest (trained_languages: ["ru"], probability_cutoff 0.97,
sliding_window_size 5)probability_cutoff = 0.97 — a deliberately recall-safe starting
point. Real utterances score ~0.996 (tightly bunched just under 1.0), well clear of 0.97, so
recall is 100% with comfortable margin. To trade a little of that margin for fewer false
accepts, raise the cutoff toward ~0.99 on your own device as your real ambient dictates:| cutoff | recall (16 real) | FA/h* |
|---|---|---|
| 0.97 (shipped) | 100% | 1.9 |
| 0.98 | 100% | 1.3 |
| 0.99 | 100% | 1.0 |
| ≥0.995 | drops | — |
sliding_window_size (5 → 7) for extra smoothing if FA is stubborn.+ before the stressed
vowel, put_accent=False); Vosk's BERT accentizer handles it from plain text.ruslan + Silero
(xenia/kseniya/eugene) + a female-leaning Vosk-TTS minority (all Apache/CC-BY-NC-SA).
The Vosk female voices restore the female-speaker diversity that a non-redistributable Piper
voice would otherwise have provided — so the model generalizes to female speakers without any
CC-BY-NC-ND source.1from pymicro_wakeword import MicroWakeWord, MicroWakeWordFeatures
2mww = MicroWakeWord.from_config("irina.json") # feed 16 kHz mono 16-bit audio via MicroWakeWordFeaturesmicro_wake_word component.ruslan + Silero + female Vosk-TTS minority) → CC BY-NC-SA 4.0;
plus stock English negatives (kahrendt/microwakeword) and a Common Voice ru subset.
Full recipe, per-run log, and methodology: https://github.com/locveil/wakeword-training
(docs/recipe.md, EXPERIMENTS.md).