Nodes/ComfyUI OpenVoice/Open Voice STS
ComfyUI Node

Open Voice STS

Re-voice an existing recording without retraining a thing

By hay86·Created 2 years ago·Updated 2 years ago· 20
Open Voice STS
    • AUDIO
    • SAMPLE_RATE
    src_voice
    ref_voice

    Hand it two clips, get the first one sounding like the second

    Open Voice STS is the pack's speech-to-speech node, and it's almost insultingly simple to use: give it a source recording and a reference voice, and it re-voices the source so it sounds like the reference. No text box, no style picker, no retraining. The words don't change - the timbre does. If you've ever wanted to take an existing narration or dialogue and make it come out of a different character's mouth, this is the node that does it in one pass.

    It sits neatly next to Open Voice TTS in the same pack (hay86's unofficial port of MyShell's OpenVoice): TTS turns text into speech in a cloned voice, STS takes a finished recording and re-voices it. That distinction matters when you're planning a workflow - for a talking-head video you usually want TTS, but for dubbing an existing clip, STS is the one that keeps your original pacing, pauses, and delivery intact.

    How it works

    Where the TTS node runs a whole text-to-speech stage, STS is pure conversion. It extracts a speaker embedding from both clips using a VAD-based extractor, then runs the audio through a tone color converter that transfers the source's timbre toward the target's. The source recording is used as-is - its prosody, its content, even its cross-lingual character - so an English clip you recorded can come out sounding like a speaker who's fluent in another language. That's OpenVoice's cross-lingual party trick, and it requires no extra models. One thing worth knowing: like the rest of OpenVoice, it clones tone color, not accent or emotion, and every output carries a hidden @MyShell watermark.

    The inputs that matter

    There are exactly two, and both are the same kind of thing:

    • src_voice - the recording you want re-voiced.
    • ref_voice - the voice you want it to sound like.

    Both are dropdowns populated from audio files (wav, mp3, flac) in your ComfyUI/input folder. That's the whole node. The outputs are AUDIO (a list of raw samples) and SAMPLE_RATE (an INT); the pack's example workflow wires them into ComfyUI's built-in ACE_AudioSave and ACE_AudioPlay nodes to write a WAV or preview it.

    Installing it

    Same as its sibling - ComfyUI Manager, search openvoice, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/hay86/ComfyUI_OpenVoice
    sudo apt install ffmpeg
    pip install -r requirements.txt
    

    Restart and you're done. ffmpeg is a hard requirement (the audio stack depends on it), and the models auto-download from Hugging Face on first run into models/openovice - misspelled in the source on purpose, don't "fix" it. The requirements list is on the heavy side (librosa, faster-whisper, whisper-timestamped, pydub), but nothing exotic, and the first-run download is one-time.

    Common issues

    • Reference quality rules everything. OpenVoice's own FAQ is blunt: clean audio, one speaker, no background noise, not too short, no long silent gaps. A bad reference gives you a bad clone, and no amount of fiddling fixes it.
    • The source clip's problems come through. STS only converts the timbre - noise, reverb, and artifacts in the source survive the conversion and get plastered over your target voice. Clean the source too.
    • New files need a node refresh. The dropdowns are built by scanning input/ when the node loads, so drop your files in before adding the node, or re-add it afterward.
    • First run looks frozen. Model download plus VAD setup happens silently; give it a minute. On machines that can't reach GitHub, the Silero VAD download can fail - OpenVoice's FAQ has the manual fix.

    The honest take

    For casual voice conversion this is about as zero-config as it gets - RVC-style tools give you heavier, higher-fidelity conversion but come with training pipelines and fiddly config. STS trades some polish for "it just works in one node." It's not production-grade (and the field has moved on to Chatterbox and friends), but for a quick character swap or a dub experiment it's the fastest thing on the shelf.

    CategoryOpenVoice

    Inputs (2)

    NameTypeDefaultDescription
    src_voiceCOMBO0 options:
    ref_voiceCOMBO0 options:

    Outputs (2)

    NameTypeDescription
    AUDIO*
    SAMPLE_RATEINT