← Back to Home

OmniVoice Studio — The Open-Source ElevenLabs Alternative for Local Voice Cloning

OmniVoice Studio — The Open-Source ElevenLabs Alternative for Local Voice Cloning

If you've ever tried ElevenLabs, you know how impressive their voice cloning and text-to-speech quality is. But the pricing — $5 to $330 per month — and the fact that your audio goes through their cloud servers can be a dealbreaker for privacy-conscious users and developers.

Enter OmniVoice Studio: a free, open-source desktop app and Docker image that brings professional-grade voice cloning, text-to-speech (TTS), video dubbing, and speech-to-text (STT) entirely to your local machine. No API keys, no subscriptions, no data leaving your computer.

With 7294+ GitHub stars and growing fast, OmniVoice Studio supports 646 languages for TTS, 11 TTS engines, 8 ASR (speech recognition) engines, and includes features like speaker diarization, vocal isolation, and AI audio watermarking. And yes — you can self-host it with Docker.

Why Is It Trending?

Voice AI is exploding. Content creators, indie developers, accessibility teams, and game developers all need high-quality TTS and voice cloning — but the existing options are either expensive (ElevenLabs, PlayHT), locked to the cloud, or limited in language coverage.

OmniVoice fills a massive gap: it's the only open-source tool that combines:

  • Zero-shot voice cloning from a 3-second clip
  • 646 language TTS (ElevenLabs supports 32)
  • A full video dubbing pipeline (transcribe → translate → re-voice → export)
  • A desktop app and Docker self-hosting option
  • Built-in MCP server for use with Claude, Cursor, and other AI coding agents

Architecture Overview

OmniVoice Studio Architecture

The architecture is organized into six layers:

  1. Access Layer — Three entry points: the native desktop app (Tauri), a web browser pointing at a Docker-hosted backend, or an MCP client (Claude, Cursor)
  2. Frontend Layer — A React SPA with specialized tabs: Voice Console (clone/design), Dubbing Studio (transcribe/dub/export), Stories & Audio (multi-voice audiobooks), and Dictation (system-wide hotkey)
  3. API Layer — FastAPI backend with 100+ endpoints, SSE + WebSocket streaming for real-time progress, and SQLite for persistence
  4. Engine Layer — 11 TTS engines (OmniVoice, CosyVoice 3, GPT-SoVITS, VoxCPM2, etc.), 8 ASR engines (WhisperX, Faster-Whisper, MLX Whisper, etc.), Demucs source separation, Pyannote diarization, and AudioSeal watermarking
  5. Compute Layer — GPU auto-detection across CUDA (NVIDIA), MPS (Apple Silicon), ROCm (AMD), with automatic CPU fallback. No silent CPU fallback — engine routing checks GPU compatibility before dispatch
  6. Storage Layer — SQLite for projects/settings, voice persona bundles (.ovsvoice), and Hugging Face model cache (~2.4 GB on first run)

Prerequisites

  • Minimum: 8 GB RAM, 4 GB VRAM (auto-offloads TTS to CPU), 10 GB disk
  • Recommended: 16 GB RAM, 8 GB VRAM (NVIDIA RTX 3060+), 20 GB SSD
  • OS: Windows 10+, macOS 12+, Ubuntu 20.04+
  • Docker (for self-hosted mode)
  • GPU: Optional — CPU works, just slower

Setup

Option 1: Desktop App (macOS)

# Download the latest DMG from GitHub releases
# First launch: right-click → Open (or System Settings → Privacy & Security → "Open Anyway" on macOS 15)
# No Terminal needed — the app handles everything

Option 2: Docker Self-Hosted

# Pull the image
docker pull ghcr.io/debpalash/omnivoice-studio:latest

# Run (CPU mode)
docker run -d --name omnivoice \
  -p 127.0.0.1:3900:3900 \
  -v omnivoice-data:/app/omnivoice_data \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  ghcr.io/debpalash/omnivoice-studio:latest

Open http://localhost:3900. The first run downloads ~2.4 GB of model weights — follow the logs with docker logs -f omnivoice.

Option 3: Docker Compose (Recommended for Self-Hosting)

# Clone the repository
git clone https://github.com/debpalash/OmniVoice-Studio.git
cd OmniVoice-Studio

# CPU mode
docker compose -f deploy/docker-compose.yml --profile cpu up -d

# NVIDIA GPU mode
docker compose -f deploy/docker-compose.yml --profile gpu up -d

GPU Support

For NVIDIA GPU acceleration, ensure the NVIDIA Container Toolkit is installed:

docker run -d --name omnivoice --gpus all \
-p 127.0.0.1:3900:3900 \
-v omnivoice-data:/app/omnivoice_data \
-v ~/.cache/huggingface:/root/.cache/huggingface \
ghcr.io/debpalash/omnivoice-studio:latest

Configuration

LAN Access

To expose OmniVoice on your LAN (for homelab use), change the port mapping in docker-compose.yml from 127.0.0.1:3900:3900 to 0.0.0.0:3900:3900.

