ComfyUI Node

SRT To Audio

The all-in-one that turns subtitles into a synced voice track

By YanTianlong-01·Created 7 months ago·Updated 3 months ago· 11
SRT To Audio
  • model_key
  • voice_clone_prompt
  • audio
  • adjusted_srt
srt_string
languageauto
tempo_limit1.5
mini_gap_ms100
batch_size10

This is the "do it all in one node" version of VoiceBridge's dubbing pipeline. Give it an SRT, a loaded Qwen3-TTS model, and a voice clone prompt, and it reads every subtitle, synthesizes each sentence in the cloned voice, lines all the audio up with the original subtitle timing, and hands you a single merged audio track plus a corrected SRT. One node, one queue, done.

How it works

Under the hood it's the same engine the decoupled pipeline uses, but batched and self-contained:

  1. Parse the SRT into subtitle entries.
  2. For each batch of entries (default batch_size 10), generate that sentence's audio with the cloned voice via Qwen3-TTS.
  3. Fix the timing mismatches. This is the interesting part - synthesized speech rarely lands exactly inside the subtitle's slot. The node measures each clip against its subtitle window and applies three corrections in order: if the audio is shorter than the subtitle, it tightens the subtitle's end time to match; if it's longer than the available window (the gap before the next subtitle), it speeds the audio up; if it's still too long, it cascades - pushing subsequent subtitles later to make room. It's a pragmatic "make it fit" algorithm, and it's why the output includes an adjusted_srt.
  4. Merge everything into one ComfyUI AUDIO and return the retimed SRT.

The inputs that matter

  • model_key - from VoiceBridge TTS Loader (must be loaded first; this is the cache lookup by key).
  • srt_string - the subtitles, from VoiceBridge Load SRT, Generate SRT, or a paste.
  • voice_clone_prompt - from Voice Clone Prompt. Without it there's no voice identity; it's required.
  • language - auto or one of 31 languages. For translation you'll typically set the target language here.
  • tempo_limit (default 1.5, range 1.0–5.0) - the maximum speed-up factor the node will apply when audio overflows its slot. Lower = more conservative timing, higher = faster speech but risk of sounding rushed.
  • mini_gap_ms (default 100, range 0–10,000) - the minimum gap it preserves between consecutive subtitles.
  • batch_size (default 10) - how many sentences per TTS batch. Lower it if you're hitting memory limits on long SRTs.

Installing it

Part of the comfyui_voicebridge pack. ComfyUI Manager search "VoiceBridge", or:

cd ComfyUI/custom_nodes
git clone https://github.com/YanTianlong-01/comfyui_voicebridge.git
cd comfyui_voicebridge
pip install -r requirements.txt

Restart ComfyUI; expect the Qwen3-TTS weights to auto-download on first load.

When NOT to use it

The README now explicitly steers you toward the decoupled path - Load SRT → SRT Splitter → any TTS → Audio List Merger by SRT - for anything that isn't Qwen3-TTS. SRT To Audio is the bundled, opinionated, one-stop option, and it's the right call when you want the pack's own voice and don't care about swapping engines. But if you've spent a weekend training a VoxCPM voice or you just prefer Fish Audio's output, this node's model-key requirement locks you out - that's what VoiceBridge Audio List Merger by SRT is for. One more note: on failure it returns a silent audio track rather than throwing, so if your output is mysteriously quiet, check the [VoiceBridge] console logs - a silent result often means something upstream silently broke.

CategoryVoiceBridge

Inputs (7)

NameTypeDefaultDescription
model_keyMODEL_KEY
srt_stringSTRING
voice_clone_promptVOICE_CLONE_PROMPT
languageoptCOMBOauto31 options: auto, Chinese, English, Cantonese, Arabic, German, +25
tempo_limitoptFLOAT1.51–5Maximum speed-up factor for audio that exceeds subtitle duration
mini_gap_msoptINT1000–10000Minimum gap between subtitles in milliseconds
batch_sizeoptINT101–1000Number of subtitles to process in each batch

Outputs (2)

NameTypeDescription
audioAUDIO
adjusted_srtSTRING