concept · Web API · Speech
Command vs. Dictation
Two SpeechRecognition instances listen to the same microphone — one with quality: 'command' for fast, low-resource recognition, one with quality: 'dictation' for higher-accuracy continuous speech. Compare the transcripts side by side to see the model selection in action.
Your browser does not support the Web Speech API (SpeechRecognition). Try Chrome 150+ on desktop.
Try speaking: "schedule a meeting for Monday at two PM" — or read a full paragraph from any article at normal pace. Notice how the command model optimises for short utterances while the dictation model handles continuous speech.
Click "Start both" to listen simultaneously with both quality levels
quality: 'command'
Command model output…
quality: 'dictation'
Dictation model output…
when to use each
Use 'command' for:
- Voice controls ("next slide", "go back")
- Smart home commands ("turn off the lights")
- Search queries ("search for Italian restaurants")
- Short form fills (city name, zip code)
- Any UX where latency matters more than accuracy
Use 'dictation' for:
- Note-taking and journaling
- Email and message composition
- Document creation
- Long text fields (product reviews, support forms)
- Any UX where accuracy matters more than speed
Both recognizers share the same microphone input. The difference is purely in which on-device model the browser selects for each. On devices with multiple on-device models available, you may notice that the command model responds faster but produces fewer words before stopping, while the dictation model continues transcribing across natural pauses.
the pattern
// Command recognizer — fast and lightweight
const cmd = new SpeechRecognition();
cmd.processLocally = true;
cmd.quality = 'command';
cmd.continuous = true;
cmd.interimResults = true;
// Dictation recognizer — accurate for long speech
const dict = new SpeechRecognition();
dict.processLocally = true;
dict.quality = 'dictation';
dict.continuous = true;
dict.interimResults = true;
// Both listen to the same mic simultaneously
cmd.start();
dict.start();
see also
- Quality Level Explorer — try all three quality levels
- ChromeStatus entry
- MDN — SpeechRecognition
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