Narrate Subtitles with Speech
The first run downloads the voice model and the phonemiser — about 98 MB together, served by this site and cached by the browser afterwards. The subtitle or text you drop in never leaves this tab. Choosing MP3 or M4A downloads a further 31 MB of encoder, which is why WAV is the default.
Options
A voice decides the accent and the timbre, and — less obviously — which sound system the text is read with. Pairing a Spanish voice with an English sentence does not fail: it reads English words with Spanish sounds, which is worse than an error message. Seven languages are offered, not twelve, because the phonemiser bundled with this page has no voice for Japanese or Chinese. Listen to a short file before committing to a long one; every voice carries the same model, so switching costs one synthesis, not one download.
How fast the voice reads, applied on top of the pace the model considers natural. Slow is 0.8× and fast is 1.2× — deliberately mild, because past roughly 1.5× the model starts swallowing syllables and the result sounds like someone rushing rather than someone speaking quickly. When a subtitle cue is too short for its line, this page raises the speed by itself up to 1.4× before it truncates, and that boost multiplies with the setting you choose here.
WAV is uncompressed 24 kHz mono, written here with no encoder at all — which is why it is the default and why nothing extra is downloaded for it. MP3 and M4A need the 31 MB video engine to compress, but come out roughly ten times smaller: ten minutes of speech is about 28 MB as WAV and about 2.8 MB as MP3. Pick WAV to audition a voice, MP3 to send the file to someone.
This page turns a subtitle file into a voice track that follows it. Every cue is spoken aloud and placed at the moment that cue starts, so the result is a single audio file — film.wav — where the words land under the subtitles rather than on top of each other. Silence fills the gaps between cues, and the total length matches the end of the last cue, which means the audio can be laid against the same picture the subtitles were made for.
The reason this page exists separately from the plain reading page is that timing is the hard part. A sentence that takes four seconds to say but has a two-second cue cannot simply be dropped in: it would run under the next one, and two voices at once is noise, not narration. So each line is synthesised at the speed you chose, measured, and — if it does not fit — synthesised once more at a faster rate, up to 1.4×. Whatever still does not fit is cut at the next cue's start, and the number of cues that happened to is reported as a loss instead of being swallowed.
The voice list is ten voices across seven languages: English from the United States and Britain, Spanish, French, Italian, Hindi and Brazilian Portuguese. A voice is not just a timbre — it decides which language's sounds the text is read with, so pairing a Spanish voice with English text produces something that is neither. Japanese and Chinese are absent on purpose: the phonemiser shipped with this page has no voice for either, and listing them would produce confident nonsense rather than an error message.
The work is local. About 98 MB of model and phonemiser are downloaded once from this site and cached by the browser afterwards; the subtitle file itself never leaves the tab. Output is WAV by default because that needs no encoder at all — choosing MP3 or M4A loads a 31 MB ffmpeg core to compress the result, which is worth it for anything you intend to send to someone.
Frequently asked questions
Why does the WAV from this page occasionally cut a sentence short when the SRT file is fine?
Because the cut is caused by the cue, not by the file. A cue that stays on screen for 1.8 seconds cannot hold a line that takes three seconds to speak unless the voice is pushed past 1.4× — and past that point the words stop being intelligible. The page tries your chosen speed first, then re-synthesises once at whatever rate would make it fit, capped at 1.4×. If it still overruns, the audio is truncated at the start of the following cue so two lines never sound at once, and the count of affected cues appears in the loss report below the queue.
What happens to ASS styling, colours and screen positions when they are read for narration?
They are dropped, and that is correct here — an audio file has no colour and no screen position. What survives is the text of each cue and its start and end times, which is exactly what placement needs. Bold, italics, karaoke timings and {\anN} position overrides are parsed away by the format layer before synthesis, so a line marked as italic in the ASS file is read in the same voice as the rest. If you need the styling preserved, convert the subtitle first; this page's product is sound.
Can a two-line SRT cue be spoken as one continuous sentence?
Yes, and it always is. A hard line break inside a cue is a typographic decision — a place where the subtitler decided the line was getting too long on screen — not a place where the speaker paused. So the two lines are joined with a space and synthesised as one utterance, which is why a cue split across lines still sounds like a single breath rather than two speakers taking turns. Only a cue boundary produces a pause in the output.
Which languages can the voice track actually speak, and what happens with Japanese subtitles?
Seven: en-US, en-GB, es, fr, hi, it and pt-BR. Japanese and Chinese are not among them because the phonemiser bundled with this page (espeak-ng) ships no voice for either, even though the speech model itself was trained on them. Feeding a Japanese .srt to an English voice does not fail loudly — the Roman letters get read as English, and kanji are skipped or mangled. The honest workflow for those languages is to wait for a build that carries a Japanese or Chinese phonemiser, rather than to accept a track that sounds plausible and is wrong.
Is MP3 worth the extra 31 MB compared with the WAV this page gives by default?
For anything longer than a few minutes, yes. WAV is uncompressed 24 kHz mono PCM, so ten minutes of narration is roughly 28 MB, while the same audio encoded as MP3 at 128 kbps is about 2.8 MB. The trade is that MP3 and M4A need the ffmpeg core downloaded once, which is why WAV is the default: if you only want to check how a voice sounds, nothing extra is fetched. Once the encoder is cached, converting the same subtitle again at the same settings is fast.