kostja-me/srt-to-voice — explained in plain English
Analysis updated 2026-05-18
Turn a subtitle file into a folder of numbered voice clips for a video.
Preview what audio would be generated without spending API credits using dry run mode.
Resume a large batch job that got interrupted without redoing finished clips.
Apply a pronunciation dictionary to control how specific words are spoken.
| kostja-me/srt-to-voice | 0xustaz/streamgate | a-bissell/unleash-lite | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | Python | Python | Python |
| Setup difficulty | easy | hard | hard |
| Complexity | 2/5 | 4/5 | 4/5 |
| Audience | general | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires an ElevenLabs account and API key with text to speech access enabled.
srt-to-voice is a small Python script that turns subtitle files into spoken audio. You give it an .srt file, the kind that carries timed captions for a video, and it sends the text of each subtitle line to the ElevenLabs text to speech service, saving the result as a separate MP3 file. Each cue gets its own numbered file, like 001.mp3, 002.mp3, and so on, so the clips stay in the right order. If you add the timestamp option, the filenames also include the cue's start time, which makes it easier to line the audio back up with the original subtitles later. To use it you need a tool called uv, which handles installing Python and the script's one dependency automatically, so setup is mostly just running one install command. You also need an ElevenLabs account and an API key with text to speech access turned on, plus a voice id chosen from ElevenLabs' voice library. Both the API key and voice id can be set as environment variables so you do not have to type them every time. The script supports a few extra options. A dry run mode lets you preview what would be generated without actually calling the API or spending any credits. By default it skips cues that already have an MP3 file, so if a run gets interrupted you can start it again and it will only fill in the missing pieces instead of redoing everything. You can also choose between different ElevenLabs voice models, trading off speed against quality, and apply a pronunciation dictionary if you want specific words pronounced a certain way. This is a focused, single-purpose command line tool rather than a full application. There is no bundled server, database, or user interface, just a script you run from a terminal with a subtitle file as input and a folder of MP3 files as output. It is released under the MIT license.
A command line Python script that converts .srt subtitle files into per-line MP3 voice clips using the ElevenLabs text to speech API.
Mainly Python. The stack also includes Python, uv, httpx.
MIT licensed, free to use, modify, and share for any purpose including commercial use.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.