Nodes/ComfyUI_AIIA/Audio Speaker Isolator (AIIA)
ComfyUI Node

Audio Speaker Isolator (AIIA)

Pull one voice out of a crowd

By havvk·Created about a year ago·Updated 6 months ago· 13
Audio Speaker Isolator (AIIA)
  • audio
  • whisper_chunks
  • isolated_audio
  • segment_count
speaker_labelSPEAKER_00
isolation_modeMaintain Duration
fade_duration_ms10

If you've diarized a recording - worked out who speaks when - the natural next move is to get one speaker's audio by itself. That's this node's entire job: you give it the original track plus the diarization data, tell it which speaker you want, and it hands back just that voice. It sits at the exact spot where the AIIA pipeline stops being about transcription and starts being about driving video with one person's audio.

How it works

The node reads a WHISPER_CHUNKS structure (the diarized, labeled segments - e.g. SPEAKER_00, SPEAKER_01) and cuts the original audio to only the segments belonging to the speaker_label you selected. Two details make it usable rather than crude: every segment edge gets a small fade in/out so you don't get click artifacts at the cuts, and there's a choice of what "isolated" means, which matters more than it sounds.

The inputs

  • audio - the full mixed track.
  • whisper_chunks - the diarization output with speaker labels.
  • speaker_label - which one to extract, default SPEAKER_00. Match it to what your diarization actually produced.
  • isolation_mode - the important choice:
    • Maintain Duration (default) - the output is the same length as the original, with everything else replaced by silence. Time-aligned, which is exactly what you need if you're feeding this audio to a talking-head node: the lips stay synced to the original video timeline because nothing shifts.
    • Concatenate - the speaker's segments get spliced together into one continuous clip with the gaps removed. Compact and clean for listening, but the timeline collapses, so don't use it for lipsync.
  • fade_duration_ms (optional) - edge fades in ms, default 10. The tooltip says it plainly: it prevents 爆音 (pops) at segment starts and ends.

Outputs

  • isolated_audio (AUDIO) - the speaker's track, in whichever mode you picked.
  • segment_count (INT) - how many segments of that speaker were found. A fast sanity check that you asked for the right label (a near-zero count usually means a typo'd label).

Where it fits

Two classic spots in an AIIA graph:

  1. Talking-head driving - isolate each speaker with Maintain Duration, drive a Ditto/EchoMimic-style node with each track, and the resulting videos stay frame-aligned with the original. The README calls this exact use case out as the reason the mode exists.
  2. Per-speaker processing - isolate, run through voice conversion or enhancement per voice, then Audio Speaker Merger puts the tracks back together.

Gotchas

  • It depends entirely on the diarization being right - mislabeled segments come out as the wrong voice, and the node can't know.
  • In Concatenate mode the result is intentionally shorter than the source; if you later plug it into something expecting the original timeline, you'll get drift. That's a mode-mismatch problem, not a bug.
CategoryAIIA/audio

Inputs (5)

NameTypeDefaultDescription
audioAUDIO
whisper_chunksWHISPER_CHUNKS
speaker_labelSTRINGSPEAKER_00
isolation_modeCOMBOMaintain Duration2 options: Maintain Duration, Concatenate
fade_duration_msoptFLOAT100–100在声音开始和结束处添加淡入淡出,防止爆音

Outputs (2)

NameTypeDescription
isolated_audioAUDIO
segment_countINT