# SRT to speech: turn SRT or VTT subtitles into timed audio or a video dub

Read SRT or VTT lines on time as an MP3, WAV, or dubbed video.

## How it works

1. Upload an SRT or VTT subtitle file (up to 2 MB and 100,000 spoken characters), and add an MP4, MOV, MKV, WebM, or AVI video up to 10 GB if you want it dubbed.
2. Pick Eleven v4, Eleven v4 Turbo, or Gemini 3.8, choose a voice and language, and—when dubbing a video—choose Lower under the voice, Replace with the voice, or Keep at full volume.
3. Voice the subtitles, listen to each line on time, and download the 48 kHz MP3 or WAV (plus the dubbed video and per-line timing JSON).

## What you can make with Audo's SRT to speech converter

Start from any timed SRT or VTT file to export a broadcast-leveled voiceover or dub a full-resolution video in one pass:

### Dub video from subtitles: Dub YouTube videos, courses, and lessons into 130 languages without re-encoding

Translate your captions first in Translate subtitles (or transcribe and translate a recording in Audio translator), then add the translated SRT alongside your MP4, MOV, or MKV here. Audo copies your original 1080p or 4K video picture untouched and either lowers the original soundtrack 14 dB under each line like a documentary voiceover or replaces it cleanly—giving you both the dubbed video and a standalone audio track for YouTube multi-language audio.

### SRT to MP3 & VTT to MP3: Update tutorials, walkthroughs, and narrations by editing text instead of re-recording

Already have auto-captions or an edited SRT from SRT file generator? Fix product names or wording in any text editor and turn the SRT to MP3 or VTT to MP3 (or lossless 48 kHz WAV, leveled to -16 LUFS) with every sentence locked to its original timestamp—or compose background music for it in AI music generator.

### Subtitle reader: Read feature-length SRT and VTT files aloud while skipping [music] and speaker tags

Ordinary text-to-speech tools read cue numbers, timestamps, and hearing-impaired notes out loud. Audo's subtitle reader handles feature-length files up to 100,000 spoken characters, skips [music] and [door slams] descriptions, short (laughs) asides, song lyrics between music notes, dialogue dashes, and JOHN: speaker labels at $0 cost, and joins sentences split across 400 ms cue breaks so voices flow naturally. For untimed scripts, use Text to speech.

### Timed TTS API & MCP: Generate cue-synced Eleven v4 and Gemini 3.8 voiceovers from code, Claude, and ChatGPT

Skip maintaining custom Python SRT parsers, Rubber Band time-stretchers, and audio ducking scripts around raw TTS endpoints. Call speak_subtitles over Audo's REST API or connect Audo's MCP server so Claude, ChatGPT, Claude Code, and Cursor can convert subtitles to speech—and dub 10 GB videos—with exact per-line timing in one call. See Developers for API details.

## Cue-accurate speech from subtitles—without robotic speedups or video quality loss

Audo's online SRT to speech, SRT to audio, and subtitles to audio converter reads SRT and VTT subtitle files up to 2 MB and 100,000 spoken characters—feature-film length—and places each line at its exact cue start time as a 48 kHz voiceover (192 kbps MP3 or uncompressed WAV, leveled to -16 LUFS with -1 dBFS peak limiting). Choose from four studio models: ElevenLabs Eleven v4 and Eleven v4 Turbo across 70+ languages, or Google Gemini 3.8 Flash TTS (130 languages) and Gemini 3.8 Flash-Lite TTS (101 languages) steered by a custom delivery style. The first 300 spoken characters are free, 3 times a day, with no sign-up.

Translated subtitles in Spanish, German, or French often run 20 to 30% longer than the English cues they came from, which makes basic converters rush voices up to 3× speed. On Audo, a long line first spills naturally into any silent pause before the next cue (keeping an 80 ms breath gap), then gently speeds up in 0.025× steps up to 1.25× by default (adjustable from 1.0× to 2.0× under More options) using Rubber Band R3 pitch-preserving time-stretching. Lines never talk over each other: if a dense translation still runs long, Audo nudges the next cue back with an 80 ms gap and reports exact late times so you know which lines to trim.

