Installation
Requirements
- Linux, macOS (Apple Silicon or Intel) or Windows 10/11
- git
- Python 3.10+, or uv (recommended). uv downloads the right Python by itself.
To install uv:
# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Quick installation
Linux / macOS
git clone https://github.com/fakerybakery/openvoicelab && cd openvoicelab
./scripts/setup.sh
./scripts/run.shWindows
git clone https://github.com/fakerybakery/openvoicelab && cd openvoicelab
scripts\setup.bat
scripts\run.batThen open http://localhost:7860.
The setup script creates a venv/ folder containing the app. It installs the right PyTorch build for your machine (CUDA, ROCm or CPU) automatically.
Models are installed separately
Setup installs only the app, not the models. Each model family gets its own Python environment the first time you load it, or when you install it from the Models tab. This keeps models with conflicting dependencies from breaking each other. The first load of a model takes a few minutes, while its environment is installed and its weights are downloaded.
Manual installation
git clone https://github.com/fakerybakery/openvoicelab && cd openvoicelab
uv venv --python 3.12 venv
uv pip install --python venv/bin/python --torch-backend=auto -e .
venv/bin/openvoicelabOn Windows, use venv\Scripts\python.exe and venv\Scripts\openvoicelab.exe.
Installing models ahead of time
You can install model environments up front instead of on first load, for example on a server:
venv/bin/openvoicelab install kokoro qwen3_tts # or: install all
venv/bin/openvoicelab models # list models and their statusOr open the Models tab, choose a model family and click Install.
Launch options
./scripts/run.sh --port 8080 # different port
./scripts/run.sh --host 0.0.0.0 # reachable from other devices on your network
./scripts/run.sh --share # temporary public Gradio linkThe same options work with run.bat and with openvoicelab ui.
WARNING
--host 0.0.0.0 and --share let anyone who can reach the address use your GPU and see your voice library. TensorBoard (on the Training tab) only works on the machine running OpenVoiceLab.
Where things are stored
OpenVoiceLab writes everything into one folder: the directory you run it from, or the folder set in the OVL_HOME environment variable.
| Folder | Contents |
|---|---|
envs/ | One Python environment per installed model |
voices/ | Your voice library (audio clips plus .txt transcripts) |
outputs/ | Generated audio |
data/ | Datasets built on the Data tab |
training_runs/ | Fine-tuning runs and LoRA adapters |
logs/ | App log |
Model weights go in the regular Hugging Face cache (~/.cache/huggingface). To use gated models, log in with hf auth login.
Updating
./scripts/update.sh # scripts\update.bat on WindowsThis pulls the latest code and updates the app. When a model's pinned requirements change, its environment is refreshed automatically the next time you load it.
GPU notes
- NVIDIA: install a recent driver. PyTorch ships its own CUDA runtime, so you don't need the CUDA toolkit. If the footer of the app doesn't list your GPU, see Troubleshooting.
- Apple Silicon: models run on MPS automatically. Some models fall back to CPU because it's faster or more reliable there. The Models tab notes which ones.
- CPU only: everything works, but large models are slow. Kitten TTS, Pocket TTS and Kokoro are fast on CPU.
Next steps
👉 Quick Start: generate your first clip