Text to Speech & Voice Typing
Have any text read aloud with adjustable voice, speed and pitch, or dictate speech straight into text — powered by your browser's built-in Web Speech API.
218 views
Text to Speech
Your browser does not support text-to-speech (SpeechSynthesis).
Fully local: your text and the resulting audio never leave this device.
Voice Typing (Speech to Text)
Your browser does not support speech recognition. Please use Chrome or Edge — Firefox and Safari do not fully support this feature.
Listening… speak now
Heads-up: unlike most tools on this site, this feature usually sends your microphone audio to a cloud speech-recognition service (commonly Google's in Chrome) to convert it to text.
Two Very Different Speech APIs in One Tool
This tool is built on the Web Speech API, but that single name actually covers two sub-APIs that behave nothing alike. SpeechSynthesis — the "reader" half — turns typed text into audio using the voice engine already installed on your operating system or browser. It runs entirely on your device: no text is uploaded, no audio is generated remotely, and nothing you type ever leaves your machine. SpeechRecognition — the "voice typing" half — does the opposite job, turning your spoken voice into text, and it works very differently under the hood, as explained below.
The reader's voice list is filled in by calling speechSynthesis.getVoices(), but that list often loads asynchronously — on first page load it can come back empty even though voices exist, because the browser is still enumerating the operating system's installed voices in the background. This tool listens for the onvoiceschanged event and refreshes the dropdown the moment the real list is ready, which is the standard fix for a well-known Web Speech API quirk that trips up a lot of naive implementations.
A Privacy Note Worth Reading Before You Dictate
Most tools on this site process everything locally and never touch a server — that's true for the text-to-speech half here too. Speech-to-text is the exception, and it's important to be upfront about it: in Chrome and most Chromium-based browsers, SpeechRecognition typically sends your recorded audio to a cloud speech-recognition service (commonly Google's) to be transcribed, then returns the text to the page. Your voice leaves your device. If that matters for what you're dictating, treat the microphone the same way you'd treat any other cloud dictation service.
Browser support for dictation is also fragmented in a way that's worth knowing about. Chrome and Edge still require the vendor-prefixed webkitSpeechRecognition constructor rather than a plain, standardized one. Firefox has only partial support hidden behind an experimental flag that is off by default, and Safari's support is limited and inconsistent across versions — which is why, if your browser doesn't expose the API at all, this tool hides the dictation section instead of showing a form that would silently fail.
- Text-to-speech (reading): fully local, no network request, works in effectively every modern browser
- Speech-to-text (dictation): needs microphone permission, usually cloud-processed, reliable mainly in Chrome/Edge
- Available voices depend entirely on your operating system — Windows, macOS and Android each ship a different voice engine and voice list
Frequently Asked Questions
Does the text-to-speech reader send my text to a server?
No. SpeechSynthesis runs entirely inside your browser, using the voice engine already installed on your operating system. Nothing you type is uploaded anywhere — not the text, not the resulting audio. You could even disconnect from the internet after the page has loaded and the reader would keep working normally, since it doesn't fetch anything remote to generate speech.
Does the voice typing (speech-to-text) feature send my voice to a server?
In most browsers, yes — and it's worth knowing before you use it. Chrome's implementation of SpeechRecognition typically streams your microphone audio to a cloud transcription service (commonly Google's) to convert it into text, then returns the result to the page. This is fundamentally different from the reader half of this tool, which never leaves your device. If you're dictating anything sensitive, keep that in mind the same way you would with any cloud-based voice assistant.
Why is the voice dropdown empty when I first open this tool?
This is a known quirk of the Web Speech API, not a bug in this tool. Browsers load the list of installed voices asynchronously, so calling getVoices() immediately on page load can return an empty array even though voices are available. This tool listens for the onvoiceschanged event and repopulates the dropdown automatically the moment the real list becomes ready, which is the standard workaround for this behavior.
Why don't I see the voice typing section in Firefox or Safari?
Browser support for SpeechRecognition is uneven. Chrome and Edge support it reliably, still via the prefixed webkitSpeechRecognition constructor. Firefox only offers partial support behind an experimental flag that's off by default, and Safari's support is limited and unreliable across versions. Rather than showing a dictation form that silently fails, this tool detects whether the API exists and hides that section with an honest message if it doesn't — try Chrome or Edge for the full voice typing experience.
Why do the voices I can pick from look different on another computer?
The reader doesn't ship its own voices — it uses whichever voice engine your operating system and browser provide, and that varies a lot. Windows, macOS and Android each bundle different text-to-speech engines with different voice names, languages and accents, so the same webpage can offer a completely different voice list on two different machines. There's no way to standardize this from a webpage; it's determined entirely by what's installed locally.
Similar Tools
Report a Problem
Text to Speech & Voice Typing
Comments
No comments yet — be the first to write one!