Before speaking, Audo strips [music] and [door slams] descriptions, short parenthetical reactions like (laughs), song lyric lines between ♪ notes, leading dialogue dashes, and uppercase speaker labels such as JOHN:—charging $0 for skipped text and silent pauses—and joins sentences split across consecutive cues within 400 ms so intonation never resets mid-sentence. Add an optional MP4, MOV, MKV, WebM, or AVI video up to 10 GB alongside your VTT to speech or SRT job to get both the voiceover and a dubbed video with its picture copied untouched, or burn styled captions next in Auto captions and layer music in Mix audio.

How Audo's SRT to speech converter compares on free access, pricing, cue timing, and video dubbing (checked November 2026)

| Tool | Free access | Pricing model | Cue timing & voices | Video dubbing & output | Source |
|---|---|---|---|---|---|
| Audo AI (/srt-to-speech) | First 300 spoken chars free (ends at a full cue), 3 times/day, no sign-up | Pay once from $5 ($0.05–$0.20 per 1,000 spoken chars; $0 for pauses & skipped [music] tags); no subscription | Spills into pauses first (80 ms gap), then Rubber Band R3 pitch-preserving stretch up to 1.25×; Eleven v4 & Gemini 3.8 (up to 130 languages) | Optional MP4/MOV/MKV/WebM/AVI up to 10 GB with picture copied untouched, -14 dB auto-ducking or replacement, plus 48 kHz MP3/WAV | https://audo.ai/srt-to-speech?utm_source=markdown&utm_medium=agent |
| SubtitleKit (Browser TTS) | Unlimited free in browser, no sign-up (requires 383 MB model download) | Free (tip-supported) | Stretches cues locally on your device; up to 10 local voices across 33 languages (no API) | Audio only (MP3, M4A, WAV); no video upload, muxing, or ducking | https://subtitlekit.com/en/subtitles-to-audio/ |
| SpeechGen.io (/en/subs/) | First 1,000 chars free, no sign-up (3,000/day for 7 days with account) | One-time packs from $4.99 ($0.10–$0.40 per 1,000 chars by voice tier; 1-year expiry) | Accelerates long cues up to 3×; skips [brackets]; 146 languages (no Eleven v4 or Gemini 3.8) | Audio only (MP3, WAV, OGG, OPUS, FLAC); requires a separate video editor to sync with video | https://speechgen.io/en/subs/ |
| Narakeet (SRT to Audio) | 20 free runs capped at 1 KB script & 10 MB upload (non-commercial, no previews) | One-time duration packs from $6 for 30 min ($0.20/min down to $0.05/min), billed per output second including pauses | Auto-speeds slow cues (pause-until sync, max 10-min pause, 350 MB commercial cap); 100 languages | Audio only (MP3, WAV, M4A) on subtitle converter; no video pass-through or auto-ducking | https://www.narakeet.com/docs/how-to/convert-subtitles-to-audio.html |
| ElevenLabs Dubbing | 0.4 min v2 or 5 min v1/mo on Free plan (account required, watermarked) | Subscriptions from $6–$99/mo (2–44 min v2 included; $2.23–$2.70/extra min); API transcript edits Enterprise-only | End-to-end audio-to-audio voice cloning in 90+ languages; Dubbing Studio (v1, 45-min cap) in maintenance mode | Up to 1 GB / 180 min in app; exports ~1080p re-encoded preview video rather than untouched source video | https://elevenlabs.io/dubbing |

Tool: Subtitles to speech (`speak_subtitles`). Price: 5 to 20 credits per 1,000 characters — $0.05–$0.20 per 1,000 characters by model, pay-as-you-go with no monthly subscription — per job’s measured quantity, charged only when a job succeeds.

## Free API

```bash
curl -F file=@subtitles-es.srt -F video=@clip.mp4 -F model=eleven_v4 https://audo.ai/api/try/speak-subtitles -D response.headers -o response.body
```

