Clone your voice locally with VoxCPM2. No data leaves your machine.
Record a few seconds of your voice, then generate speech in your voice from any text. Includes a full audiobook production mode for long-form content.
- Quick Clone -- Record or upload 5-10 seconds of your voice, type text, get speech output
- Audiobook Mode -- Load an EPUB or paste text, chunk it into chapters, generate and review audio per-chunk, export a stitched audiobook
- Crash recovery -- Audiobook progress (chunk audio and approvals) is saved as you go to
~/.voicecloner/audiobook_session/; "Resume Last Session" picks up after a crash or a closed tab - Voice Library -- Save and manage multiple cloned voices
- Style prompts -- Natural-language voice descriptions ("warm energetic podcast host") that condition the clone
- Export -- WAV, MP3, FLAC, M4A output formats (48 kHz studio quality)
- ACX / Audible export -- one MP3 per chapter, mastered to ACX spec (44.1 kHz mono, 192 kbps CBR, RMS -23..-18 dBFS, peak <= -3 dBFS, room tone head/tail) and checked; the export status lists PASS/FAIL per chapter
- Runs locally -- All inference happens on your machine (MPS/CUDA/CPU)
Requires Python 3.10-3.12 (VoxCPM2 doesn't support 3.13 yet).
git clone https://github.com/thegian7/voicecloner.git
cd voicecloner
./start.shstart.sh creates a virtual environment, installs dependencies, and launches the Gradio UI at http://localhost:7860.
Or manually:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app.pyThe Electron shell wraps the Gradio UI into a native desktop app with automatic Python/venv setup and GPU detection.
npm install
npm run dist:mac # or dist:win / dist:linuxThis bundles a standalone Python runtime (downloaded via npm run download-python) so end users don't need Python installed.
| Platform | Format | GPU Support |
|---|---|---|
| macOS | DMG (arm64 + x64) | MPS (Apple Silicon) |
| Windows | NSIS installer (x64) | CUDA, CPU |
| Linux | AppImage (x64) | CUDA, ROCm, CPU |
tts_server.py exposes an OpenAI-compatible /v1/audio/speech endpoint using your cloned voice (powered by VoxCPM2). Useful for integrating with other tools.
source .venv/bin/activate
python tts_server.py --voice "MyVoice" --port 8765A saved voice can carry a LoRA fine-tuned on that speaker with VoxCPM's own trainer.
A few hours of the speaker's natural speech gives a voice that is noticeably closer than a
clone from one reference clip. training/ has the pipeline: ingest
recordings, keep only the clips of the target speaker, train inside memory limits, and
compare checkpoints. Attach the checkpoint to a saved voice:
python -c 'from core.voices import attach_lora; attach_lora("MyVoice", "path/to/ckpt/step_0001000")'That copies lora_weights.safetensors and lora_config.json into
~/.voicecloner/voices/MyVoice/lora/. From then on, anything generated from that voice's
reference recording uses the LoRA, in the app, the TTS server, audiobooks and the CLI. The
first LoRA voice in a session rebuilds the model with LoRA layers (once, ~30 s); other voices
switch the LoRA off. Pass lora_path="" to create_clone_prompt to force a plain clone.
app.py # Main Gradio app (Quick Clone + Audiobook + Voices)
core/ # Shared TTS engine (model loading, generation, audio processing)
audiobook/ # Audiobook-specific logic (chapters, export, state)
electron/ # Electron desktop shell
python/ # Python files bundled into Electron builds
tts_server.py # Standalone TTS API server
start.sh # One-command launcher
- Apple Silicon Mac: Works out of the box via MPS. 16GB RAM recommended.
- NVIDIA GPU: CUDA 12.4+ with 8GB+ VRAM recommended.
- AMD GPU: ROCm 6.2+ supported.
- CPU: Works but slow. 32GB RAM recommended.
Models are downloaded from Hugging Face on first run (~5GB).