Nodes/TTS Audio Suite/๐Ÿ”„ Voice Changer
ComfyUI Node

๐Ÿ”„ Voice Changer

Turn one voice into another

By diodiogodยทCreated about a year agoยทUpdated 21 days agoยท 1,098
๐Ÿ”„ Voice Changer
  • TTS_engine
  • source_audio
  • narrator_target
  • converted_audio
  • conversion_info
โ—„refinement_passes1โ–บ
โ—„max_chunk_duration30โ–บ
โ—„chunk_methodsmartโ–บ

Text-to-speech makes a voice say new words. Voice conversion is different: it keeps the performance - the timing, the emotion, the exact delivery - and only swaps the identity. You record yourself saying a line with all the right feeling, run it through ๐Ÿ”„ Voice Changer with a target voice, and out comes that same line in someone else's voice. This is the node for that, and it's the shared front-end for both RVC conversion and ChatterBox/CosyVoice-style VC.

Reach for it when TTS won't give you the delivery you want. Acting a line yourself and converting it is often faster and more expressive than fighting a TTS engine's prosody.

How it works

Voice Changer is a consumer node, like TTS Text - it doesn't hold a model itself. You give it a conversion engine, a source clip (the performance), and a target voice (the identity), and it does the swap. With RVC, the target is a trained .pth character model from ๐ŸŽญ Load RVC Character Model. With ChatterBox/CosyVoice VC, the target is a reference clip. The engine you plug in decides which path you're on.

The clever bit is iterative refinement. Each conversion pass nudges the output closer to the target voice, and the node caches every pass, so bouncing between 3, 5, and 4 passes is instant after the first run instead of recomputing from scratch.

The inputs and outputs that matter

  • TTS_engine - the conversion engine. For RVC that's an โš™๏ธ RVC Engine; for ChatterBox VC it's a ChatterBox engine set up for conversion. This is required and decides the whole behavior.
  • source_audio - the voice you're converting from (your performance).
  • narrator_target - the voice you're converting to. For RVC, connect the rvc_model output of ๐ŸŽญ Load RVC Character Model here; for other engines, a reference voice.
  • refinement_passes (1โ€“30, default 1) - how many conversion iterations. The README's honest advice: 1โ€“5 is the useful range, start at 1, then test 2โ€“5 to find the sweet spot. There's no universal best; more passes push similarity but can over-process. Because of caching, experimenting is cheap.
  • max_chunk_duration (default 30s) and chunk_method (smart or fixed) - how long clips get split for processing. smart splits on natural pauses and is the better default; drop max_chunk_duration if you hit memory limits on long audio.

Outputs: converted_audio (to Preview/Save Audio) and conversion_info (a text log).

Installing it

Part of TTS Audio Suite. Easiest: ComfyUI Manager โ†’ search TTS Audio Suite โ†’ install โ†’ restart, which runs the pack's install.py and handles the dependency conflicts (NumPy, librosa, s3tokenizer) plus Python 3.13, including the RVC dependencies specifically. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/diodiogod/TTS-Audio-Suite.git, then python install.py from inside the folder with your ComfyUI venv active - run the script, not just pip install -r requirements.txt, or RVC won't be wired up. Linux: sudo apt-get install portaudio19-dev libsamplerate0-dev first. The repo ships a "Unified ๐Ÿ”„ Voice Changer - RVC X ChatterBox" example workflow; start from that.

Common issues

  • Nothing to convert with. Voice Changer needs an engine on TTS_engine. An โš™๏ธ RVC Engine here plus a .pth target is the standard RVC setup; without the engine there's no conversion method.
  • Over-processed, robotic result. Too many refinement_passes. Drop back toward 1โ€“3. More is not better past a point.
  • Pitch is wrong after an RVC convert. That's set on the โš™๏ธ RVC Engine (pitch in semitones), not here - a male-to-female or female-to-male swap usually needs ยฑ12. Fix it on the engine node.
  • Seams on long audio. Try chunk_method: smart so splits land on pauses, and lower max_chunk_duration.
  • Source performance leaks through. Voice conversion copies delivery faithfully, including mistakes and mouth noises. Clean the source first (๐Ÿค Voice Fixer) and act it the way you want it to sound.
CategoryTTS Audio Suite/๐ŸŽค Text to Speech

Inputs (6)

NameTypeDefaultDescription
TTS_engineTTS_ENGINETTS/VC engine configuration. Supports ChatterBox TTS Engine, CosyVoice Engine, and RVC Engine for voice conversion.
source_audio*The original voice audio you want to convert to sound like the target voice. Accepts AUDIO input or Character Voices node output.
narrator_target*The reference voice audio whose characteristics will be applied to the source audio. Accepts AUDIO input or Character Voices node output.
refinement_passesINT11โ€“30Number of conversion iterations. Each pass refines the output to sound more like the target. Recommended: Max 5 passes - more can cause distortions. Each iteration is deterministic to reduce degradation.
max_chunk_durationINT300โ€“300Maximum duration (in seconds) for each audio chunk. Prevents OOM on long audio. Set to 0 to disable chunking entirely. Chunks are rejoined with timing-preserving concatenation, so smart splitting is recommended for cleaner joins.
chunk_methodCOMBOsmartChunk split method: 'smart' cuts near silence and is recommended for cleaner boundaries, while 'fixed' cuts at exact intervals and may make joins more audible.

Outputs (2)

NameTypeDescription
converted_audioAUDIOโ€”
conversion_infoSTRINGโ€”