Security note: OmniVoice ships no authentication. On LAN, put it behind a reverse proxy with basic auth (Caddy, nginx + htpasswd) or a private network overlay like Tailscale.

Environment Variables

Variable Purpose Default
OMNIVOICE_BIND_HOST Backend bind address 127.0.0.1
OMNIVOICE_SERVER_MODE Relax loopback origin gate for Docker 1 (in Docker)
OMNIVOICE_PUBLIC_API_BASE Set API base URL for reverse proxy Same origin
HF_TOKEN Hugging Face token for gated models ***
OMNIVOICE_TTS_BACKEND Override default TTS engine omnivoice
OMNIVOICE_ASR_BACKEND Override default ASR engine whisperx

Persisting Data

Two volumes should be persisted across container restarts:

  • omnivoice-data:/app/omnivoice_data — Project DB, user voices, settings, encrypted HF token
  • ~/.cache/huggingface:/root/.cache/huggingface — Shared HF model cache (saves ~2.4 GB re-download)

Verification Checklist

After deployment, verify everything works:

  • Open http://localhost:3900 in a browser — the OmniVoice dashboard loads
  • The /health endpoint returns {"status": "ok", "device": "...", "version": "..."}:
    curl http://localhost:3900/health
  • Voice cloning works: upload a 3-second audio clip and generate speech
  • TTS works: type text and hear the synthesized voice
  • GPU is detected (if using GPU mode): check docker logs omnivoice for GPU info
  • ASR (speech-to-text) works: upload an audio file and verify transcription

Resources

← Retour à l'Accueil

OmniVoice Studio — L'Alternative Open-Source à ElevenLabs pour le Clonage Vocal Local

OmniVoice Studio — L'Alternative Open-Source à ElevenLabs pour le Clonage Vocal Local

Si vous avez déjà utilisé ElevenLabs, vous connaissez la qualité impressionnante de leur clonage vocal et de leur synthèse vocale. Mais le prix — 5 à 330 $ par mois — et le fait que votre audio passe par leurs serveurs cloud peuvent être rédhibitoires pour les utilisateurs soucieux de leur vie privée et les développeurs.

Voici OmniVoice Studio : une application de bureau open-source et une image Docker gratuite qui apporte le clonage vocal professionnel, la synthèse vocale (TTS), le doublage vidéo et la reconnaissance vocale (STT) entièrement sur votre machine locale. Pas de clés API, pas d'abonnement, pas de données quittant votre ordinateur.

Avec plus de 7294 étoiles GitHub et une croissance rapide, OmniVoice Studio prend en charge 646 langues pour la TTS, 11 moteurs TTS, 8 moteurs ASR (reconnaissance vocale), et inclut des fonctionnalités comme la diarisation des locuteurs, l'isolation vocale et le tatouage audio IA. Et oui — vous pouvez l'auto-héberger avec Docker.

Pourquoi Est-Il Tendance ?

L'IA vocale explose. Les créateurs de contenu, les développeurs indépendants, les équipes d'accessibilité et les développeurs de jeux ont tous besoin de TTS et de clonage vocal de haute qualité — mais les options existantes sont soit chères (ElevenLabs, PlayHT), verrouillées dans le cloud, ou limitées en couverture linguistique.

OmniVoice comble un énorme vide : c'est le seul outil open-source qui combine :

  • Le clonage vocal zero-shot à partir d'un clip de 3 secondes
  • La TTS en 646 langues (ElevenLabs en supporte 32)
  • Un pipeline complet de doublage vidéo (transcrire → traduire → voix → exporter)
  • Une application de bureau et une option d'auto-hébergement Docker
  • Un serveur MCP intégré pour Claude, Cursor et autres agents IA

Architecture

Architecture d'OmniVoice Studio

L'architecture est organisée en six couches :

  1. Couche d'accès — Trois points d'entrée : l'application de bureau (Tauri), un navigateur web pointant vers un backend Docker, ou un client MCP (Claude, Cursor)
  2. Couche frontend — Une SPA React avec des onglets spécialisés : Console vocale (clonage/création), Studio de doublage (transcription/doublage/exportation), Histoires & Audio (livres audio multi-voix), et Dictée (raccourci système)
  3. Couche API — Backend FastAPI avec plus de 100 endpoints, streaming SSE + WebSocket pour les progrès en temps réel, et SQLite pour la persistance
  4. Couche moteurs — 11 moteurs TTS (OmniVoice, CosyVoice 3, GPT-SoVITS, VoxCPM2, etc.), 8 moteurs ASR (WhisperX, Faster-Whisper, MLX Whisper, etc.), séparation de sources Demucs, diarisation Pyannote et tatouage AudioSeal
  5. Couche calcul — Détection automatique du GPU via CUDA (NVIDIA), MPS (Apple Silicon), ROCm (AMD), avec repli CPU automatique. Pas de repli CPU silencieux — le routage des moteurs vérifie la compatibilité GPU avant l'envoi
  6. Couche stockage — SQLite pour les projets/paramètres, bundles de personnalités vocales (.ovsvoice), et cache de modèles Hugging Face (~2,4 Go au premier lancement)

