Skip to content

teamEPYC/train-wakeword

Repository files navigation

cheeku wakeword

Train a wake-word ONNX model for "cheeku" (roman + चीकू) using livekit-wakeword.

Files

  • 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 — regenerates cheeku_colab.ipynb. Run after editing cell content.

Run (Colab)

  1. Open cheeku_colab.ipynb in https://colab.research.google.com/
  2. Runtime → Change runtime type → T4 GPU.
  3. Step 1 cell: tweak form values if needed.
  4. Run all cells. First run does a smoke test (~30–60 min). On crash: flip the relevant SKIP_* toggle and rerun.
  5. Final cell downloads cheeku.onnx to your Mac.

Scaling up

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.

Validate on Mac (validate.py)

One-time setup:

brew install portaudio
uv pip install 'livekit-wakeword[listener]' soundfile sounddevice numpy librosa

Drop 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.wav

Smoke-model expectations: noisy scores, false positives, possibly low recall. Tighten after the prod run.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors