← Chrome 150 reference

v150 · web speech · developer trial

Web Speech API: Unspoken Punctuation

Adds an unspokenPunctuation attribute to the SpeechRecognition interface. When set to true, the speech recognition engine automatically infers and inserts punctuation marks (periods, commas, question marks, etc.) into the transcript — the user doesn't need to say "period" or "comma" out loud.

Developer trial / behind a flag In developer trial in Chrome 150. Enable via chrome://flags/#enable-experimental-web-platform-features.

at a glance

Status in 150In developer trial (behind a flag)
Flagchrome://flags/#enable-experimental-web-platform-features
Standards positionFirefox: Positive  ·  Safari: No signal
SpecWeb Speech API
Blink componentBlink>Speech
ChromeStatus4785284026859520 — Web Speech API: Unspoken Punctuation

why it exists

Without unspoken punctuation, using speech-to-text for writing tasks requires the user to dictate punctuation explicitly: "Hello comma how are you period". This is unnatural and cognitively taxing. With unspokenPunctuation: true, the recognition engine infers punctuation from speech prosody, pauses, and language models — producing naturally punctuated text without explicit dictation. The feature is analogous to the "automatic punctuation" toggle available in many voice input apps, now accessible to web developers via the Speech Recognition API.

Source: chromestatus summary.

the attribute

InterfaceSpeechRecognition
AttributeunspokenPunctuation
Typeboolean
Defaultfalse — backwards compatible, no change to existing behaviour
EffectWhen true, the recognition engine inserts inferred punctuation into transcript results.
Source: chromestatus summary + Web Speech API spec.

example

const recognition = new SpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.lang = "en-US";

// Enable automatic punctuation insertion
recognition.unspokenPunctuation = true;

recognition.onresult = (event) => {
  const last = event.results[event.resultIndex];
  const transcript = last[0].transcript;
  // Transcript now includes inferred commas, periods, etc.
  // "Hello, how are you? I am fine." — punctuation added automatically
  document.getElementById("output").textContent = transcript;
};

recognition.start();

With explicit language for better punctuation inference

const recognition = new SpeechRecognition();
recognition.lang = "en-US";
recognition.unspokenPunctuation = true;
recognition.continuous = true;

// The recognition engine uses language-model punctuation inference
// Output example: "I'll be there at 3:00. See you then."
// Instead of: "i'll be there at 3 00 see you then"

browser support

Chrome150 — developer trial (flag required)
EdgeTracking Chromium
FirefoxPositive signal
SafariNo signal
Source: chromestatus browser views, May 2026.

see also