Skip to content
AI.info

Speech and audio

Keyword Spotting, Wake Words, and Command Recognition

Design wake-word and command systems with streaming windows, personalized enrollment, hard negatives, false alarms per hour, and on-device deployment.

By the end you can

Clip accuracy predicts nothing about a day

Keyword spotting is the job of finding a small vocabulary, or a single wake phrase, inside a stream of audio that never stops. Everything about the task follows from one word: continuous. A low-power front end runs all the time. Temporal context is carried across frames. A threshold is crossed or it is not. Then the decision is taken again, and again, for as long as the device has power — often with a second-stage verifier behind the first to catch what it waved through. False-alarm control is not a feature bolted onto this system. It is most of the system.

Which is why a clip accuracy figure predicts almost nothing about a day. A benchmark asks a fixed set of questions once. A room asks the same question across thousands of windows a day, and almost every one of them has the same correct answer, which is no. A model that is right on nearly every clip can still be wrong often enough per hour to make the device unusable. The accuracy column will not show it.

Two more things that column does not settle. A detected phrase does not establish that it was aimed at the device rather than at the room. Nor that the speaker is authorized to be giving it instructions.

So the thing worth designing first is not the model. It is a trigger contract: what counts as a trigger, at what cost in false accepts, with somebody owning the writing of it and somebody owning the tuning that follows. The tuning never stops. Write that contract without a per-hour number in it and the cost has already been measured, on shipped hardware from four manufacturers with a television playing: 0.95 misactivations per hour.

A threshold that looks safe on a benchmark gets retested all day by a room that keeps talking.

Visual

Hard negatives are an artifact with a count in it, not a category list

That contract is written once, and the two steps after it inherit whatever it says. Its terms decide what gets collected: which utterances count as positives, and — the part that does the real work — which sounds are worth collecting as hard negatives. That is where the television goes, and the children, and every near-miss the room has already produced. Then the system meets a live stream and is tuned against it continuously, for as long as it ships.

Step two is usually described as a wish list. It can be done as a procedure instead. Hunting for the phrases that wake a speaker by accident can be mechanised. In 2020 Schönherr and five colleagues mechanised it. Their abstract says how: “More specifically, we automate the process of finding accidental triggers and measure their prevalence across 11 smart speakers from 8 different manufacturers using everyday media such as TV shows, news, and other kinds of audio datasets.” The candidate near-misses were crafted with a pronouncing dictionary and a weighted phone-based Levenshtein distance — a count of how few phone substitutions separate a harmless phrase from the wake word. The work ended in a released dataset of more than 1,000 verified triggers. That is what a finished step two looks like. Not the words television, children, music in a planning document. A set with a number attached to it that somebody else can rerun.

The assumptions from the first step either hold in the live stream or they do not, and the tuning has no way to tell you which. It optimizes toward the terms it was handed. A term set well is pursued; a term set badly is pursued just as hard.

FigureTimeline · 4 stops
  1. 1. Define the trigger contract

    Specify phrase variants, directedness, latency, personalization, and action after detection.

  2. 2. Collect positives and hard negatives

    Include near phrases, television, music, accents, children, noise, and replay.

  3. 3. Build a cascade

    Use low-power detection, confirmation, and optional speaker or command stages.

  4. 4. Tune continuously

    Measure false accepts per hour, misses, latency, energy, and privacy activation.

Continuous tuning keeps pulling the system toward the terms of the trigger contract, so terms set badly at the start are pursued rather than reopened.

Example

0.95 misactivations per hour, from 134 hours of television

This failure does not have to be imagined. It has been measured, on hardware anyone can buy. Six researchers put popular smart speakers in front of a television and left them there: Google Home Mini, Apple HomePod, Amazon Echo Dot 2nd and 3rd generation, and the US-only Harman Kardon Invoke — four manufacturers. The material was 134 hours of content from 12 TV shows: 217 episodes, 1.057 million words, played through twice, in the US and in the UK. Their own summary of what came back, in a peer-reviewed paper in 2020: “After playing two rounds of 134 hours of content from 12 TV shows near popular smart speakers in both the US and in the UK, we observed cases of 0.95 misactivations per hour, or 1.43 times for every 10,000 words spoken, with some devices having 10% of their misactivation durations lasting at least 10 seconds.”

