Train a wake-word ONNX model for "cheeku" (roman + चीकू) using
livekit-wakeword.
cheeku_colab.ipynb— Colab notebook. Upload to Colab, select GPU runtime, run cells top-to-bottom.configs/cheeku_smoke.yaml— standalone reference config (smoke-test scale). Notebook regenerates this from form values on Drive.build_notebook.py— regeneratescheeku_colab.ipynb. Run after editing cell content.
- Open
cheeku_colab.ipynbin https://colab.research.google.com/ - Runtime → Change runtime type → T4 GPU.
- Step 1 cell: tweak form values if needed.
- Run all cells. First run does a smoke test (~30–60 min). On crash: flip the relevant
SKIP_*toggle and rerun. - Final cell downloads
cheeku.onnxto your Mac.
After smoke passes, edit Step-1 form:
N_SAMPLES=10000, STEPS=50000, MODEL_SIZE="small", AUG_ROUNDS=3,
TARGET_FP_PER_HOUR=0.3, MAX_NEGATIVE_WEIGHT=2000. Rerun Step 6 + generate/augment/train/export/eval.
One-time setup:
brew install portaudio
uv pip install 'livekit-wakeword[listener]' soundfile sounddevice numpy librosaDrop the downloaded cheeku.onnx into this directory, then:
# Detection mode — print events above threshold (default 0.5)
python validate.py
# Watch mode — live confidence meter, pick a threshold
python validate.py --watch
# Tweak threshold / debounce
python validate.py --threshold 0.3 --debounce 1.5
# Score a wav file instead of mic (regression check)
python validate.py --wav clip.wavSmoke-model expectations: noisy scores, false positives, possibly low recall. Tighten after the prod run.