Webster synthesizes speech from scratch using the Web Audio API. No browser TTS. No internet. No server. It models the human vocal tract using formant filters — just like early speech synthesizers of the 1970s–80s.
Type or paste text into the input area and press Play. Use Read Selection to synthesize only highlighted text. Load .txt, .md, .html, or .srt files with Load File.
English, German, Spanish, French, Italian, Modern Greek, Russian, Bulgarian, Ukrainian, Japanese (Hiragana/Katakana), Korean (Hangul). Auto-detect works for most scripts. Numbers are automatically spoken in the selected language.
Preset — loads a named voice profile. Choose Custom to mix your own.
Pitch — fundamental frequency of the voice (Hz). Higher = lighter voice.
Rate — speech speed multiplier. 1.0x is normal.
Formant Scale — scales resonant frequencies of the vocal tract. Higher = smaller perceived mouth/throat.
Brightness — scales fricative filter frequencies. Higher = sharper sibilants.
Roughness — adds vocal fry character by reducing clean voicing. Simulates an older or rougher voice.
• "The" automatically pronounces as "thee" before vowels and "thuh" before consonants based on context.
• Punctuation matters: commas pause briefly, periods pause longer.
• Japanese and Korean sound the most natural due to their regular phonemic structure.
• The Phoneme Debug panel shows exactly what sounds are being synthesized.
• HAL 9000 preset + slow rate + long text is the correct use of this tool.
• Webster is entirely offline. Nothing leaves your browser.
• Export WAV downloads the synthesized audio as a standard .wav file for use anywhere.
• Questions get rising intonation, exclamations get a falling-then-level contour, statements get a natural fall at the end.
• Built with the Web Audio API. One HTML file. No dependencies.
Webster exposes a JavaScript API. From the same page: window.webster.speak("Hello world", {preset:"hal", rate:0.8})
From an iframe parent: send postMessage({target:"webster", action:"speak", text:"Hello", options:{lang:"ja"}}, "*")
Options: lang, pitch, rate, preset, natural. Actions: speak, stop, pause, resume, getPresets.
Formant — Klatt-style synthesis (v4): a glottal pulse through a cascade of five resonators, noise through parallel bands for hiss and bursts, smooth transitions between sounds. The default.
Retro — the original v3 engine: a sawtooth through three band filters. Buzzier, very 1980s.
Physical — 2-D digital waveguide mesh modeling the vocal tract geometry. Produces natural formant transitions and realistic consonant articulation. Experimental.