Speech Recognition API works in Chrome 25+, Edge 87+, Safari 14.1+ on macOS, Safari 14.5+ on iOS, and Samsung Internet 4+. Learn the API, features, and limits.

Prince Dewani
May 1, 2026
The Speech Recognition API is a W3C Web Speech API interface that turns microphone audio into text inside a web page. It works in Chrome 25+, Edge 87+, Safari 14.1+ on macOS, Safari 14.5+ on iOS, and Samsung Internet 4+, while Firefox keeps it behind a flag and Opera and Internet Explorer never shipped it.
This guide covers what the Speech Recognition API is, the browsers that support it, the key features, the use cases, and the known issues.
The Speech Recognition API is a JavaScript interface defined in the W3C Web Speech API specification. It exposes a SpeechRecognition object that captures audio from the user's microphone, sends it to a recognition engine, and returns transcribed text and confidence scores through events.
The Speech Recognition API has uneven browser coverage. Chromium-based browsers and Safari support it, Firefox keeps it behind a flag, and Opera, Android Browser, and Internet Explorer never shipped it. Most browsers still expose the interface under the webkitSpeechRecognition vendor prefix.
Chrome supports the Speech Recognition API from Chrome 25+ on Windows, macOS, Linux, ChromeOS, and Android. The interface ships behind the webkitSpeechRecognition vendor prefix, and Chrome streams audio to Google's cloud recognition service for processing. Chrome 4 to 24 did not support speech recognition at all.
Microsoft Edge supports the Speech Recognition API from Edge 87+ on Windows and macOS. The Edge implementation uses Azure Cognitive Services, so audio leaves the device for processing in Microsoft's cloud. Edge on Android and iOS does not expose the SpeechRecognition interface, and the SpeechRecognitionEnabled enterprise policy lets admins turn the feature off.
Firefox keeps the Speech Recognition API disabled by default on every release from Firefox 22+. Developers can flip the dom.webspeech.recognition.enable flag in about:config to test it, but Mozilla has never enabled the interface for end users. Firefox 2 to 21 did not include the API at all.
Safari supports the Speech Recognition API from Safari 14.1+ on macOS and Safari 14.5+ on iOS and iPadOS. The interface is exposed under the webkitSpeechRecognition prefix, and Safari prompts the user before routing audio to Apple's recognition service. Safari 3.1 to 14 on macOS and Safari 3.2 to 14.4 on iOS did not support it.
Opera does not support the Speech Recognition API on any version, even though Opera 15+ runs on the Chromium engine. The Chromium recognition path depends on a Google API key that Opera does not ship, so calls to webkitSpeechRecognition return undefined on Opera desktop and Opera Mobile.
Samsung Internet supports the Speech Recognition API from Samsung Internet 4+ through the underlying Chromium engine. The browser exposes the webkitSpeechRecognition interface and routes audio through Google's recognition service on Galaxy phones and tablets. Samsung Internet 1 to 3 did not include the API.
The legacy stock Android Browser based on the WebView 3.x stack does not expose the Speech Recognition API on any version. Modern Android devices ship Chrome for Android, which does support the interface from Chrome 25+ on the platform, so the gap only affects older Android phones running the original AOSP browser.
Internet Explorer 5.5 to 11 never supported the Speech Recognition API. Microsoft has retired Internet Explorer 11, so move any speech-input workload to Chromium-based Edge or Chrome and treat IE as a non-target for voice features.
Note: The Speech Recognition API behaves differently across Chrome, Edge, Safari, and Firefox. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
The SpeechRecognition object exposes a small surface that covers most real-time transcription needs. The features below show what the API gives a page out of the box.
The Speech Recognition API fits any product that needs voice input without a native client. The pattern that locks teams into the browser API is the no-install requirement, where a user grants microphone access once and the page handles the rest.
The Speech Recognition API trades a low setup cost for a long list of cross-browser quirks. The painful failures cluster around browser coverage, network dependency, prefixes, and accuracy.
In my experience, the issue that bites teams hardest is the silent restart on Chrome. A long dictation session looks like it dies at the 60-second mark, but the recognizer is just firing onend and waiting for a fresh start() call. Wire an automatic restart inside onend before you ship, and watch out for the no-speech error that fires when the user pauses for more than a few seconds.
Feature-detect the SpeechRecognition or webkitSpeechRecognition global before you create a recognizer. The check below runs in any browser DevTools console and tells you whether the page can use the API on this device.
// Paste this into the DevTools console to confirm Speech Recognition API support.
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
if (SpeechRecognition) {
console.log("Speech Recognition API is supported in this browser.");
const recognition = new SpeechRecognition();
recognition.lang = "en-US";
recognition.interimResults = true;
recognition.continuous = false;
recognition.maxAlternatives = 1;
recognition.onresult = (event) => {
const transcript = Array.from(event.results)
.map((result) => result[0].transcript)
.join("");
console.log("Transcript:", transcript);
};
recognition.onerror = (event) => {
console.log("Speech recognition error:", event.error);
};
console.log("Recognition object ready. Call recognition.start() from a button click to begin transcription.");
} else {
console.log("Speech Recognition API is not supported in this browser.");
}All Speech Recognition API version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance