How to run OpenVoice on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install OpenVoice from the official myshell-ai/OpenVoice repository, download the V1 or V2 checkpoint zip that docs/USAGE.md links, and run the notebook that file names. Copy the wav files off the instance before you destroy it, because destroying the instance deletes its disk.

Other speech pages: How to run MeloTTS on a cloud GPU, How to run XTTS-v2 on a cloud GPU, How to run RVC voice conversion on a cloud GPU, and How to run Kokoro TTS on a cloud GPU. The MeloTTS README prints no GPU GB figure. The RVC README prints no GB figure. The XTTS-v2 model card publishes no GPU GB figure. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. The tunnel for the Gradio demo is How to use SSH port forwarding on a cloud GPU. Zero-shot voice conversion from a different repository: How to run Seed-VC voice conversion on a cloud GPU.

Clone a voice only when you have the rights and the speaker’s consent. The repository LICENSE file is the MIT License. Its first line is Copyright 2024 MyShell.ai. The README license section says OpenVoice V1 and V2 are MIT licensed. The GitHub license field on 2026-11-13 was MIT. Read the LICENSE file before you redistribute the program.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the README says about memory

The README, docs/USAGE.md, docs/QA.md, and requirements.txt print no GPU GB figure. demo_part1.ipynb and demo_part3.ipynb set device to cuda:0 when CUDA is available and otherwise to cpu. Those lines are not a GPU GB figure. This page did not measure them.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T08:10:03.664Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T08:10:04.454Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. There is no upstream GPU GB figure to match these values against. How published FLUX and SDXL weight sizes are read: How much VRAM do I need for FLUX and SDXL. Those sizes are not a figure from this repository. This page did not run OpenVoice and does not mark a row as enough. Which listing you can start is on Deploy.

The catalog template list had no OpenVoice template.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install V1 and V2

On Deploy, choose Raw GPU. docs/USAGE.md says the Linux section is the same for V1 and V2. The block, copied. It uses the SSH clone URL the file prints.

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

setup.py sets name to MyShell-OpenVoice, version to 0.0.0, license to MIT License, and python_requires to >=3.9. requirements.txt pins librosa==0.9.1, faster-whisper==0.9.0, pydub==0.25.1, wavmark==0.0.3, numpy==1.22.0, eng_to_ipa==0.0.2, inflect==7.0.0, unidecode==1.3.7, whisper-timestamped==1.14.2, pypinyin==0.50.0, cn2an==0.5.22, jieba==0.42.1, gradio==3.48.0, and langid==1.1.6. It also lists python-dotenv with no version, and one more line this page does not print because the package name is a closed-model vendor. Copy that line from requirements.txt. setup.py install_requires omits whisper-timestamped, python-dotenv, and that unprinted line. The file does not pin torch. The commits API for the default branch main listed 74a1d147b17a8c3092dd5430504bd83ef6c7eb23, committed 2025-04-19T15:59:59Z. The README was 697d04d3d2498907ab8b396560734041bf8cd333, committed 2024-12-24T19:16:22Z. docs/USAGE.md was 2739f7dfc06f8131ca1e53c73d56985014599e76, committed 2024-07-06T00:21:18Z. requirements.txt was c87e6f6d71b9ab518aff1b70f300f216ee667d50, committed 2024-02-29T22:39:36Z. setup.py was 242acaf2cd4ad28a8d8760589cf919cdc9efedbd, committed 2024-04-27T15:37:37Z. This page did not install the package.

The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. requirements.txt does not pin a torch build. This page did not install a wheel and did not re-test OpenVoice on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

Checkpoints, languages, and the notebooks

V1: docs/USAGE.md says to download the checkpoint from https://myshell-public-repo-host.s3.amazonaws.com/openvoice/checkpoints_1226.zip and extract it to the checkpoints folder. The file does not print an unzip command. It then points at demo_part1.ipynb for style control and demo_part2.ipynb for cross-lingual cloning.

demo_part1.ipynb sets ckpt_base to checkpoints/base_speakers/EN, ckpt_converter to checkpoints/converter, and output_dir to outputs. It loads checkpoint.pth from each of those directories, loads en_default_se.pth or en_style_se.pth, and writes outputs/output_en_default.wav or outputs/output_whispering.wav. The Chinese cells switch ckpt_base to checkpoints/base_speakers/ZH, load zh_default_se.pth, and write outputs/output_chinese.wav. The base-speaker calls use speaker='default' or speaker='whispering', language='English' or language='Chinese', and speed 1.0 or 0.9. encode_message in those cells is @MyShell. The commits API listed demo_part1.ipynb at 8b715b5b967f90913f0adb4e6b778b929da473cc (2024-04-17T21:08:27Z). This page did not run the notebook. Open it in JupyterLab on the instance.

openvoice/openvoice_app.py lists English styles as default, whispering, shouting, excited, cheerful, terrified, angry, sad, and friendly. It says Chinese style should be default. Its supported_languages list is zh and en. The comment above the demo says the online demo mainly supports English and Chinese.

The README says OpenVoice V2 natively supports English, Spanish, French, Chinese, Japanese, and Korean. The Quick Use section of docs/USAGE.md links hosted pages labeled British English, American English, Indian English, Australian English, Spanish, French, Chinese, Japanese, and Korean. This page documents the Linux install, not those hosted pages.

V2: download https://myshell-public-repo-host.s3.amazonaws.com/openvoice/checkpoints_v2_0417.zip and extract it to the checkpoints_v2 folder. Then the MeloTTS lines, copied:

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

docs/USAGE.md points V2 usage at demo_part3.ipynb. That notebook sets ckpt_converter to checkpoints_v2/converter and output_dir to outputs_v2. Its text keys are EN_NEWEST, EN, ES, FR, ZH, JP, and KR. For each speaker id it loads checkpoints_v2/base_speakers/ses/{speaker_key}.pth and writes outputs_v2/output_v2_{speaker_key}.wav. The commits API listed demo_part3.ipynb at 9574bfe70f94afe28ec58fd5a80c92b973fb0fc9 (2025-04-19T04:36:35Z). This page did not run it. The MeloTTS install on its own is How to run MeloTTS on a cloud GPU.

demo_part2.ipynb has a cell that constructs a client and writes a base-speaker file under outputs/. This page does not copy that cell, because it names a closed-model vendor and an API key. Copy it from the notebook if you use that route. The inference cell writes outputs/output_crosslingual_{i}.wav. docs/QA.md says OpenVoice supports any language as long as you have a base speaker in that language. The next sentence in that answer names a closed-model vendor. Copy that sentence from docs/QA.md. This page does not print it. The commits API listed demo_part2.ipynb at 8b715b5b967f90913f0adb4e6b778b929da473cc (2024-04-17T21:08:27Z) and docs/QA.md at 797b31c5d38388d131f7d4ffb3028c9fbd75d0ed (2024-02-02T00:39:21Z).

Gradio

docs/USAGE.md prints python -m openvoice_app --share. There is no openvoice_app.py at the repository root. setup.py installs the openvoice package and does not add a top-level module alias. The command in the block is added on this page so Python imports openvoice.openvoice_app. This page did not run it.

# docs/USAGE.md prints: python -m openvoice_app --share
# There is no openvoice_app.py at the repository root. This line is added on this page.
python -m openvoice.openvoice_app --share

The script’s --share help string is make link public, and the default is False. demo.launch is called with debug=True, show_api=True, and share=args.share. It does not pass a host or a port, so this page does not name one. The script writes outputs/tmp.wav and outputs/output.wav. The commits API listed openvoice/openvoice_app.py at 41aaecdcebeabb30ac383a67c1f140b7303b63f4 (2024-02-14T03:45:40Z). If the process prints a local URL, forward that port with how to use SSH port forwarding on a cloud GPU.

The README does not name ComfyUI. The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this project. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3, committed 2025-11-26T20:33:58Z. This page does not add a ComfyUI install. docs/USAGE.md also links unofficial Windows and Docker guides by other people. This page does not copy those guides.

When it fails

CUDA out of memory. The files named above print no GPU GB cutoff. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. See the install section. This page did not re-test the package on that card.

Silero download. docs/QA.md says get_vad_segments in se_extractor.py downloads https://github.com/snakers4/silero-vad/zipball/master into /home/user/.cache/torch/hub/master.zip, and that a machine which cannot access that host should unzip the file to /home/user/.cache/torch/hub/snakers4_silero-vad_master.

