Nodes/ComfyUI_AIIA/Audio Smart Chunker (Silence-based)
ComfyUI Node

Audio Smart Chunker (Silence-based)

The node that stops voice conversion from cutting mid-word

By havvk·Created about a year ago·Updated 6 months ago· 13
Audio Smart Chunker (Silence-based)
  • audio
  • whisper_chunks
  • chunk_count
max_duration27.0
silence_threshold0.0010
min_silence_duration0.30

Every long-form voice conversion tool has the same ugly failure: it slices your audio into fixed-size chunks, one chunk lands in the middle of a word, and you get a seam where a syllable got decapitated. This node is the pre-emptive fix. It scans your audio, finds the natural silences, and plans the chunk boundaries so that every cut lands on a pause - then hands that plan to the conversion node so it never has to improvise. It's a planning node, not an audio-output node, which makes it confusing until you see the pipeline it feeds.

How it works

Two-stage, per the README: first a global silence scan finds every natural pause in the track, then a greedy optimization walks through and packs segments into chunks that don't exceed your max_duration while keeping every boundary on a silence. The output isn't chopped audio - it's a WHISPER_CHUNKS structure describing where the cuts should go. That's the key mental shift: this node plans, something downstream executes.

The inputs

Only three, and they're all about tuning what counts as a pause:

  • max_duration - target chunk size in seconds, default 27 (range 5–29). This matches what the voice-conversion node is happiest with; keep it near 25s.
  • silence_threshold - how quiet "silent" has to be, default 0.001 (i.e. 0.1% of peak). For noisy recordings you may need to raise it so the scanner doesn't miss real pauses.
  • min_silence_duration - how long a silence must last to count, default 0.3s. Shorter pauses (like a comma's worth) get ignored so you don't end up with a hundred micro-chunks.

Outputs and the wiring

  • whisper_chunks (WHISPER_CHUNKS) - the cut plan. Feed it into Voice Conversion (AIIA Unlimited)'s optional whisper_chunks input, and the converter does "semantic-aware chunking" - it prefers these boundaries and only falls back to its own silence detection inside them.
  • chunk_count (INT) - how many chunks the plan produced. Handy for sanity-checking that the settings didn't fragment a 10-minute file into 400 pieces.

Where it fits

The killer pipeline for long voice conversion is: long audio → Smart Chunker → Voice Conversion (whisper_chunks in) → Splice Analyzer (verify seams) → Post-Process. Pre-planning the cut points is what makes the converter's "unlimited duration" claim actually hold up - without it, the seams land where the converter's internal chunking decides, which is exactly where the decapitated syllables come from.

Gotchas

  • It produces no audible output on its own - if you hook it up expecting audio, you'll stare at the widget wondering. The audio goes through the converter, not through here.
  • On very quiet, hissy source, the default silence_threshold can find almost no "silence" and the greedy packer gets weird; nudge the threshold up until chunk_count looks sane.
CategoryAIIA/audio

Inputs (4)

NameTypeDefaultDescription
audioAUDIO
max_durationFLOAT27.05–29
silence_thresholdFLOAT0.00100.0001–0.1
min_silence_durationFLOAT0.300.05–2

Outputs (2)

NameTypeDescription
whisper_chunksWHISPER_CHUNKS
chunk_countINT