haex wake word: "Hex" / "Hey Hex"
The default wake word of haex's voice assistant, said [hษks]. Trained with haex-wakeword.
Files
speech_embedding.onnx: Googlespeech_embedding/1(Apache-2.0) with its log-mel front end, 16 kHz mono float32 in, one 96-value embedding per 1,280 samples out. SeeNOTICE.hex.onnx: the classifier. Inputembeddingsfloat32[batch, 16, 96], outputprobabilityfloat32[batch, 1].card.json: hashes, the streaming contract and the sensitivities below.
Running it
Every 80 ms, feed the last 12,800 samples to speech_embedding.onnx and keep the last output frame
(it sees only real audio). Give the last 16 frames to hex.onnx. Fire when windows consecutive
probabilities reach threshold, then stay quiet for 2 s.
Measured
On 37.1 h of held-out speech (MLS test, FLEURS dev; six languages; speakers never heard in training) and held-out synthetic speakers saying the wake word:
| Sensitivity | Windows | Threshold | "Hey Hex" | "Hex" alone | False accepts per hour |
|---|---|---|---|---|---|
| low | 3 | 0.9 | 88.7% | 47.1% | 0.00 |
| medium | 2 | 0.98 | 90.5% | 49.6% | 0.05 |
| high | 2 | 0.5 | 94.2% | 72.3% | 0.48 |
"medium" is haex's default. These figures come from synthesized voices. Recall with real voices at a distance is measured in the app.
Licence
Apache-2.0. Training data and their licences: see NOTICE and the pipeline's README.