FireRedTTS3 Whisper Transcribe
The transcript that makes cloning actually work
- audio
- audio
- transcript
The pack's own README says it bluntly: a correct prompt_text transcript materially improves voice cloning. And here's the kicker - FireRedTTS3VoiceClone ships with prompt_text defaulting to empty. If you run a clone without it, you're leaving quality on the table. This node is the one-click fix: drop your reference clip in, get an exact transcript out, wire it into the clone, done.
It's a utility node and it knows it. It runs an OpenAI Whisper ASR pipeline on whatever AUDIO you feed it and returns two things:
transcript(STRING) - the text. This is the whole point.audio(AUDIO) - the input, passed through unchanged, so you can chain the same clip straight into the clone node without a separate copy.
The wiring move that makes it click: right-click the Voice Clone node, convert prompt_text to an input, and connect this node's transcript there. Then the loop closes - clone in, clean reference out, transcript filled automatically.
The inputs are Whisper controls, and the defaults are sensible:
model-whisper-large-v3-turboby default, which is the right call: fast and usually accurate enough for a reference transcript. Drop towhisper-smallortinyif you're tight on memory, or up to fulllarge-v3if a language is being stubborn. Missing models download intoComfyUI/models/audio_encoders/.language-autodetects; setting it explicitly improves accuracy on ambiguous clips. The dropdown covers the usual dozen-plus.task-transcribekeeps the clip's language;translateforces English output. Leave it on transcribe for cloning, because the transcript needs to match the reference audio's language for the clone to condition on it properly.chunk_length_s- 30 by default for longer clips; 0 lets Transformers decide.dtype- auto (bf16 on CUDA/XPU, fp32 otherwise) anddownload_if_missingtrue. Both fine as-is.
Two subtleties worth knowing. First, cloning quality depends on the transcript being exact - matching what's actually spoken, including hesitations and filler. Whisper gets close but not perfect, so on a reference clip where precision matters, give the transcript a once-over in a text preview node before trusting it. Second, this node exists because the upstream FireRedTTS3 pipeline uses an LLM API for text normalization, which the pack deliberately excludes - the README is explicit that the pack makes no external API calls. So Whisper here is the fully-local replacement for that, which is a good trade.
One mechanism note buried in the pack source: it stubs out a broken or missing torchcodec at import time so an incompatible wheel can't crash the Transformers audio pipeline. If you see odd torchcodec-related errors elsewhere in your ComfyUI, that's a known rough edge of the audio-in-ComfyUI layer, and this pack at least guards against the worst of it.
Install is the pack-wide story: ComfyUI Manager search "FireRedTTS3-ComfyUI", or git clone https://github.com/Saganaki22/FireRedTTS3-ComfyUI into custom_nodes and run python install.py (needs Transformers 5.3+; install.py never touches torch/transformers itself). The node itself is light - the Whisper download is the only real footprint, and it's a fraction of the multi-gigabyte FireRedTTS3 weights you're already loading. For the single most effective quality upgrade available to a cloning workflow, it's the cheapest node in the pack.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | Reference audio to transcribe for the FireRedTTS3 prompt_text input. | |
| model | COMBO | whisper-large-v3-turbo | Whisper ASR model. Turbo is fast and usually accurate enough for reference transcripts. Downloads into ComfyUI/models/audio_encoders when missing. |
| dtype | COMBO | auto | Whisper precision. auto uses bf16 on supported CUDA/XPU and fp32 otherwise. |
| language | COMBO | auto | Reference audio language. auto detects it; setting it can improve transcript accuracy. |
| task | COMBO | transcribe | transcribe keeps the original language; translate outputs English. |
| chunk_length_s | INT | 300–120 | Whisper chunk length for longer reference clips. 0 lets Transformers choose. |
| download_if_missing | BOOLEAN | true | Download the selected Whisper model into ComfyUI/models/audio_encoders if it is missing. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| transcript | STRING | — |