Read the three figures as three different units, because that is the lesson in them. Per hour is the room's unit: leave the television on through an evening and the device answers a question nobody asked it. Per 10,000 words is the exposure unit. It is 1.43 times, and it scales with how much talking happens near the device rather than with how long the device is switched on. The third figure is not a rate at all but a distribution. On some devices, 10% of the misactivation durations lasted at least 10 seconds — the difference between a light blinking and ten seconds of a household's conversation leaving the room.

No clip accuracy column reports any of the three. The dataset behind such a column has usually been balanced: a sensible thing to do to a classification problem, and a fatal thing to do to a rare event. A review that counts only clip accuracy leaves that gap unchallenged, because the balance is invisible in the score it produces.

  • The decision underneath the whole product is how to build wake-word and command systems out of streaming windows, personalized enrollment, hard negatives, false alarms per hour, and a device that has to run all of it on its own.
  • The failure that puts 0.95 misactivations per hour into an evening is balancing the dataset while ignoring how rare the keyword really is in a room that is mostly talking about something else.
  • The evidence that catches it is false accepts per hour reported beside misses per target utterance — and, as the 10-second durations show, the length of what an accepted window keeps, not only how often one opens.
  • The practical response is to collect the negatives from the places the device will live: homes, vehicles, television, music, conversation, and silence. It can be automated, as the more than 1,000 verified accidental triggers harvested from TV shows and news demonstrate.

Case

105,829 one-second clips, 6,601.39 hours, and the number nobody publishes

It is worth being precise about what the public evidence for this task contains. It is good evidence. It still would not have produced the 0.95 figure. Speech Commands version 2, from Google, holds 105,829 one-second utterances of 35 words, recorded by 2,618 speakers at 16 kilohertz. A small set, described down to the sampling rate. MLCommons uses it for the keyword-spotting task in MLPerf Tiny, where the reference model is a depthwise convolutional network of 38.6 thousand parameters held to an accuracy requirement of 90 per cent. That benchmark scores accuracy, latency and energy together. For a device that never stops listening, that is the honest shape: a spotter that costs too much energy has failed in a way an accuracy column cannot show.

The public evidence has since grown by orders of magnitude in one direction. The Multilingual Spoken Words Corpus, released by MLCommons and Harvard in 2021, is described by its authors this way: “The dataset contains more than 340,000 keywords, totaling 23.4 million 1-second spoken examples (over 6,000 hours).” Precisely, 344,286 keywords and 6,601.39 hours from about 115,000 speakers across 50 languages, released under CC-BY 4.0. The same paper puts that beside its predecessors, and the comparison is the useful part. Speech Commands is 1 language, 35 keywords, 27.92 hours. Hey Snips is 1 keyword and 127 hours. If your report is supposed to break performance out by language, the corpus that can support that claim is the 50-language one. 27.92 hours of a single language cannot be sliced into an answer it does not contain.

The unit, though, is still one second, in all of them. None of it measures false accepts per hour on real living-room audio. That number has to come from your own deployment, or from someone willing to run a television for 134 hours. A demo score and an evening of misactivations are never in conflict. They are measurements of two different things. Usually only one of the two is ever taken.

Analogy

A smoke detector listening for one acoustic pattern

The nearest thing in the house to a device that never stops listening is the smoke detector on the ceiling. It is also the standard a wake word quietly promises to meet: years of alertness without alarming at anything harmless. It is worth seeing exactly where the comparison gives out. A smoke sensor is looking for physical particles, and particles behave the same way in every kitchen. A wake phrase is made of speech. It changes shape with the language in front of it and with the speaker in front of it. And it can be approximated closely enough by phrases nobody in the room ever addressed to the device. More than 1,000 verified accidental triggers, assembled from TV shows and news, make the point. A phone-based Levenshtein distance is enough to generate them on purpose. A television generates them by accident, 0.95 times an hour.

Continuous false-alarm burden matters more than balanced clip accuracy.

Comparison

What happens after the phrase is detected

