The corpus is the asset, so the same phrase can wake a microcontroller too #93
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
v2
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wayfinder:ticket
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
aiko/denpa#93
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The expensive part of
#87is not the model. It is the corpus — some thousands of synthetic "Hey Denpa" utterances across a designed spread of speakers, plus the near-miss negatives that stop it firing at the television. The keyword head that comes out the far end trains in minutes and weighs 200 KB.That corpus is reusable, and a second model trained from it puts the same wake phrase on hardware that could never run openWakeWord. Raised 2026-08-15 as a want, not a commitment.
Why openWakeWord cannot go there
The chain in
#88is three ONNX graphs behind an ONNX Runtime that#44already measured at 27 MB. That is fine on a laptop and survivable on a phone. On a microcontroller it is not a size problem, it is a category error — there is no runtime to put it in.microWakeWord is the sibling built for that constraint: an inception network converted for streaming, quantised to INT8, running under TensorFlow Lite Micro. It executes an inference in under 10 ms on an ESP32-S3, which is the class of part it targets. It is what ESPHome and Home Assistant Voice actually ship for on-device waking, so it is well-trodden rather than a science project.
The audio frontend is different and does not carry over: 40 features over a 30 ms window at a 20 ms stride, deliberately lighter than a mel spectrogram. So the model is not shared, only the corpus. That is the whole proposition and it is worth being precise about — nothing from
#88is reused, and nothing here feeds back into it.Two things to settle before it is worth doing
#88's openWakeWord as-is and train nothing new. Half the value of this issue is deciding which of those the target is, because one of the answers is "no work".Order
Strictly after
#87has a corpus worth reusing. Training a micro model from a corpus that has not yet been validated — the cosine-spread check in#87's comments — would just produce a second model with the same undiagnosed flaw in a place that is harder to update.There is no client-side work here at all. Nothing in
denpa-clientchanges; this is an artefact for hardware that does not run it.Related
#87— the corpus, and the check that says whether it is any good#88— the model that cannot go on a microcontroller, and why#44— the 27 MB runtime that is the reason it cannot