Accent and emotion. docs/QA.md says OpenVoice clones the tone color of the reference speaker and does not clone the accent or emotion. Accent and emotion come from the base speaker TTS model.

Save the audio, then destroy

Copy outputs/*.wav from the V1 notebook or Gradio app, or outputs_v2/output_v2_{speaker_key}.wav from the V2 notebook, before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Frequently asked questions

How much VRAM does the OpenVoice README publish?

The OpenVoice README, docs/USAGE.md, docs/QA.md, and requirements.txt do not print a GPU GB figure. demo_part1.ipynb and demo_part3.ipynb set device to cuda:0 when CUDA is available and otherwise to cpu. Catalog RTX 2080 is 8. This page does not mark a catalog vram_gb as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Which install, checkpoint, and languages does the repository document?

docs/USAGE.md uses one Linux install for V1 and V2: conda python 3.9, the SSH clone URL, and pip install -e . V1 extracts checkpoints_1226.zip into checkpoints and points at demo_part1.ipynb and demo_part2.ipynb. V2 extracts checkpoints_v2_0417.zip into checkpoints_v2, installs MeloTTS, and points at demo_part3.ipynb. The README says V2 natively supports English, Spanish, French, Chinese, Japanese, and Korean. The V2 notebook text keys are EN_NEWEST, EN, ES, FR, ZH, JP, and KR.

Where are the wav files saved, and which command starts Gradio?

demo_part1.ipynb writes outputs/output_en_default.wav, outputs/output_whispering.wav, and outputs/output_chinese.wav. demo_part3.ipynb writes outputs_v2/output_v2_{speaker_key}.wav. docs/USAGE.md prints python -m openvoice_app --share. There is no openvoice_app.py at the repository root. This page adds python -m openvoice.openvoice_app --share. demo.launch does not pass a host or a port. The script writes outputs/output.wav. This page did not start the demo.

Which license covers OpenVoice?

The LICENSE file is the MIT License and its first line is Copyright 2024 MyShell.ai. The README says OpenVoice V1 and V2 are MIT licensed. The GitHub license field on 2026-11-13 was MIT. The README says Free for commercial use and the LICENSE grant says free of charge. That wording is the upstream license, not a CloudGPU price and not a storage allowance. Read the LICENSE file before you redistribute the program.

Sources (read 2026-11-13, Asia/Shanghai)

  • OpenVoice README (V2 language list, MIT license section): https://github.com/myshell-ai/OpenVoice/blob/main/README.md commit 697d04d3d2498907ab8b396560734041bf8cd333. Repository HEAD 74a1d147b17a8c3092dd5430504bd83ef6c7eb23, committed 2025-04-19T15:59:59Z
  • docs/USAGE.md (Linux install, checkpoint zip URLs, notebook names, python -m openvoice_app --share): commit 2739f7dfc06f8131ca1e53c73d56985014599e76. This page adds python -m openvoice.openvoice_app --share
  • docs/QA.md (tone color versus accent, Silero path, base-speaker sentence this page does not print): commit 797b31c5d38388d131f7d4ffb3028c9fbd75d0ed
  • demo_part1.ipynb and demo_part2.ipynb: commit 8b715b5b967f90913f0adb4e6b778b929da473cc
  • demo_part3.ipynb (V2 speaker keys and outputs_v2 paths): commit 9574bfe70f94afe28ec58fd5a80c92b973fb0fc9
  • openvoice/openvoice_app.py (styles, supported_languages zh and en, demo.launch with no host or port, outputs/output.wav): commit 41aaecdcebeabb30ac383a67c1f140b7303b63f4
  • requirements.txt and setup.py: commits c87e6f6d71b9ab518aff1b70f300f216ee667d50 and 242acaf2cd4ad28a8d8760589cf919cdc9efedbd
  • LICENSE (MIT, Copyright 2024 MyShell.ai): commit 8b715b5b967f90913f0adb4e6b778b929da473cc. GitHub license field MIT
  • ComfyUI examples top-level directories (no OpenVoice directory): https://github.com/comfyanonymous/ComfyUI_examples commit f9431bb000ce792094ff345446e22cac1ea6cef3
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T08:10:03.664Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-13T08:10:04.454Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list. The catalog had no OpenVoice template

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).