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
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support