Audio Speaker Isolator (AIIA)
Pull one voice out of a crowd
- audio
- whisper_chunks
- isolated_audio
- segment_count
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:
- 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. - 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
Concatenatemode 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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| whisper_chunks | WHISPER_CHUNKS | — | |
| speaker_label | STRING | SPEAKER_00 | — |
| isolation_mode | COMBO | Maintain Duration | 2 options: Maintain Duration, Concatenate |
| fade_duration_msopt | FLOAT | 100–100 | 在声音开始和结束处添加淡入淡出,防止爆音 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| isolated_audio | AUDIO | — |
| segment_count | INT | — |