Use cases · Subtitles and captions

Subtitle generation API: SRT and VTT from any audio or video

Speech Revolutions returns finished SRT or VTT subtitle files from a single API call: numbered, timed, line-wrapped and split at every speaker change. It handles 99+ languages, detected automatically.

from speechrevolutions import SpeechRevolutions

client = SpeechRevolutions()

srt = client.transcribe("launch-video.mp4", output_type="srt")
srt.save("launch-video")   # -> launch-video.srt

vtt = client.transcribe("launch-video.mp4", output_type="vtt")
vtt.save("launch-video")   # -> launch-video.vtt

Where it goes wrong

Captions that drift from the audio, or that keep one speaker's line on screen after the next person starts talking, are the complaint viewers notice first.

Generating them yourself means timestamping words, breaking lines at sensible points and writing the file format, all on top of transcription.

What the API gives you

SRT and VTT from the server
output_type="srt" or "vtt" returns the finished file; result.save() writes it to disk.
Captioning rules built in
One speaker per cue, at most two lines of 42 characters and 7 seconds, with breaks at pauses and sentence ends.
Word-level timing
Every word is aligned to the audio, with a 40 ms median word-boundary error in our benchmark.
Speaker changes
A new cue starts when the speaker changes, prefixed with the speaker label; turn speaker_labels off for captions without it.
Languages
99+ languages, detected automatically, including switches mid-file.
Video files
Send the video; files up to 10 GB through the SDK.

Measured

In our timestamp benchmark, Speech Revolutions measured a 40 ms median word-boundary error, against 58 ms for ElevenLabs, 59 ms for AssemblyAI and 65 ms for Deepgram.

Full results and method: speaker diarization measured across five APIs and all benchmarks.

Pricing

$0.003 per audio minute, $0.18 an hour, billed by the second. Speaker labels, word timestamps and every output format are included. New accounts get $10 of credit with no card required. Pricing details.

In the docs

Other use cases