FireRedAudio 语音识别 · T8star-Aix
Transcribe with the same model you generate with
- model
- audio
- 识别文本
- 运行报告
Most TTS pipelines force you to bolt on a separate transcription model just to check your own output. FireRedAudio is an audio foundation model - it speaks and it listens - so the same checkpoint that generated your voiceover can also tell you what it just said. That's what this node is: deterministic, multilingual speech recognition, straight from your FireRedAudio model handle.
What it does
T8_FireRedAudio_ASR takes an audio clip and returns a text transcript. It's the simple, single-shot version of the pack's transcription story - the LongASR node handles hour-long recordings with chunking and subtitle output, and ReferenceTranscript auto-transcribes your voice-clone reference. This one is the "I have a short clip and I want the words" node.
The inputs are minimal: the model handle, the audio, an optional prompt, and max_new_tokens (default 300) to cap the output length. The default prompt, Transcribe speech to text., is fine for 99% of use. The output is the transcript string plus a JSON report.
Where you'll actually reach for it:
- QA loops. The pack's
SpeechQAnode uses ASR under the hood to compute CER/WER on finished dubbing. If you're building a manual version of that, this is the raw building block. - Audition sanity checks. Generate a batch of takes, transcribe each, and quickly see which one actually said the line.
- Reference handling. The
ReferenceTranscriptnode wraps exactly this behavior and passes the audio through untouched, so you can check what your voice reference actually says before you clone from it.
Mechanism
Everything runs in the pack's isolated worker - the Python 3.10 / torch 2.8 / Transformers 5.8 environment that setup_runtime.py builds. The node writes your audio to a temp WAV, sends a long_asr-free asr request to the worker over the pack's local RPC, and gets text back. The "deterministic" in the description means the transcript is a fixed function of the audio and prompt, not a sampled generation - same clip, same words, every time. That predictability is exactly what you want when ASR output feeds a QA threshold or a diff.
Install
Same pack as every FireRedAudio node:
cd ComfyUI\custom_nodes
git clone https://github.com/T8mars/comfyui-fireredaudio-T8.git
cd comfyui-fireredaudio-T8
python scripts\setup_runtime.py
Model goes in ComfyUI/models/TTS/FireRedAudio/. Good news if you only care about transcription: ASR and audio understanding work off the main model alone, so the lite profile (python scripts\download_models.py --profile lite) is enough - you don't need the extra RedAE decoder that generation requires. That saves several gigabytes of disk.
Gotchas
The model is Chinese-first, so multilingual is "very good at Chinese, solid at English, usable elsewhere" - don't assume Whisper-class English dominance. If a transcript comes back empty, check the audio actually has speech in it and bump max_new_tokens if the clip is long. And if you're transcribing the same WAVs repeatedly, note the pack caches ASR transcripts keyed on the file's SHA-256, so QA loops don't re-transcribe identical files for free - that cache lives in ComfyUI's output folder and is reused across runs. Just don't rename your files and expect the cache to still hit; it won't.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | T8_FIREREDAUDIO_MODEL | — | |
| audio | AUDIO | — | |
| prompt | STRING | Transcribe speech to text. | — |
| max_new_tokens | INT | 3001–4096 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 识别文本 | STRING | — |
| 运行报告 | STRING | — |