Read response.headers and response.body before naming media. Handle 202, 200 JSON and errors with the complete response client at https://audo.ai/docs/api?utm_source=markdown&utm_medium=agent#responses.

Free for the first 300 spoken characters, ending at a complete cue, 3 times a day per person, with no key or account. SRT or VTT uploads up to 2 MB (up to 100,000 spoken characters with a key) and optional video uploads up to 10 GB. Free results last one hour. The response is the result itself; a job that runs longer than about 30 seconds returns 202 with a link to check on it. With an API key (`-H "Authorization: Bearer $AUDO_API_KEY"`), omitting free runs the full job with credits if the balance covers it, otherwise the free allowance if quota remains. Set free=true to prohibit spending; for paid runs use free=false with an approved positive max_credits. A free result cut short comes with finishUrl (and the Audo-Finish-Url header when the response is the file itself): give it to the person, who pays there (from $5, no sign-up), and the whole file runs; keep checking the status link, whose finishedBy names the whole-file job and its own status link. Details: https://audo.ai/docs/api.md

## Options

Form fields with the same names as the MCP tool's inputs:

- `model`: The voice model and its price per 1,000 characters: eleven_v4 (Eleven v4, 20 credits), eleven_v4_turbo (Eleven v4 Turbo, 10 credits), gemini_3_8_flash (Gemini 3.8 Flash TTS, 8 credits), gemini_3_8_flash_lite (Gemini 3.8 Flash-Lite TTS, 5 credits). Default eleven_v4.
- `voice`: The model's voice, as in text_to_speech. Eleven: george, sarah, brian, alice, daniel, lily, adam, matilda (default george). Gemini: one of its 30 voices, such as kore (default), puck, or charon.
- `style`: Gemini models only: how to deliver every line, up to 2,000 characters, such as "a calm documentary narrator".
- `language`: The subtitles' language as a code, such as es or ja. Default: detected from the text. Naming it limits the job to models that speak it.
- `original_audio`: With video_file_id, the video's own sound: duck (kept, and turned down while the voice speaks, as a voice-over), replace (only the new voice), or keep (both at their own level). Default duck.
- `max_speed`: How much faster a line may be read to fit its cue, keeping its pitch, from 1 (never) to 2. A line still too long runs on into the pause after it, and later lines wait for it. Default 1.25.
- `output_format`: The voiceover's format: mp3 or wav. A video keeps its own. Default mp3.

## Languages

Eleven v4 and Eleven v4 Turbo speak 87 languages, Gemini 3.8 Flash speaks 130, and Gemini 3.8 Flash-Lite speaks 100+, detected automatically from the subtitle text (or set with `language` to filter compatible models).

## From an assistant (MCP)

Add https://audo.ai/mcp and sign in (setup for each assistant: https://audo.ai/setup.md). The tool is `speak_subtitles`:

> Voices an SRT or VTT file, each line at its own time, as an MP3 voiceover, or with video_file_id dubbed onto that video (picture copied; its sound ducked, replaced, or kept). Long lines speed up within max_speed, and lines don't overlap. Models and voices as text_to_speech. Use after translate_subtitles to dub. Skips [sound descriptions] and speaker names. It costs 5 to 20 credits per 1,000 characters by model, charged only if the job succeeds; free for the first 300 characters, 3 times a day. Returns the video and voiceover with each line's timing, or job_id for get_job.

Example: "Dub clip.mp4 in Spanish from subtitles-es.srt with Eleven v4."

## Questions

**Is Audo's SRT to speech converter free, and how is a full subtitle file priced?** Yes. Audo voices the first 300 spoken characters of any SRT or VTT file free (always ending cleanly at a complete cue), 3 times a day, with any voice model and no sign-up—including optional video dubbing. Longer files up to 100,000 spoken characters are pay-as-you-go per 1,000 spoken characters: $0.05 with Gemini 3.8 Flash-Lite TTS, $0.08 with Gemini 3.8 Flash TTS, $0.10 with Eleven v4 Turbo, and $0.20 with Eleven v4. Cue numbers, timestamps, silent pauses between lines, and skipped [music] or JOHN: tags cost $0. There is no subscription: you pay once from $5 and your balance never expires—see pricing.

