{{ filteredVoices.length }} / {{ voices.length }}
Type
Quality
Loading voices…
No voices match your filters.
No natural offline voices are installed. Install Enhanced/Premium voices in your OS (macOS: Settings → Accessibility → Spoken Content → System Voice → Manage Voices), then reload.
URI:
{{ currentVoice.voiceURI }}
Type:
{{ currentVoice.localService ? 'Local (Offline Safe)' : 'Network / High Quality' }}
Quality:
{{ isNatural(currentVoice) ? '★ Natural (detected)' : 'Standard' }}
Audio Parameters
Speaking Rate (Speed)
{{ params.rate.toFixed(1) }}x
0.5x (Slow)1.0x (Normal)2.0x (Fast)
Pitch
{{ params.pitch.toFixed(1) }}
0 (Deep)1 (Normal)2 (High)
Volume
{{ Math.round(params.volume * 100) }}%
Presets:
{{ hl.before }}{{ hl.word }}{{ hl.after }}
{{ inputText.length }} chars | {{ wordCount }} words
Ctrl/⌘+Enter · Esc
{{ currentStatus }}
Implementation Code
{{ snippet }}
- Voice loading: voices load asynchronously. Listen for
voiceschanged. - Autoplay: browsers require a user gesture (click/tap) before speaking.
- Long text: Chrome can cut off after ~15s. This app (and the snippet) splits text into sentences.
- Highlighting: network voices and some mobile browsers don't emit word events, so the current sentence is highlighted instead.
- Natural detection: the API has no quality flag. ★ is guessed from the voice name (Natural, Neural, Premium, Enhanced, Siri, Online, Google).