Voice Studio

Configuration

Settings, environment variables, and per-engine defaults.

Configuration is sourced, in order of precedence, from CLI flags, environment variables, and a backend/.env file. Variable names are the setting name in upper case (case-insensitive). Create backend/.env for persistent local config:

# backend/.env
DEVICE=cuda
DEFAULT_ENGINE=kokoro
MAX_TEXT_CHARS=8000
CACHE_MAX_ENTRIES=1000

Common settings

VariableDefaultDescription
DEVICEautoauto / cuda / cpu / mps
DEFAULT_ENGINEvibevoiceEngine activated on first run
HOST0.0.0.0Bind host
PORT8880Bind port
LOG_LEVELinfodebug / info / warning / error

Directories

VariableDefaultDescription
MODELS_DIRbackend/modelsHugging Face weight cache
CACHE_DIRbackend/cacheSynthesized-audio cache
VOICES_DIRbackend/voicesBuilt-in reference voices
UPLOADS_DIRbackend/uploadsUploaded voices

Cache & limits

VariableDefaultDescription
CACHE_ENABLEDtrueTurn the synthesis cache on/off
CACHE_MAX_ENTRIES500LRU bound before eviction
MAX_TEXT_CHARS5000Max characters per request (see below)
SYNTH_TIMEOUT_S600Per-request synthesis timeout

Speech-to-text (Whisper)

VariableDefaultDescription
ASR_MODEL_IDopenai/whisper-large-v3-turboASR model
ASR_MAX_UPLOAD_MB100Max upload size
ASR_MAX_DURATION_SEC3600Max clip length

Per-engine defaults

Each engine's model id and defaults are overridable too — e.g. KOKORO_LANG_CODE, CHATTERBOX_MODEL_ID, CHATTERBOX_DEFAULT_CFG_WEIGHT, CHATTERBOX_DEFAULT_EXAGGERATION, OMNIVOICE_MODEL_ID, VOXCPM_MODEL_ID, VOXCPM_INFERENCE_TIMESTEPS, QWEN_MODEL_ID, and DEFAULT_CFG_SCALE.

Text length

MAX_TEXT_CHARS caps a single synthesis request at 5,000 characters by default, counted across the whole script. It's enforced for every engine, and over-limit requests return a 400:

MAX_TEXT_CHARS=10000

This is an input guardrail, not a model context window — multi-line scripts are split per line before synthesis, so it bounds total input rather than what any single model processes at once. Very large values can risk out-of-memory errors on smaller GPUs.

Many of these map to CLI flags too.

On this page