Command Line
Everything in the web UI can also be done from the terminal with the openvoicelab command. It's installed in the app's environment, so run it as venv/bin/openvoicelab (venv\Scripts\openvoicelab on Windows), or activate the venv first.
Commands
bash
openvoicelab # launch the web UI (same as `openvoicelab ui`)
openvoicelab ui [--host HOST] [--port PORT] [--share] [--debug]
openvoicelab models # list model families, install status and checkpoints
openvoicelab install <id> ... # install model environments (or `install all`)
openvoicelab install <id> --reinstall
openvoicelab tts <id> "text" [options]Model family ids: vibevoice, qwen3_tts, voxcpm, chatterbox, omnivoice, echo_tts, moss_tts, kitten_tts, pocket_tts, kokoro.
tts options
| Option | Description |
|---|---|
--model | Checkpoint: a Hugging Face repo id or local path (defaults to the family's first checkpoint) |
--voice | Preset voice name; repeat it for multiple speakers |
--ref | Reference audio for cloning; repeat it for multiple speakers |
--ref-text | Transcript of each --ref clip, in the same order |
--design | Voice description, for voice-design models |
--instruct | Style or emotion instruction |
--language | Language name, e.g. English |
--seed | Random seed |
--param key=value | A model-specific parameter (the value is parsed as JSON); repeatable |
--lora | LoRA adapter path (VibeVoice) |
--device | auto (default), cuda, mps or cpu |
-o, --output | Output WAV path (defaults to outputs/) |
Examples
bash
# Preset voice
openvoicelab tts kokoro "Hello there" --voice af_heart -o hello.wav
# Clone a voice (some models want the clip's transcript too)
openvoicelab tts qwen3_tts "Hello there" --model Qwen/Qwen3-TTS-12Hz-1.7B-Base \
--ref my_voice.wav --ref-text "What I say in the clip." -o clone.wav
# Describe a voice
openvoicelab tts voxcpm "Hello there" --design "A warm, older British man" -o design.wav
# Style instruction with a preset
openvoicelab tts qwen3_tts "I can't believe it worked!" \
--model Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --voice Ryan --instruct "Very happy" -o happy.wav
# Dialogue: one --ref (or --voice) per speaker
openvoicelab tts vibevoice "$(cat script.txt)" \
--ref ovl/voices/Alice.wav --ref ovl/voices/Carter.wav -o podcast.wav
# Model-specific parameters
openvoicelab tts echo_tts "Hello there" --ref my_voice.wav --param num_steps=20 --seed 42Each run loads the model, generates the clip, and unloads the model again. For many clips in a row, the web UI is faster because the model stays loaded.