Nodes/FireRedAudio · T8star-Aix/FireRedAudio 长音频分段转写 · T8star-Aix
ComfyUI Node

FireRedAudio 长音频分段转写 · T8star-Aix

Two hours of audio, one transcript, real subtitles out

By T8mars·Created 19 days ago·Updated 15 days ago· 21
FireRedAudio 长音频分段转写 · T8star-Aix
  • model
  • audio
  • 完整转写
  • SRT 字幕
  • 时间戳 JSON
  • 运行报告
  • WebVTT 字幕
  • JSONL 分段
promptTranscribe speech to text.
chunk_seconds30
overlap_seconds1.0
max_new_tokens300
silence_search_seconds1.50

The plain ASR node transcribes a clip and hands you words. Point it at a two-hour podcast and you'll get... context overflow, or a transcript that stops at the thirty-minute mark. Long audio needs segmentation, and naive segmentation (just chop every 30 seconds) cuts words in half and gives you a transcript full of "hel…" and "…lo." T8_FireRedAudio_LongASR is the version that does it right: it hunts for silence near the chunk boundary before cutting, transcribes overlapping windows, deduplicates the overlap, and emits SRT, VTT, JSONL, and timestamps.

What it does

You feed it a model, the audio, and the usual transcription prompt (default Transcribe speech to text.). Then:

  • chunk_seconds (30) - the nominal segment length. Not a hard cut: the node searches nearby silence (silence_search_seconds, 1.5s) and cuts where speech actually pauses, so sentences survive intact.
  • overlap_seconds (1.0) - each chunk overlaps its neighbor by this much. That's how you don't lose the word that fell exactly on a boundary: it appears in both chunks, and the node deduplicates the repeated text when stitching.

Outputs are the whole menu: the complete transcript, SRT, WebVTT, timestamped segments_json, JSONL, and a run report. You can route SRT straight to SaveSubtitle or grab the JSON for downstream use.

The honest caveat about timestamps

The README says it flat out: long-audio subtitles are segment-level approximate timestamps, not word-level forced alignment. The SRT times are as good as the silence-aware segmentation - good enough to read along, not good enough to sync a video frame-exact off. If you need word-perfect alignment, that's a different (and much heavier) tool. Know that going in and this node won't disappoint you.

Inputs that matter

model, audio, chunk_seconds, overlap_seconds, max_new_tokens (per chunk, 300), and the advanced silence_search_seconds. For a first run, the defaults are all fine - 30s chunks, 1s overlap, 1.5s silence search.

Install

Pack install:

cd ComfyUI\custom_nodes
git clone https://github.com/T8mars/comfyui-fireredaudio-T8.git
cd comfyui-fireredaudio-T8
python scripts\setup_runtime.py

Transcription works off the main model alone, so the lite profile suffices - python scripts\download_models.py --profile lite saves you the RedAE decoder download if you're only transcribing. Models live in ComfyUI/models/TTS/FireRedAudio/.

Gotchas

Don't crank chunk_seconds to 300 expecting better context - long chunks slow down and still hit token limits; 30–60 is the pragmatic range for speech. If you see duplicated phrases in the transcript, that's usually a sign the overlap dedup didn't recognize the repeated text (e.g. music or noise in the overlap) - bump overlap a little or clean the audio. And remember ASR here is FireRedAudio's own ear: it's Chinese-first and solid at English, so don't be surprised if heavy accent or music-bed sections come back garbled. For clean speech it's genuinely good, and it means one model does your generation and your verification.

CategoryT8star-Aix/Audio/FireRedAudio

Inputs (7)

NameTypeDefaultDescription
modelT8_FIREREDAUDIO_MODEL
audioAUDIO
promptSTRINGTranscribe speech to text.
chunk_secondsFLOAT305–300
overlap_secondsFLOAT1.00–9
max_new_tokensINT3001–4096
silence_search_secondsFLOAT1.500–5

Outputs (6)

NameTypeDescription
完整转写STRING
SRT 字幕STRING
时间戳 JSONSTRING
运行报告STRING
WebVTT 字幕STRING
JSONL 分段STRING