A smoke detector has exactly one thing to do once it fires. A wake word does not. What happens after the phrase is detected is what separates three systems that look identical right up to the moment the threshold is crossed. A wake word hands control to a broader speech or assistant pipeline, so its errors are paid for downstream, by whatever it woke. Which is why the durations matter as much as the rate: on some of the devices in front of that television, 10% of misactivation durations lasted at least 10 seconds. What a woken pipeline does with those seconds is a separate question from whether the threshold should have moved. A keyword spotter and a command classifier are being asked for other things entirely. The three cannot share evidence. Each has to be evidenced in its own terms, and a number earned by one of them settles nothing about the other two.

FigureComparison · 3 columns

Wake word

Activates a broader speech or assistant pipeline.

  • Decision focus: Define the trigger contract
  • Useful evidence: False accepts per hour and misses per target utterance
  • Watch for: Balancing a dataset while ignoring real-world keyword rarity
  • Best used when its assumptions are documented for keyword spotting, wake words, and command recognition

Keyword spotter

Detects specified terms in continuous or stored audio.

  • Decision focus: Collect positives and hard negatives
  • Useful evidence: Detection latency and partial-word behavior
  • Watch for: Repeated overlapping windows inflating false alarms
  • Best used when its assumptions are documented for keyword spotting, wake words, and command recognition

Command classifier

Chooses among a closed set of spoken actions after activation.

  • Decision focus: Build a cascade
  • Useful evidence: Energy, memory, and real-time compute
  • Watch for: Always-on buffering exceeding the declared privacy boundary
  • Best used when its assumptions are documented for keyword spotting, wake words, and command recognition

Example

Per hour, not per clip

Through all of that, four terms have been doing quiet work. Each is an operational commitment rather than a definition: a unit somebody has to report, a set somebody has to collect, a stage somebody has to pay for, a session somebody has to run. Similar-sounding words here imply different evidence, different units, or different decision rights, so they are worth documenting one at a time.

  • False accepts per hour is the number of erroneous triggers normalized by continuous listening time. It is the unit in which shipped speakers registered 0.95 in front of a television, and the unit fixed at 0.5 per hour in the Hey Snips work before any miss rate was quoted at all.
  • A hard negative is a non-target example acoustically or contextually similar to the trigger. The more than 1,000 verified accidental triggers, built with a pronouncing dictionary and a weighted phone-based Levenshtein distance, are a worked example of the category.
  • A cascade is a sequence of increasingly expensive decision stages, the arrangement that lets a cheap front end run always-on with a second-stage verifier behind it.
  • A personalized wake word is a trigger adapted to a particular user or enrollment set, which is as much of that user as the system will ever see unless somebody arranges for more.

Key idea

A balanced dataset for a rare event

Continuous listening breaks a wake word in a few predictable places, and a strong benchmark score rules out none of them. Four of them turn up in real rooms. A dataset is balanced while the keyword stays rare, which is the failure that puts television commercials into the activation log. Repeated overlapping windows re-ask the same question about the same audio and inflate the false alarms that come back. Always-on buffering holds more audio than the privacy boundary the product declared. And personalization overfits to the single enrollment session it was given.

The third of those has a named vendor's own correction attached to it. Contractors grading Siri recordings routinely heard confidential material captured by inadvertent activations. Their task was to judge whether the assistant had been activated deliberately or not. MIT Technology Review reported that on 29 July 2019, along with Apple's line that fewer than 1% of Siri recordings are used for training. Apple suspended the grading programme. On 28 August 2019 it announced what would replace it: “First, by default, we will no longer retain audio recordings of Siri interactions. We will continue to use computer-generated transcripts to help Siri improve.” Audio-sample review became opt-in, listening was restricted to Apple employees, and recordings determined to be inadvertent triggers were to be deleted. That last commitment is the tell. Inadvertent triggers were not a rounding error to be argued away. They were a population large enough to need a written deletion policy of its own.

The first of the four failures protects the other three. Balance the clips and the model is shown a world in which the phrase is common, so the false-alarm rate you measured belongs to the benchmark rather than to the room. And a system that appears to have no false-alarm problem is never taken apart far enough to find the buffering, the overlapping windows, or the one enrollment session that has quietly gone wrong.

Balancing the clips makes a rare keyword look common to the model, so the false-alarm rate you measured belongs to the benchmark and not to the room.

Example

Misses quoted at a stated false-alarm rate, clean and at 5 dB

