Nodes/ComfyUI-EdgeTTS/Whisper STT 👂
ComfyUI Node

Whisper STT 👂

Transcribe audio to text inside ComfyUI

By 1038lab·Created 2 years ago·Updated 6 months ago· 74
Whisper STT 👂
  • audio
  • STRING
â—„model_sizebaseâ–º
â—„languageautoâ–º

This is the reverse of text-to-speech: you feed it audio, it hands back the words. Whisper STT runs OpenAI's Whisper model right inside your graph, so you can transcribe a voice clip, auto-caption a video, or pull a script out of an audio file without leaving ComfyUI. Whisper is the community default for this - as one r/comfyui thread put it plainly, "Whisper does a great job of captioning" - and this node is a clean way to bolt it into a workflow.

It ships in 1038lab's ComfyUI-EdgeTTS pack, the same bundle that gives you the Edge TTS voiceover node and Save Audio. Unlike Edge TTS (which is a free cloud call), Whisper actually runs locally: the model weights download to your machine on first use and inference happens on your own hardware.

How it works

You give it an AUDIO input and a model size, and it runs speech recognition and returns the transcript as a plain string. The first time you use a given model size, it downloads those weights - so the first run of, say, small will pause to fetch a few hundred MB before it does anything. After that it's cached.

Whisper is multilingual and can auto-detect the spoken language, or you can pin it. It transcribes in the language it hears; there's no separate translation step here.

The inputs and outputs that matter

  • audio (AUDIO) - the clip to transcribe. Comes from any node that emits ComfyUI audio.
  • model_size - tiny, base, small, medium, large (default base). This is the real quality/speed dial. tiny/base are fast and fine for clear English; small is the sweet spot for most people; medium/large are noticeably more accurate on accents, noise and non-English audio but are slower and want a GPU and real VRAM. Start at base or small and only climb if the transcript is sloppy.
  • language - auto (default) or one of ~57 specific language codes. Auto-detect is convenient but can guess wrong on short or noisy clips; if you already know the language, set it explicitly and you'll get better, faster results.

Output is a single STRING - the transcribed text. Wire it into anything that takes text: a caption/subtitle node, a text display, or a prompt input if you're doing something clever like speech-driven generation.

How to install it

Via ComfyUI Manager: search Comfyui-EdgeTTS, install, restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/1038lab/ComfyUI-EdgeTTS.git
./ComfyUI/python_embeded/python -m pip install -r requirements.txt

Then restart ComfyUI. Whisper is the reason this pack has real dependencies - read the next section before you assume it's broken.

Common issues

FFmpeg not found / it errors the moment it touches audio. Whisper needs FFmpeg on your system PATH - this is the number-one setup failure. Install FFmpeg, and on Windows make sure its bin folder is actually on PATH (the pack's README literally shows $env:Path += ";F:\FFmpeg\bin" then restart ComfyUI). Restarting ComfyUI after changing PATH matters - it inherits the environment at launch.

Audio load/save errors on recent PyTorch. If you're on torch/torchaudio 2.9 or newer, torchaudio now needs torchcodec to load and save audio. Match it to your torch build:

./ComfyUI/python_embeded/python -m pip install --no-cache-dir "torchcodec==0.9"

First run "hangs." It's not hung - it's downloading the model weights for that size. Bigger sizes take longer to fetch. Let it finish once and it's cached after.

Transcript is slow or the big model OOMs. medium/large want a CUDA GPU; on CPU they're painfully slow, and on a small card large can run you out of VRAM. Drop to small - for most audio it's within a hair of the big models at a fraction of the cost.

Wrong language in the output. Auto-detect misfired, usually on a short or noisy clip. Set language explicitly and re-run.

Category🧪AILab/🔊Audio

Inputs (3)

NameTypeDefaultDescription
audioAUDIO—
model_sizeCOMBObaseWhisper model size - larger = more accurate but slower
languageCOMBOautoSelect language or auto for automatic detection

Outputs (1)

NameTypeDescription
STRINGSTRING—