This release is a pre-release and may not be stable for production use.
ovos-ww-plugin-wakeforge
An OVOS wake-word plugin for custom models trained with wakeforge.
Wakeforge trains a wake-word detector from a single phrase and exports a two-file
ONNX pipeline: a feature extractor and a classifier head. This plugin loads that
pipeline and runs it as an always-on hotword engine. The runtime uses
onnxruntime and numpy only. It does not need PyTorch.
Install
pip install ovos-ww-plugin-wakeforge
Train a model
pip install wakeforge
wakeforge-quickstart "hey jarvis" ./hey_jarvis
# → ./hey_jarvis/best_f1_featurizer.onnx + ./hey_jarvis/best_f1.onnx
Configure
In mycroft.conf, point a hotword at the two ONNX files. Use local paths or URLs.
{
"listener": {
"wake_word": "hey_jarvis"
},
"hotwords": {
"hey_jarvis": {
"module": "ovos-ww-plugin-wakeforge",
"listen": true,
"featurizer": "~/hey_jarvis/best_f1_featurizer.onnx",
"model": "~/hey_jarvis/best_f1.onnx",
"threshold": 0.5
}
}
}
Config keys
| key | default | description |
|---|---|---|
featurizer |
— (required) | feature-extractor ONNX (path or URL) |
model |
— (required) | classifier-head ONNX (path or URL) |
vad |
none | optional VAD ONNX for an extra channel |
threshold |
0.5 |
detection threshold |
smoothing |
ema |
ema | mean | max |
patience |
3 |
consecutive above-threshold frames to fire |
debounce_sec |
1.0 |
minimum seconds between triggers |
window_size |
5 |
smoother rolling window (mean/max) |
ema_alpha |
0.3 |
EMA responsiveness |
block_ms |
80 |
audio is scored in blocks of this length whatever chunk size the listener sends, so patience counts time and the featurizer always gets a full block |
streaming |
false |
use the stateful streaming (GRU) head |
gru_window |
100 |
window the streaming head was exported with |
hidden_dim |
128 |
GRU hidden size of the streaming head |
URL models are cached under ${XDG_DATA_HOME}/wakeforge/.
Related projects
- TigreGotico/wakeforge trains the ONNX models this plugin loads.
- OpenVoiceOS/ovos-plugin-manager loads and manages this plugin alongside other STT, TTS, and wake-word plugins.
- OpenVoiceOS/ovos-ww-plugin-precise-onnx is a sibling wake-word plugin that runs Precise models through ONNX.
Credits
Developed by TigreGótico for OpenVoiceOS.
This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429.
License
Apache-2.0
Metadata
Release files for ovos-ww-plugin-wakeforge 0.0.3a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ovos_ww_plugin_wakeforge-0.0.3a1.tar.gz | 18.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_ww_plugin_wakeforge-0.0.3a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.4 kB
Release files / ovos_ww_plugin_wakeforge-0.0.3a1.tar.gz
| Download URL | ovos_ww_plugin_wakeforge-0.0.3a1.tar.gz |
|---|---|
| Size | 18.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8ad2502a4ce803fd12a2fbc910ee3c1d6a705faeaceb3c38321d0767ecfe7a10
|
|
BLAKE2b-256 checksum How to use checksums |
91d38f550dcc3c5b0f6a62c6734e256137e5683f5208d5ac86ae5d476f2a7bfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ovos_ww_plugin_wakeforge-0.0.3a1-py3-none-any.whl
| Download URL | ovos_ww_plugin_wakeforge-0.0.3a1-py3-none-any.whl |
|---|---|
| Size | 16.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3f731ac0c36532a3098246cf4bca54d72391640b9dca97806ba193d1b4ceca2d
|
|
BLAKE2b-256 checksum How to use checksums |
c936fa2026522cd2ae3ae58b1db6f0e50a5fab03f32fe40e9c4681ec7b9e551c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|