Prérequis

  • Minimum : 8 Go RAM, 4 Go VRAM (décharge automatique TTS vers CPU), 10 Go disque
  • Recommandé : 16 Go RAM, 8 Go VRAM (NVIDIA RTX 3060+), 20 Go SSD
  • OS : Windows 10+, macOS 12+, Ubuntu 20.04+
  • Docker (pour le mode auto-hébergé)
  • GPU : Optionnel — le CPU fonctionne, mais plus lentement

Installation

Option 1 : Application de Bureau (macOS)

# Téléchargez le DMG depuis les releases GitHub
# Premier lancement : clic droit → Ouvrir (ou Réglages système → Confidentialité → "Ouvrir quand même" sur macOS 15)
# Pas besoin de Terminal — l'application gère tout

Option 2 : Auto-Hébergement Docker

# Tirez l'image
docker pull ghcr.io/debpalash/omnivoice-studio:latest

# Lancez (mode CPU)
docker run -d --name omnivoice \
  -p 127.0.0.1:3900:3900 \
  -v omnivoice-data:/app/omnivoice_data \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  ghcr.io/debpalash/omnivoice-studio:latest

Ouvrez http://localhost:3900. Le premier téléchargement prend ~2,4 Go de poids de modèles — suivez les logs avec docker logs -f omnivoice.

Option 3 : Docker Compose (Recommandé)

# Clonez le dépôt
git clone https://github.com/debpalash/OmniVoice-Studio.git
cd OmniVoice-Studio

# Mode CPU
docker compose -f deploy/docker-compose.yml --profile cpu up -d

# Mode GPU NVIDIA
docker compose -f deploy/docker-compose.yml --profile gpu up -d

Support GPU

Pour l'accélération GPU NVIDIA, installez le NVIDIA Container Toolkit :

docker run -d --name omnivoice --gpus all \
-p 127.0.0.1:3900:3900 \
-v omnivoice-data:/app/omnivoice_data \
-v ~/.cache/huggingface:/root/.cache/huggingface \
ghcr.io/debpalash/omnivoice-studio:latest

Configuration

Accès Réseau Local

Pour exposer OmniVoice sur votre réseau local (usage homelab), modifiez le mappage de port dans docker-compose.yml de 127.0.0.1:3900:3900 à 0.0.0.0:3900:3900.

Note de sécurité : OmniVoice n'intègre pas d'authentification. Sur le réseau local, placez-le derrière un proxy inverse avec authentification (Caddy, nginx + htpasswd) ou un overlay réseau privé comme Tailscale.

Variables d'Environnement

Variable Rôle Défaut
OMNIVOICE_BIND_HOST Adresse de liaison du backend 127.0.0.1
OMNIVOICE_SERVER_MODE Relaxer la restriction d'origine pour Docker 1 (Docker)
OMNIVOICE_PUBLIC_API_BASE Définir l'URL de base API pour proxy inverse Même origine
HF_TOKEN Token Hugging Face pour modèles restreints ***
OMNIVOICE_TTS_BACKEND Moteur TTS par défaut omnivoice
OMNIVOICE_ASR_BACKEND Moteur ASR par défaut whisperx

Persistance des Données

Deux volumes doivent être persistés entre les redémarrages du conteneur :

  • omnivoice-data:/app/omnivoice_data — Base de données projets, voix utilisateur, paramètres, token HF chiffré
  • ~/.cache/huggingface:/root/.cache/huggingface — Cache de modèles HF partagé (économise ~2,4 Go de retéléchargement)

Utilisation

Clonage Vocal

  1. Ouvrez l'application ou http://localhost:3900
  2. Allez dans l'onglet Voice Console
  3. Déposez un clip audio de 3 secondes (parole uniquement)
  4. Choisissez une langue parmi les 646 disponibles
  5. Tapez ou collez le texte à synthétiser
  6. Cliquez sur Générer — la voix clonée parle immédiatement

Doublage Vidéo

  1. Allez dans l'onglet Dubbing Studio
  2. Importez une vidéo ou collez une URL YouTube
  3. Sélectionnez la langue source et la langue cible
  4. Choisissez une voix pour le doublage
  5. Cliquez sur Démarrer — le pipeline transcrit, traduit, synthétise et exporte automatiquement

Vérification

  • Ouvrez http://localhost:3900 — le tableau de bord OmniVoice se charge
  • Le endpoint /health retourne {"status": "ok", "device": "...", "version": "..."} :
    curl http://localhost:3900/health
  • Le clonage vocal fonctionne : téléchargez un clip de 3 secondes et générez de la parole
  • La TTS fonctionne : tapez du texte et écoutez la voix synthétisée
  • Le GPU est détecté (mode GPU) : vérifiez docker logs omnivoice

Ressources