Audio Splice Analyzer (AIIA Debug)
See your seams, don't guess at them
- audio
- splice_info
- spectrogram_image
The name says "Debug" and it means it. Long-form voice conversion works by slicing audio into chunks, converting each one, and stitching the results back together - and the whole quality of the output comes down to whether those seams landed in silence. This node makes that check visual instead of auditory. It renders a log-Mel spectrogram of your audio, and if you've got seam data to hand it, it draws red lines right on top of every splice point. You look at the picture; you know instantly whether your seams are clean.
How it works
It's a matplotlib visualization with one genuinely thoughtful touch: it doesn't trust the audio alone. The optional splice_info input accepts the SPLICE_INFO data that the pack's Voice Conversion node emits - the exact list of where it stitched - so the red markers reflect reality, not your recollection of where chunks should have been. You're not eyeballing "is there a blip here?"; you're overlaying ground truth on a picture of the audio.
Inputs and output
- audio - the audio to inspect.
- splice_info (optional) - the seam data from Voice Conversion (or any node in this pack that passes
SPLICE_INFOthrough). Connect it and the markers appear; skip it and you just get a spectrogram.
Output: spectrogram_image (IMAGE) - a normal tensor you can view, save, or send into any image node.
What you're looking for
Two failure patterns, both easy to read on a spectrogram:
- A splice point that lands on a word shows up as an abrupt vertical discontinuity in the speech bands - energy that starts or stops mid-phoneme. If a red line cuts through dark, dense speech bands, that's your decapitated syllable.
- A clean seam sits in a quiet horizontal gap - the red line falls where there's no energy, meaning the converter found a real pause. That's the success case.
If you see the former repeatedly, the fix is upstream, not here: run the audio through Audio Smart Chunker first and feed its whisper_chunks into the converter's optional input, so the converter plans its cuts on silences instead of improvising.
The gotchas
- It's a diagnostics node - no audio comes out of it, and it never fixes anything. Expect to look at it, curse, and go fix the pipeline.
- It needs
matplotlib; the pack's own requirements include it, so it's usually present. But the node is defensive about it - if matplotlib is missing, it renders an error image rather than crashing the workflow. If you see a red error text in your preview, that's the cause, not a broken pipeline. - It shows splice points only when
splice_infois connected. Running it without that input is fine, but you're back to guessing where the seams are.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| splice_infoopt | SPLICE_INFO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| spectrogram_image | IMAGE | — |