demo · v150

Quality Latency Tradeoff

The three quality tiers — 'command', 'dictation', 'conversation' — trade recognition latency against accuracy and model capability. Pick a tier to see its expected latency budget, word-error rate range, resource cost, and a simulated transcript that shows the kinds of errors and improvements each tier produces. Then use the decision wizard to find the right tier for your use case.

Select a quality tier

command
Command
Latency: 50–150 ms
Accuracy: ~85%
RAM: ~30 MB
dictation
Dictation
Latency: 200–500 ms
Accuracy: ~95%
RAM: ~120 MB
conversation
Conversation
Latency: 500–1200 ms
Accuracy: ~97%
RAM: ~350 MB
P50 Latency
80
ms
Word Error Rate
15
%
Max Utterance
10
words
Speaker Sep.
No
diarization

Simulated transcript — same audio, different quality tier

Recognition error
Punctuation / correction added
Speaker label

Speed vs accuracy across tiers

command
latency (lower = better)
accuracy (higher = better)
80ms / 85%
dictation
latency
accuracy
320ms / 95%
conversation
latency
accuracy
800ms / 97%

Decision wizard — find the right tier

1. What type of speech input does your app handle?
Short commands
Long-form dictation
Multi-speaker / meeting
2. How sensitive is the user to recognition latency?
Very sensitive (<100ms needed)
Moderate (up to 500ms ok)
Tolerant (>500ms ok)
3. What is the background noise environment?
Quiet / controlled
Moderate background noise
Loud / open environment
4. How important is punctuation accuracy?
Not needed (voice commands)
Helpful (natural dictation)
Critical (professional transcription)
Recommendation
// Chrome 150: set quality on SpeechRecognition
const sr = new SpeechRecognition();
sr.quality = 'command';      // 50-150ms, ~85% accuracy — smart home, shortcuts
sr.quality = 'dictation';    // 200-500ms, ~95% accuracy — note-taking, emails
sr.quality = 'conversation'; // 500-1200ms, ~97%, multi-speaker — meetings

// Graceful fallback: if quality not supported, the property is silently ignored
// and the browser picks its default model
if ('quality' in SpeechRecognition.prototype) {
  sr.quality = 'dictation';
}

sr.start();

see also

implementation reference

Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