So what has to be in the report? Begin with the pair that describes the trigger in the room's units rather than the clip's: false accepts per hour, and misses per target utterance. The published example of exactly that shape is the Hey Snips work from 2019. It fixes the operating point first — 0.5 false alarms per hour — and only then quotes a miss rate. It quotes that twice. A 222K-parameter dilated-convolution model gives 0.12% false rejection on clean positives and 1.60% on positives at 5 dB SNR. An LSTM baseline gives 2.09% and 11.21%. Same model, same threshold, noisier room, and the number moves. Their conclusion states the discipline plainly: “We have shown that the presented WaveNet model significantly reduces the false rejection rate at a fixed false alarm rate of 0.5 per hour, in both clean and noisy environments, on a crowdsourced dataset made publicly available for research purposes.” The underlying set is Hey Snips: about 11K wake-word utterances and 86.5K negatives, roughly 96 hours, from over 2.2K speakers. Note the shape of the negatives — the hours, not the clips.

Those numbers say what the detector does and nothing at all about what using it feels like. So detection latency and partial-word behavior belong next to them. Then the slices, because an average taken over a mixed corpus is the balanced dataset again in another costume. Rooms where the keyword is genuinely rare. Performance broken out by language, accent, age, device, distance, and playback. Children, distance and a television playing are not edge cases; the television is the condition under which the four manufacturers' speakers reached 0.95 misactivations per hour. And the language slice has a prerequisite. It can be evidenced against 50 languages and 6,601.39 hours. It cannot be evidenced against 27.92 hours of one language.

  • For the core task, false accepts per hour and misses per target utterance — never a miss rate on its own, but a miss rate at a stated operating point, the way 0.12% is quoted at 0.5 false alarms per hour.
  • For what a person in the room actually experiences, detection latency and partial-word behavior — and, from the misactivation side, how long an erroneously opened window stays open.
  • For the robustness slice, energy, memory, and real-time compute — the on-device budget MLPerf Tiny was reaching for when it put energy beside accuracy — plus the noise condition stated explicitly, as in 1.60% at 5 dB SNR against 0.12% clean.
  • Over the lifetime of the product, performance by language, accent, age, device, distance, and playback, evidenced against a corpus that actually holds those languages: 344,286 keywords across 50 languages under CC-BY 4.0, rather than 35 keywords in one.

The trigger pair describes the room, the latency and partial-word numbers describe the person standing in it, and neither set can be read without the slices underneath.

Steps

Build a continuous-audio evaluation

Clips cannot measure any of that. Continuous audio is the only setting in which a team other than your own can demonstrate a dataset balanced while ignoring real-world keyword rarity. Hand them recordings from the places the device will actually live, and let them count the accepts per hour themselves. The reference protocol already exists and it is not exotic: 217 episodes drawn from a dozen series, 1.057 million words, 134 hours of it, played twice on both sides of the Atlantic. One evening of a television is enough to start. Two rounds is enough to publish.

The last step of that evaluation, testing privacy behaviour, is the one teams treat as advisory. It is not. Alexa kept what it heard, and on 31 May 2023 the United States sued Amazon over it on the FTC's behalf. The complaint states the mechanism plainly: “Alexa's default settings save these voice recordings and transcripts indefinitely, even if the user stops using the account for months or even years.” The alleged violation was of the COPPA Rule, over children's voice recordings and transcripts. Amazon agreed to a $25 million civil penalty. It agreed to delete inactive child accounts, certain voice recordings and geolocation data, and to stop using that retained data to improve its products. A retention default is not a settings screen. It is the thing a filed federal complaint turns on.

Three notes go with the audio, and they are the notes the next team will need. Write down what your trigger contract assumes about the room. Write down one room where that assumption is false. Write down what continuous tuning then does, because that is the step nobody records.

FigureProcess · 4 steps
  1. 1. Collect background hours

    Use homes, vehicles, television, music, conversation, and silence.

  2. 2. Plant controlled positives

    Vary position, distance, speech rate, and competing sounds.

  3. 3. Sweep thresholds

    Create miss versus false-alarm curves at realistic prevalence.

  4. 4. Test privacy behavior

    Verify pre-roll, activation indication, retention, and local processing claims.

Until an outside team can check the pre-roll buffer, the activation indicator, the retention window, and what actually stays on the device, the trigger contract is a claim rather than a finding.

Key takeaways