Nodes/WavTTS/WavTTS Whisper Transcribe
ComfyUI Node

WavTTS Whisper Transcribe

Let Whisper do it for you

By Saganaki22·Created 3 months ago·Updated 3 months ago· 8
WavTTS Whisper Transcribe
  • audio
  • transcript
modelwhisper-large-v3-turbo (auto-download)
dtypeauto
languageauto
tasktranscribe
chunk_length_s30
download_if_missingtrue

WavTTS's one annoying requirement is that zero-shot voice prompting needs a transcript of your reference audio - reference_text on WavTTS Generate is not optional. If you have that transcript written down, you don't need this node at all. If you don't, or you want the whole thing to run unattended, WavTTS Whisper Transcribe exists to fix that one annoyance: give it the same AUDIO clip and it hands you the transcript as a STRING, ready to plug into reference_text.

How it works

It's a wrapper around the OpenAI Whisper pipeline from the Hugging Face transformers stack. The audio tensor is converted to a numpy array with its sample rate, and if your clip is long enough to matter, chunk_length_s (default 30) splits the transcription into chunks so Whisper doesn't lose its place. The models auto-download to ComfyUI/models/audio_encoders/ and - like the WavTTS weights - get registered with ComfyUI's model management, so VRAM tools see their real footprint once the node has run.

The inputs that matter

  • audio (AUDIO) - the same reference clip you're feeding into Generate.
  • model - five choices, defaulting to whisper-large-v3-turbo. Turbo is the sensible default: near top accuracy at a fraction of the cost. Drop to medium or small if you want it faster or lighter; tiny is there if you just need a rough draft.
  • language - auto is fine for clean speech. If Whisper keeps mangling an accent or a less-common language, pin the language here and it usually tightens right up.
  • task - transcribe keeps the source language; translate dumps everything to English.
  • download_if_missing - on by default; flip it off if you'd rather place the model files manually.

The single output, transcript, is a plain STRING - wire it straight into Generate's reference_text and you've got a fully automated voice-cloning loop.

Install

Same pack install as everything else: search WavTTS in ComfyUI Manager and restart, or

cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/WavTTS-ComfyUI.git
cd WavTTS-ComfyUI
python install.py

install.py uses uv-or-pip with --no-deps and deliberately doesn't touch your torch stack. Don't run pip install -r requirements.txt - it's a commented reference only. Whisper itself comes in via the transformers runtime dependency the installer sets up.

Troubleshooting

The transcript is a suggestion, not ground truth. Whisper is good, but a wrong reference_text means a wrong voice prompt, so read the output once before you trust it in production - that's the single biggest source of "the voice doesn't sound like my reference" confusion. If transcription is slow or VRAM is tight, the whisper-large-v3-turbo default is already the compromise; going smaller costs accuracy. And if your audio is long and the transcript comes out word-salad, raise chunk_length_s rather than dropping to 0, which disables chunking entirely and usually makes things worse on longer clips.

CategoryWavTTS

Inputs (7)

NameTypeDefaultDescription
audioAUDIOReference audio to transcribe for WavTTS reference_text.
modelCOMBOwhisper-large-v3-turbo (auto-download)5 options: whisper-large-v3-turbo (auto-download), whisper-large-v3 (auto-download), whisper-medium (auto-download), whisper-small (auto-download), whisper-tiny (auto-download)
dtypeCOMBOauto4 options: auto, fp16, bf16, fp32
languageCOMBOauto13 options: auto, english, chinese, japanese, korean, french, +7
taskCOMBOtranscribe2 options: transcribe, translate
chunk_length_sINT300–120
download_if_missingBOOLEANtrue

Outputs (1)

NameTypeDescription
transcriptSTRING