hey-orbis-wakeword
Custom wake word model for "hey orbis", trained with openWakeWord and synthetic speech from Fish Audio S2 Pro.
Usage
With openWakeWord (Python)
from openwakeword.model import Model
model = Model(
wakeword_models=["hey_orbis.onnx"],
inference_framework="onnx"
)
# Feed 80ms audio chunks (1280 samples at 16kHz, int16)
prediction = model.predict(audio_chunk)
if prediction["hey_orbis"] > 0.7:
print("Wake word detected!")
With Home Assistant
Copy hey_orbis_float32.tflite to your openWakeWord add-on's custom model directory.
Model Details
| Property | Value |
|---|---|
| Input | 16 frames ร 96-dim Google speech embeddings (~1.3s window) |
| Output | Sigmoid probability [0, 1] |
| Framework | ONNX (primary), TFLite (Home Assistant) |
| Size | 199 KB (ONNX), 105 KB (TFLite fp16) |
Performance (v0)
Evaluated on synthetic test clips (Fish Audio S2 Pro) in streaming mode:
| Metric | @0.5 threshold | @0.7 threshold |
|---|---|---|
| Recall | 92.4% (924/1000) | 90.9% (909/1000) |
| FA rate (adversarial) | 6.8% (27/400) | 5.5% (22/400) |
Adversarial negatives are phonetically similar phrases ("hey Morris", "hey Boris", etc.). Real-world FA rate against ambient speech will be lower.
Training Data
| Type | Source | Count |
|---|---|---|
| Positive | Fish Audio S2 Pro (5 voices, varied prosody) | ~7,000 clips |
| Adversarial negative | Fish Audio (similar-sounding phrases) | ~2,000 clips |
| Generic negative | ACAV100M pre-computed features | ~2,000 hours |
| Room impulse responses | MIT RIRs | 270 rooms |
Files
hey_orbis.onnxโ ONNX model for openWakeWord runtimehey_orbis_float32.tfliteโ TFLite for Home Assistant / edgehey_orbis_float16.tfliteโ TFLite half-precision (smaller)
Part of protoLabs
Built for ORBIS, the open-source AI companion framework by protoLabs.
- Downloads last month
- 7