FireRedAudio 长录音参考候选 · T8star-Aix
Mine the good 8 seconds out of an hour of audio
- source_audio
- model
- 信号/ASR 推荐候选
- 全部候选
- 推荐 line ID
- 候选 Manifest 路径
- 排序报告
Voice cloning wants 3–15 clean seconds, but the clip with that person's best voice is usually buried somewhere inside a long recording - a podcast episode, a narration session, a voice note. ReferenceCandidates does the mining: it scans a long audio file, extracts candidate segments in the 3–15 second range, ranks them by clipping, silence, energy contrast, voice activity and duration, and hands you the survivors as a batch plus a recommendation. It's the difference between "let me scrub through an hour to find one usable sentence" and "here are eight candidates, pick one."
How it works
The node writes your source to WAV, then runs the worker's candidate discovery: it finds speech-active stretches, slices them into segments (with a little padding_seconds of voice at each edge), and scores each one. The signal score weighs things you can't hear at a glance - clipping ratio, how much of the segment is dead silence, how much the energy stands out from the background - plus a duration preference around preferred_seconds. Nothing is destructively modified: the source stays byte-identical, and the README is explicit that the ranking is a signal-quality ordering, not a subjective "this sounds nicest" judgment.
There's an optional second pass: run_asr_check transcribes each candidate and re-ranks with an intelligibility proxy (non-empty text, speech rate, repetition) blended 80/20 with the signal score. Read the fine print carefully - the manifest marks it asr_metric_is_proxy_not_accuracy. It tells you which clips are most likely understandable speech; it is not WER/CER against a ground-truth transcript, and it can't tell you the voice is on-model. That's why the flow always ends at human ears.
The inputs that matter
source_audio- the long recording. It must validate: the node checks the source SHA-256 stays consistent, and it preserves the source's sample rate and channels.min_seconds/preferred_seconds/max_seconds- the candidate window. Defaults 3/8/15, and the validation enforces 1 ≤ min ≤ preferred ≤ max ≤ 30.max_candidates- default 8 (up to 20). More candidates means more listening on the review board.run_asr_check+language- turn this on and you must connectmodel(optional otherwise). ASR costs a worker round-trip per candidate.
Outputs: 信号/ASR 推荐候选 (the top pick as AUDIO), 全部候选 (as an AudioBatch), 推荐 line ID, 候选 Manifest 路径, and 排序报告. The results area also gets native players for every candidate, so you can audition without any extra preview node.
Where it fits
The pack's 23_long_reference_screening example is the intended flow: long recording → this node → human audition on the TakeReviewBoard → 参考音频 ASR 逐字稿 to verify the text → VoiceProfile. The recommendation is a starting point, not a verdict. Feed the winning candidate into PrepareReference for the clean 24 kHz copy, then clone from that.
Installing
Pack-wide: ComfyUI Manager search comfyui-fireredaudio-T8, or clone + python scripts\setup_runtime.py, then download models if you want the ASR pass. One trap: don't set min_seconds/max_seconds at their validation edges without thinking - a 1-second candidate is almost always too short for a good clone, and 30 seconds wastes context. The 3/8/15 defaults are sane for a reason.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| source_audio | AUDIO | — | |
| project_name | STRING | reference-search | — |
| subfolder | STRING | fireredaudio/reference-candidates | — |
| min_seconds | FLOAT | 3.01–30 | — |
| preferred_seconds | FLOAT | 8.01–30 | — |
| max_seconds | FLOAT | 15.01–30 | — |
| padding_seconds | FLOAT | 0.200–2 | — |
| max_candidates | INT | 81–20 | — |
| run_asr_check | BOOLEAN | false | — |
| language | COMBO | zh | 2 options: zh, en |
| modelopt | T8_FIREREDAUDIO_MODEL | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| 信号/ASR 推荐候选 | AUDIO | — |
| 全部候选 | T8_FIREREDAUDIO_AUDIO_BATCH | — |
| 推荐 line ID | STRING | — |
| 候选 Manifest 路径 | STRING | — |
| 排序报告 | STRING | — |