Voice Tools  /  OpenVoice
Voice Cloning · Open Source

OpenVoice

Instant voice cloning from MyShell. Give it a short recording of a speaker and it reproduces their tone of voice — then speaks new text in that voice, across languages, with control over emotion, accent, rhythm and intonation.

License
MIT · Commercial OK
Current version
V2 · April 2024
Native languages
6
Runs on
Your own hardware
What it does

Three things that set it apart

01

Accurate tone cloning

Captures the tone color of a reference speaker from a short clip and applies it to newly generated speech — no per-voice training required.

02

Flexible style control

Adjust emotion, accent, rhythm, pauses and intonation independently of the cloned voice itself.

03

Zero-shot cross-lingual

The reference voice and the output language don't need to match, and neither has to appear in the training data.

Where it fits

Good for

  • Narration and training content — keep one consistent, approved voice across videos and modules.
  • Localization — produce the same voice in English, Spanish, French, Chinese, Japanese and Korean.
  • Voice prototypes — test assistant or IVR voices before committing to a commercial service.
  • Private workloads — runs entirely on your own machine or server; audio never leaves it.
Know before you start

Considerations

  • Developer setup — it's a Python/PyTorch project, not a desktop app. Linux is the documented platform.
  • GPU recommended — an NVIDIA CUDA GPU is used when available; CPU works but is much slower.
  • Built-in watermark — the converter can embed an inaudible message in output audio to mark it as generated.
  • Consent matters — only clone voices you have explicit permission to use.
Versions

V1 and V2

OpenVoice V1

Released 2023 · used in production at MyShell since May 2023
  • Tone color cloning across languages and accents
  • Granular control of emotion, accent, rhythm and intonation
  • Zero-shot cross-lingual cloning

OpenVoice V2 Recommended

Released April 2024
  • Everything in V1
  • Better audio quality from an improved training strategy
  • Native English, Spanish, French, Chinese, Japanese and Korean
  • MIT licensed — free for commercial use
Quick start

Run V2 locally

Condensed from the project's official usage guide. Assumes Linux with conda installed.

Create an environment and install

conda create -n openvoice python=3.9
conda activate openvoice
git clone https://github.com/myshell-ai/OpenVoice.git
cd OpenVoice
pip install -e .

Download the V2 checkpoints

Unzip into a folder named checkpoints_v2 inside the repo.

curl -LO https://myshell-public-repo-host.s3.amazonaws.com/openvoice/checkpoints_v2_0417.zip
unzip checkpoints_v2_0417.zip

Install MeloTTS (the base speaker)

pip install git+https://github.com/myshell-ai/MeloTTS.git
python -m unidic download

Try the demo

Open demo_part3.ipynb in Jupyter for a full V2 walkthrough.

In code

Clone a voice in Python

MeloTTS speaks the text in a base voice, then OpenVoice's tone color converter reshapes it to sound like your reference speaker.

import torch
from openvoice import se_extractor
from openvoice.api import ToneColorConverter
from melo.api import TTS

device = "cuda:0" if torch.cuda.is_available() else "cpu"
ckpt = "checkpoints_v2/converter"

converter = ToneColorConverter(f"{ckpt}/config.json", device=device)
converter.load_ckpt(f"{ckpt}/checkpoint.pth")

# 1. Fingerprint the voice you want to clone
target_se, _ = se_extractor.get_se("reference.mp3", converter, vad=True)

# 2. Speak the text with a base English speaker
tts = TTS(language="EN", device=device)
speaker_id = tts.hps.data.spk2id["EN-US"]
tts.tts_to_file("Hello from The Templeton Group.", speaker_id, "base.wav", speed=1.0)

# 3. Convert the base voice into the target voice
source_se = torch.load("checkpoints_v2/base_speakers/ses/en-us.pth", map_location=device)
converter.convert(
    audio_src_path="base.wav",
    src_se=source_se,
    tgt_se=target_se,
    output_path="cloned.wav",
    message="@MyShell",  # watermark embedded in the output
)
Base speakers: other languages use ES, FR, ZH, JP or KR with the matching file in base_speakers/ses/.

Want OpenVoice running for your team?

We can set it up on your hardware or a private server and support it.

Talk to us