Nodes/ComfyUI-VoiceBridge/VoiceBridge ASR Transcribe
ComfyUI Node

VoiceBridge ASR Transcribe

Speech in, words and a clock out

By YanTianlong-01·Created 7 months ago·Updated 3 months ago· 11
VoiceBridge ASR Transcribe
  • model_key
  • audio
  • forced_aligns
  • text
  • language
  • timestamps
languageauto
context
return_timestampsfalse

This is the node that listens. Give it an audio clip and a loaded Qwen3-ASR model and it hands back the transcript - plus, if you ask nicely, a word-by-word timestamp list that makes everything downstream (translation, subtitles, dubbing) actually line up with the audio. It's the recognizer in VoiceBridge's ASR → LLM → TTS speech-translation pipeline, and it's the node you'd reach for even outside that pipeline, because a ComfyUI-native, local, 31-language transcription node is genuinely useful on its own.

What it does

Feed it any ComfyUI-format AUDIO (so anything from a Load Audio node, another pack's output, or a video's extracted track) and it runs Qwen3-ASR over it. The model auto-detects the language unless you pin one. The output is four things:

  • text (STRING) - the full transcript. The thing you actually wanted.
  • language (STRING) - the detected (or chosen) language code, handy to wire into later nodes that need to know what they're translating from.
  • timestamps (STRING) - a readable start-end: word list per word, only populated when return_timestamps is on. Great for eyeballing in a text preview.
  • forced_aligns (LIST) - the machine-readable word-level timing data. This is what Generate SRT consumes to build timed subtitles, and it only has real content when timestamps are enabled and a forced aligner is loaded.

The inputs that matter

  • model_key - from VoiceBridge ASR Loader. The model must be loaded first; the loader's cache is what this node reads from.
  • audio (AUDIO) - the clip to transcribe.
  • language - auto by default; pick from 31 languages (Chinese, English, Cantonese, Japanese, Korean, and more) if auto-detection misfires or you want to force it.
  • context (STRING) - optional hints that improve accuracy on specialized content: jargon, names, product terms. If you're transcribing something full of weird vocabulary, a one-line context note pays for itself.
  • return_timestamps (BOOLEAN, default off) - the switch that decides whether you get timing. Turn it on if the output feeds Generate SRT or anything subtitle-shaped.

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. The first run will pull the Qwen3-ASR weights (a few GB) into ComfyUI/models/Qwen3-ASR/ - that happens at the loader, not here.

Where people get burned

The classic mistake is expecting timestamps without setting anything up for them. return_timestamps defaults off, and even when you flip it on, precise word timing needs the Qwen3-ForcedAligner-0.6B selected on the loader. Skip both and you get a perfectly good transcript with no clock attached - fine for text, useless for subtitles. The other gotcha is model-lifetime: if the ASR model gets unloaded (via VoiceBridge Unload Model or a loader settings change), this node throws a "model not found in cache" error until the loader runs again. That's by design - the pack trades convenience for explicit VRAM control, so the sequence matters: load, transcribe, unload.

CategoryVoiceBridge

Inputs (5)

NameTypeDefaultDescription
model_keyMODEL_KEY
audioAUDIO
languageoptCOMBOauto31 options: auto, Chinese, English, Cantonese, Arabic, German, +25
contextoptSTRING
return_timestampsoptBOOLEANfalse

Outputs (4)

NameTypeDescription
forced_alignsLIST
textSTRING
languageSTRING
timestampsSTRING