requires-python >=3.14,<3.15 (was <3.14 ceiling): the old cap existed because Rust-backed transitives lacked cp314 wheels; tflite-runtime (openwakeword's hard linux dep) still caps at cp311, so the wake engine moves to pyopen-wakeword 1.1.0 — py3 wheels + bundled tensorflowlite_c lib, whose bundled melspectrogram/embedding models are byte-identical to the openWakeWord v0.5.1 files (verified by sha256), and it loads the shipped hey_hermes.tflite. Drops openwakeword/onnxruntime/ai-edge-litert/wake-tflite machinery entirely. win32-arm64 gets a marker gate (no pyopen-wakeword wheel there; porcupine covers wake). uv.lock regenerated for 3.14 (254 pkgs, all platforms). Real-lib smoke verified: engine builds against the actual wheel, silence scores 0, noise scores ~0.003 (threshold 0.6), scores flow 1:1 per frame.
1.1 KiB
1.1 KiB
Bundled wake-word models
hey_hermes.tflite — the on-device "Hey Hermes" hotword model. This is the
default detector for the wake word feature (see
website/docs/user-guide/features/wake-word.md); no training or setup is
required to say "hey hermes".
- Engine: pyopen-wakeword
(rhasspy's maintained fork of openWakeWord; Apache-2.0). Runs TFLite via a
bundled
tensorflowlite_clibrary — no onnx, no runtime download. - Provenance: trained with the openWakeWord training pipeline (synthetic
TTS-generated speech), which produces the
.tfliteartifact. Redistribution is permitted under the openWakeWord license. - Label: the model registers as
hey_hermes(matches the filename). - Runtime: the shared feature-extraction models (melspectrogram +
embedding) are bundled inside the
pyopen-wakewordwheel — byte-identical to the official openWakeWord v0.5.1 files, so scores match the original engine exactly.
To use a different phrase, train your own model and point
wake_word.openwakeword.model at its .tflite path. See the wake-word docs
for the training guide.