Earshot wake word: "Hey Earshot"

A 44k-parameter keyword spotter. Raw 16 kHz audio in, probability out: the mel spectrogram is inside the graph as frozen convolutions, so training and inference cannot use different features.

  • input audio [batch, 24000], 1.5 s at 16 kHz
  • output probability [batch], already through a sigmoid
  • 1.2 MB, about 0.1% of one core scored every 100 ms

Trained from scratch on synthetic speech: 12 Piper voices at four speaking rates, put in simulated rooms and mixed with MUSAN noise. Negatives are LibriSpeech plus hard negatives generated by the same voices, because "within earshot" is ordinary English and "-shot" is a productive ending: gunshot, big shot, worth a shot.

Measured

1.8 hours of held-out speech, scored every 100 ms as the runtime does, with the threshold chosen on a separate half.

threshold recall false accepts/hour if one score sufficed hard negatives
0.5 98.4% 0.00 2.23 0.23%
0.7 98.4% 0.00 1.11 0.23%
0.9 98.4% 0.00 0.00 0.00%
0.95 95.1% 0.00 0.00 0.00%
0.99 93.4% 0.00 0.00 0.00%

A wake needs three consecutive scores over the threshold. That column matters: counting single crossings gives 2.23 false accepts an hour at 0.5, and requiring a run costs no recall at all. A phrase clears the threshold about fifteen times as the window slides over it; a stray window of speech clears it once.

What is not proven

Held-out speech is LibriSpeech, read audiobooks, cleaner than a real room. Every positive is synthetic and nobody has said the phrase to it yet. Zero false accepts here is necessary rather than sufficient.

Built for Earshot.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support