concept · Web API · Speech
Punctuation Transcription
Speak naturally and compare what the engine produces with and without unspokenPunctuation. The left panel runs a recognition session without auto-punctuation; the right panel runs a separate session with it enabled. Both listen simultaneously.
Your browser does not support the Web Speech API (SpeechRecognition). Try Chrome 151+ on desktop.
Try saying: "I went to the store yesterday and I picked up some milk then I came home and made dinner it was really good"
(Say it naturally, without verbal punctuation — pause at sentence boundaries.)
(Say it naturally, without verbal punctuation — pause at sentence boundaries.)
unspokenPunctuation
unspokenPunctuation: false
Raw transcript will appear here…
unspokenPunctuation: true
Punctuated transcript will appear here…
Both panels listen to the same microphone input using two separate
SpeechRecognition instances. The difference is a single property: recognition.unspokenPunctuation. On Chrome 151 with an on-device recognizer that supports auto-punctuation, you will see commas, periods, and question marks appear in the right panel without you having to say them.
the pattern
const raw = new SpeechRecognition();
const punct = new SpeechRecognition();
// raw transcript — no auto-punctuation
raw.unspokenPunctuation = false;
raw.continuous = true;
raw.interimResults = true;
// punctuated transcript — engine infers pauses/sentence ends
punct.unspokenPunctuation = true;
punct.continuous = true;
punct.interimResults = true;
raw.onresult = e => {
// e.results[i][0].transcript — plain words, no punctuation
};
punct.onresult = e => {
// e.results[i][0].transcript — "Hello, how are you?"
};
see also
- Dictation Demo — practical note-taking with unspokenPunctuation
- ChromeStatus entry
- MDN — SpeechRecognition
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