**What happens when a translated subtitle line is too long for its timestamp?** Instead of rushing speech up to 3× speed or cutting words off mid-sentence, Audo fits cues in three stages. First, the line runs into any silent pause before the next subtitle cue while keeping an 80 ms breath gap. Second, if more room is needed, Audo applies 48 kHz Rubber Band R3 pitch-preserving time-stretching in 0.025× steps up to your max speed setting (1.25× by default, adjustable from 1.0× to 2.0×) so the voice keeps its natural pitch. Third, if a dense line still runs past max speed, Audo pushes the next cue back with an 80 ms gap so voices never overlap, and lists late lines in the result so you can shorten tight translations.

**How do I dub a video from an SRT or VTT file without losing video quality or background sound?** Add your MP4, MOV, MKV, WebM, or AVI file (up to 10 GB) alongside your SRT or VTT file on Audo and choose one of three sound modes. Lower under the voice (the default) keeps your video's own sound and smoothly lowers it 14 dB while each line speaks and brings it back up between lines, like a documentary voiceover. Replace with the voice outputs only the new voiceover, and Keep at full volume mixes narration over quiet footage. Audo copies the original video picture untouched without re-encoding—keeping 1080p and 4K frames sharp, without altering mouth movements—and gives you both the dubbed video and the standalone MP3 or WAV track.

**Will the AI voice read cue numbers, [music] brackets, or speaker names out loud?** No. Audo strips SRT and VTT cue numbers, timestamps, formatting tags, square-bracket sound descriptions such as [music] or [door slams], short parenthetical reactions like (laughs), song lyrics between ♪ notes, leading dialogue dashes, and uppercase speaker names like JOHN: or SPEAKER 1: before reading—and charges $0 for all stripped text. When one sentence is split across consecutive cues less than 400 ms apart, Audo reads them together as one sentence.

**Which AI voice model should I choose: Eleven v4 or Gemini 3.8?** ElevenLabs Eleven v4 ($0.20 per 1,000 spoken characters, 70+ languages) ranked first on Artificial Analysis' blind listening test for natural human delivery, and Eleven v4 Turbo ($0.10, 70+ languages) offers nearly identical realism at half the price. Note that square brackets in SRT files are stripped as sound descriptions, so if you want to use [whispers] tags on an untimed script, open Text to speech. Google's Gemini 3.8 Flash TTS ($0.08, 130 languages) and Gemini 3.8 Flash-Lite TTS ($0.05, 101 languages) cover the widest language set, cost the least on long feature-length subtitles, and let you steer the whole reading with a style description up to 2,000 characters (such as "calm documentary narrator") plus angle-bracket tags like <sigh> or <short pause>.

**What if I need to create an SRT file from audio or video, or translate subtitles first?** This page reads an existing SRT or VTT file aloud into audio or a dubbed video. If you want the opposite—turning an MP3 or MP4 recording into timed SRT captions—use Audo's SRT file generator (or Text to SRT to sync a written script to a recording). If your subtitles are still in their original language, translate them into up to five languages while keeping every timestamp in Translate subtitles, then upload the translated SRT here to voice it.

**Can I generate timed speech from an SRT file via API, ChatGPT, or Claude?** Yes. Raw ElevenLabs and Gemini TTS endpoints only accept plain text, which normally forces developers to maintain custom Python SRT parsers, Rubber Band time-stretchers, and audio ducking scripts. On Audo, one call to speak_subtitles over the REST API or Audo's MCP server (https://audo.ai/mcp) accepts your SRT or VTT file and optional 10 GB video directly from code, ChatGPT, Claude, Claude Code, or Cursor, and returns the leveled 48 kHz MP3 or WAV, the dubbed video, and per-line timing JSON.

## More

- Every tool: https://audo.ai/llms.txt
- OpenAPI: https://audo.ai/api/openapi.json
- This page for people: https://audo.ai/srt-to-speech?utm_source=markdown&utm_medium=agent
