v150 · Web APIs · Speech

Offline Transcript

On-device speech recognition runs entirely locally — no audio ever leaves the device. This demo lets you toggle between simulated "online" and "offline" states to show that on-device transcription continues working without network access, while cloud-based recognition would fail. The data-flow diagram updates to show which path your audio takes.

Checking Web Speech API support…
recognition mode:
Network: online
on-device mode — audio stays local
🎤 microphone
🧠 on-device model
📄 transcript
waiting for input
status log

code

const recognition = new SpeechRecognition();

// Request on-device recognition (Chrome 150+)
// Throws or falls back visibly if a local pack is unavailable
recognition.processLocally = true; // require on-device processing
await SpeechRecognition.available({
  langs: [recognition.lang],
  processLocally: true,
});

recognition.interimResults = true;
recognition.continuous = true;

recognition.onresult = (event) => {
  const latest = event.results[event.results.length - 1];
  const text = latest[0].transcript;
  const isFinal = latest.isFinal;
  // On-device: works offline, no audio sent to cloud
  appendToUI(text, isFinal);
};

recognition.start();

see also