Nodes/ComfyUI-Mega-ASR/Mega-ASR Transcribe Audio
ComfyUI Node

Mega-ASR Transcribe Audio

Noise-proof local speech-to-text, right inside your ComfyUI graph

By starsFriday·Created 3 months ago·Updated 3 months ago· 0
Mega-ASR Transcribe Audio
  • model
  • audio
  • text
  • raw_response
  • route
  • quality_prob
  • detected_language
  • temp_audio_path
languageauto
force_monotrue
transcribe_kwargs_json{}

You're building a workflow that turns audio into text - subtitles for a video, a transcript of a voiceover, training data for a voice model - and the obvious tools all feel bolted on. Whisper works, but it's usually a separate script or a whole other app. This node is the version that lives in your graph: it takes a ComfyUI AUDIO input and returns clean text, fully local, no API key, no cloud.

It's the flagship of the ComfyUI-Mega-ASR pack, and its angle is robustness. Rather than a plain speech-to-text model, it loads Mega-ASR, an ASR system built on Qwen3-ASR-1.7B with a LoRA trained specifically for "in-the-wild" audio - background noise, reverb, cheap mics, real-world mess. The whole point is that it survives the recordings Whisper-class models choke on. If your audio is a clean studio voiceover, plain Whisper is honestly fine; this earns its keep when the source is scuffed. There's even an audio-quality router baked in that decides per-clip whether to bother with the robust path at all, so clean speech doesn't pay the cost of the heavy LoRA.

How it works

Feed it two things: the model output from a Mega-ASR Loader and any AUDIO source (Load Audio, or audio generated elsewhere in the graph). The node converts the audio tensor to a temporary wav via torchaudio, then hands it to the backend. The backend's router scores the audio for degradation; noisy clips go down the Mega-ASR LoRA path, clean clips drop to the base Qwen3-ASR path. Files longer than about 30 seconds are auto-split into segments, each routed independently, and the text is stitched back in order.

The inputs that matter

  • model - straight out of the Mega-ASR Loader. There's no other way in; this node is useless without it.
  • audio - any ComfyUI AUDIO.
  • language - leave it on auto. Here's the gotcha: the model itself handles 30 languages and 22 Chinese dialects, but this dropdown only exposes 15 of them. auto lets the model detect the language itself, which is nearly always what you want.
  • force_mono - defaults to true and averages channels down to mono before transcribing. Fine for speech, which is what this node is for.

There's also transcribe_kwargs_json, an advanced escape hatch that passes a JSON object straight into Qwen3-ASR's transcribe. Keep it {} unless you know what you're doing.

What comes out

text is the obvious one - a string you can wire into a text display, a save node, or a subtitle generator. Then there's the good stuff: route tells you whether that clip ran as mega_lora, base, or mixed (mixed means a long file where different segments took different paths), quality_prob is the router's degraded-audio probability (−1 when not routed), detected_language is what the model thinks the language is, and raw_response is the full JSON with per-segment timestamps and raw model output. temp_audio_path just points at the wav it created, useful if you want to inspect what it actually heard.

Install and gotchas

Install the pack through ComfyUI Manager (search "Mega-ASR") or clone it into custom_nodes, then install the small requirements list and download the model - the full walkthrough is on the Loader article. Three things bite people here:

  1. The model must live at exactly ComfyUI/models/Mega-ASR with the three subfolders (Qwen3-ASR-1.7B, mega-asr-merged, audio_quality_router). The node refuses to hunt for files elsewhere.
  2. The qwen_asr pip package has to be in ComfyUI's Python environment, not your system Python.
  3. If the loader errors or the node never appears, run the Mega-ASR Environment Status node first - it tells you exactly which file and which dependency is missing. Don't debug blind.

This is a young pack (it shipped in 2026, on top of a Qwen3-ASR release the community was still going "Comfy when?" about), so treat early versions as a tool with rough edges, not a finished product. But once it's up, it just works: one node, local, and it turns the worst-quality interview audio you own into text you can actually read.

CategoryAudio/Mega-ASR

Inputs (5)

NameTypeDefaultDescription
modelMEGA_ASR_MODEL
audioAUDIO
languageCOMBOauto15 options: auto, Chinese, English, Cantonese, Japanese, Korean, +9
force_monooptBOOLEANtrue
transcribe_kwargs_jsonoptSTRING{}

Outputs (6)

NameTypeDescription
textSTRING
raw_responseSTRING
routeSTRING
quality_probFLOAT
detected_languageSTRING
temp_audio_pathSTRING