Hey Maya β wake word, version 1
"Hey Maya" is the phrase meant to start Maya, the Maya Foundation's assistant, on a person's phone, only when that person has turned the "Hey Maya" setting on (it is off by default). This is the small model that listens for the phrase. It runs on the phone; no audio needs to leave it.
The files
| File | What it is |
|---|---|
hey_maya-v1.tflite |
The model: 62,304 bytes, SHA-256 e95b7a1df30e0619dfa1f72134b0153d49f825cf4e63e656aa79ec0208da61bd. A microWakeWord streaming model that keeps its own state, quantised to int8 (microWakeWord's stream_state_internal_quant export). |
training_parameters.yaml |
The training settings, as used. |
tflite_streaming_roc.txt |
The test results below, as the training run wrote them. |
Input and output
- Features: 16 kHz mono audio turned into 40-value frames by TensorFlow Lite Micro's audio front end (the one microWakeWord trains with), one frame every 10 ms.
- Input:
[1, 3, 40]int8 (scale 0.10196078568696976, zero point β128): three frames, 30 ms, per call. - Output:
[1, 1]uint8 (scale 1/256): how sure the model is that it just heard "Hey Maya". - State: the model keeps its memory between calls in TensorFlow Lite resource variables
(
VAR_HANDLE,READ_VARIABLE,ASSIGN_VARIABLE,CALL_ONCE), so the interpreter must support them and must be called in order, once per 30 ms. - Deciding: the test below averaged the last 5 outputs (150 ms, microWakeWord's default for this test) and compared the average with the cutoff.
How well it works β on test audio, not on real people yet
Measured by the training run on held-out audio. "Misses" is how often it did not wake on "Hey Maya" in synthetic test speech; "wakes by mistake" counts wakes on speech and music with no "Hey Maya" in it.
| Cutoff | Misses "Hey Maya" | Wakes by mistake, per hour |
|---|---|---|
| 0.99 (chosen for the app) | 15.7 % | 1.18 |
| 0.98 | 13.9 % | 1.45 |
| 0.97 | 13.1 % | 1.80 |
| 0.96 | 12.8 % | 2.00 |
AUC 0.795. It has never heard a real voice: every "Hey Maya" it learned from, and every one it was tested on, was synthetic speech (a different speech engine for the test than for training). Accuracy on real voices, in real rooms, is to be measured on phones before release and will differ from this table. Version 2 is to be trained on real recordings that people choose to share.
What it was trained on
Only data the app may ship with (checked 2026-10-21):
- "Hey Maya" for training: synthetic speech from the Piper sample generator (MIT), using its 904-speaker LibriTTS-R voice model (LibriTTS-R, CC BY 4.0).
- "Hey Maya" for testing: Phonon-31m English and its 37 English voices (Apache 2.0), a different engine, so the test is not the training voices again.
- Near misses it must not wake on ("hey mia", "hey mayor", "maya" on its own, other assistants' names and more): the same Piper generator.
- Ordinary speech: LibriSpeech dev and test sets (CC BY 4.0), with every utterance whose transcript says Maya, Maia, Maja, Mayer or Mayas removed.
- Noise and music: MUSAN (CC BY 4.0), 80 % of the files for training and 20 % held out for the test.
- Room echo: OpenSLR 28 RIRS_NOISES (Apache 2.0).
Credits: LibriTTS-R (Koizumi et al., CC BY 4.0), LibriSpeech (Panayotov et al., CC BY 4.0), MUSAN (Snyder, Chen and Povey, CC BY 4.0), RIRS_NOISES (Ko et al., Apache 2.0), Phonon-31m (Apache 2.0), Piper sample generator (MIT), microWakeWord (Kevin Ahrendt, Apache 2.0).
How it was made
microWakeWord (Apache 2.0) at commit 4665173cd35f1cff9a61e06fc427f124766c488e, its "mixednet" model
(--pointwise_filters 64,64,64,64 --repeat_in_block 1,1,1,1 --mixconv_kernel_sizes '[5], [7,11], [9,15], [23]' --residual_connection 0,0,0,0 --first_conv_filters 32 --first_conv_kernel_size 5 --stride 3), 20,000
training steps, trained on 2026-10-21 on one rented GPU, then quantised to the streaming TensorFlow Lite
model above.
Use and limits
- For starting Maya when its owner has turned "Hey Maya" on. Not for telling who is speaking.
- English, and the phrase "hey maya" only. "Maia" and "Maja" sound the same and were left out of the near misses on purpose; expect it to wake on them too.
- It sometimes wakes by mistake and sometimes misses; a tap on Maya's pill always works as well.
Licence
The model: Apache 2.0. The training data keeps its own licences, credited above.
- Downloads last month
- 14