Nodes/ComfyUI_AIIA/Voice Conversion (AIIA Unlimited)
ComfyUI Node

Voice Conversion (AIIA Unlimited)

Clone a voice onto hours of audio, seams be damned

By havvk·Created about a year ago·Updated 6 months ago· 13
Voice Conversion (AIIA Unlimited)
  • model
  • source_audio
  • target_audio
  • whisper_chunks
  • audio
  • splice_info
speed1.0
chunk_size25
overlap_size1
seed42

This is the pack's marquee audio node, and the claim is a big one: it converts any-length audio into a target voice, where official CosyVoice 3 recommends 20 seconds and caps out around 60. The trick isn't magic - it's that the node does the chunking smarter than the stock pipeline, planning cuts at semantic pauses instead of letting a fixed window fall mid-syllable. The result is that a 90-minute audiobook or a long lecture can be re-voiced in one pass, and - the part that separates good from acceptable - the seams where chunks get stitched back together are the quietest they can be.

How it works

Three techniques stack up, per the README:

  1. Semantic-aware chunking - if you feed it whisper_chunks (from the pack's diarization/splitter), it identifies the gaps between sentences and plans chunk boundaries there, so it never slices a word in half.
  2. Physical silence detection - within a candidate boundary region, a fine-grained energy scan finds the actual silent instant, down to sub-millisecond precision.
  3. Sacrificial context stitching - each chunk generates with overlap for context, but the previous chunk's tail is discarded at join time, keeping only a ~50ms cross-fade. That kills the "ghost echo" and phase-y smear that plagues naive long-form conversion.

The inputs

  • model - a COSYVOICE_MODEL from the loader.
  • source_audio - what gets converted. Any length.
  • target_audio - the voice to convert to; the node auto-takes the first 30 seconds, so you don't need to trim your reference.
  • speed - 1.0 default.
  • chunk_size - seconds per chunk, default 25, range 10–28. The tooltip's advice is blunt: keep it around 25.
  • overlap_size - seconds of overlap, default 1; note the tooltip that overlap counts against the ~30s model limit, so don't stack it with a big chunk.
  • whisper_chunks (optional) - the semantic-planning input. This is the one that makes long audio good rather than merely long.
  • seed (optional) - 42 default, −1 for random.

Outputs

  • audio - the converted track (AUDIO).
  • splice_info - the seam metadata, so you can verify the joins visually with the Audio Splice Analyzer instead of trusting your ears.
source → Audio Smart Chunker → Voice Conversion (whisper_chunks in)
                                      → Splice Analyzer (verify)
                                      → Audio Post-Process (master)

The chunker supplies the semantic plan; the converter executes it; the analyzer shows you the seams landed in silence; post-process does the final polish.

Gotchas

  • Feed it good target audio. The clone quality is only as good as the 30 seconds you give it - clean, dry, consistent.
  • The seams live or die by the chunk plan. Skip whisper_chunks and the node falls back to its own detection, which is decent but not the same. For professional results, chunker first.
  • Chunk + overlap budget. Keep chunk_size near 25 and don't run both at max - the overlap counts toward the model's effective window.
  • It's CosyVoice under the hood, so the PyTorch 2.9.x and transformers-compat caveats from the loader apply here too.
CategoryAIIA/Synthesis

Inputs (8)

NameTypeDefaultDescription
modelCOSYVOICE_MODEL
source_audioAUDIO
target_audioAUDIO
speedFLOAT1.00.5–2
chunk_sizeINT2510–28建议保持在25秒左右
overlap_sizeINT10–4重叠部分也会计入30秒限制
whisper_chunksoptWHISPER_CHUNKS
seedoptINT42-1–2147483647

Outputs (2)

NameTypeDescription
audioAUDIO
splice_infoSPLICE_INFO