Getting Started with OmniVoice-Studio
OmniVoice Studio is a free, open-source, locally-run voice AI desktop app supporting 646 languages, no API key required. This article covers the full installation process across macOS, Windows, and Linux, system requirements, Hugging Face token setup, and voice cloning.
--> Getting Started with OmniVoice-Studio - KDnuggets
-->
Join Newsletter
Introduction
You paste a paragraph of text into ElevenLabs, press Generate, and watch the character counter tick down. The free tier is gone before you finish testing. The Creator plan is $22 a month. The Pro plan is $99. And every audio file you generate leaves your machine and ends up on their servers, which matters the moment your content is sensitive, proprietary, or simply yours.
OmniVoice Studio is built on a different premise: everything runs on your hardware. Voice cloning, video dubbing, real-time dictation, voice design — all of it local, all of it free for personal use, no API key required, no usage counter. The project describes itself as "the open-source ElevenLabs alternative," and that's accurate, though the language coverage alone makes the comparison interesting: ElevenLabs supports 32 languages. OmniVoice Studio supports 646.
The project has accumulated 7.1k GitHub stars and 1.1k forks. The latest release, v0.2.7, shipped May 3, 2026, includes pre-built installers for macOS, Windows, and Linux. This article covers the full path from install to your first generated audio.
Beta notice: OmniVoice Studio is in active beta. Things can break between releases. For the most current fixes, cloning from source and running bun run desktop-prod is the recommended path over pre-built installers.
What OmniVoice Studio Is and Why It Was Built
The simplest framing is this: OmniVoice Studio gives you a professional voice AI desktop app that never phones home. No accounts, no subscriptions, no cloud calls during inference. Your reference audio, your scripts, your generated files — they stay on your machine.
Here is how the feature set and pricing compare directly to ElevenLabs:
Feature ElevenLabs OmniVoice Studio
Pricing $5–$330/month, per-character billing Free for personal use
Voice Cloning 3-second clip 3-second clip, zero-shot
Voice Design Gender, age Gender, age, accent, pitch, style, dialect
Languages 32 646
Video Dubbing Cloud-only Fully local
Data Privacy Audio sent to the cloud Nothing leaves your machine
API Keys Required Not needed
GPU Support N/A (cloud) CUDA, Apple Silicon MPS, AMD ROCm, CPU
Desktop App No macOS, Windows, Linux
Under the hood, OmniVoice Studio is a Tauri desktop application — a Rust-based framework that wraps a React frontend and a FastAPI backend with 97 API endpoints. Persistent state lives in SQLite. The AI pipeline is built on four open-source components that do the actual work:
WhisperX handles transcription, word-level speech recognition, and alignment.
Demucs (from Meta) handles vocal isolation, separating speech from music and background noise.
OmniVoice from k2-fsa is the zero-shot diffusion text-to-speech (TTS) engine — the model that makes cloning work from a 3-second clip across 646 languages.
Pyannote handles speaker diarization, identifying who said what in a multi-speaker recording, which is what makes automatic voice assignment in the dubbing pipeline possible.
GPU acceleration is auto-detected at launch. You don't configure anything: OmniVoice reads your hardware and routes accordingly to CUDA (NVIDIA), MPS (Apple Silicon), ROCm (AMD), or CPU. If you have under 8 GB VRAM, the TTS model offloads to the CPU automatically during transcription. The pipeline still runs, just slower.
System Requirements
Before installing, check that your machine meets the minimum specs. The app will run below these, but you will notice it.
Component Minimum Recommended
OS Windows 10 (21H2+), macOS 12+, Ubuntu 20.04+ Any modern 64-bit OS
RAM 8 GB 16 GB+
VRAM 4 GB (TTS auto-offloads to CPU if less) 8 GB+ (NVIDIA RTX 3060+)
Disk 10 GB free (models + cache) 20 GB+ SSD
Python 3.10+ (managed by uv) 3.11–3.12
GPU Optional (CPU works) NVIDIA CUDA, Apple Silicon MPS, AMD ROCm
One thing worth knowing: you do not need a GPU to use OmniVoice Studio. The entire pipeline runs on CPU. TTS synthesis is roughly 3x slower without a GPU, and transcription of long videos will take longer, but for short voice clones and dictation, the CPU path is perfectly usable. Apple Silicon Macs are the sweet spot for GPU-less users; the app automatically picks MLX-optimized Whisper and TTS backends that use the Apple Neural Engine and Metal Performance Shaders, giving roughly 2x the throughput of the CPU path.
Installing OmniVoice Studio
Pick the section for your operating system and follow it from top to bottom. The install sequence is the same across platforms: clone, install frontend dependencies with Bun, and launch. The differences are in the prerequisites.
// Installing on macOS
Prerequisites:
macOS 12 (Monterey) or newer — Apple Silicon or Intel
Python 3.11+
Bun (the JavaScript runtime used to build the frontend)
Xcode Command Line Tools
FFmpeg
Install them in order:
1. Install Python via Homebrew (or use pyenv if you manage multiple versions)
brew install [email protected]
2. Install Bun
curl -fsSL https://bun.sh/install | bash
3. Install Xcode Command Line Tools
xcode-select --install
4. Install FFmpeg (used by the dubbing and capture pipelines)
brew install ffmpeg
Then clone and run:
Clone the repository
git clone https://github.com/debpalash/OmniVoice-Studio.git cd OmniVoice-Studio
Install frontend dependencies
bun install
Launch the app
bun run desktop-prod
The first launch is slower than every subsequent one. It builds the Tauri shell, creates the Python virtual environment via uv, syncs all Python dependencies, and downloads model weights — approximately 2.4 GB. The splash screen shows live progress for each step. Once it completes, the full UI opens.
Pre-built DMG users: Download the latest DMG from the Releases page, mount it, and drag OmniVoice Studio into /Applications. If the first launch shows "app is damaged and can't be opened," that is macOS Gatekeeper reacting to an unsigned app. The developer-ID signing and notarization pipeline is tracked for v0.4. For now, clear the quarantine attribute with a single terminal command:
Remove the Gatekeeper quarantine attribute.
Run this once after installing. The app is open source -- verify the
SHA-256 checksum on the Releases page against the .dmg.sha256 file
before running this if you want to confirm the download is clean.
xattr -cr "/Applications/OmniVoice Studio.app"
// Installing on Windows
Prerequisites:
Windows 10 (21H2 or newer) or Windows 11, x64
Python 3.11+
Microsoft C++ Build Tools (required by pyannote.audio and occasional torch wheel rebuilds)
Bun
FFmpeg
Install them from a regular (non-admin) PowerShell:
Install Python via winget
winget install Python.Python.3.11
Install Microsoft C++ Build Tools
Download from https://visualstudio.microsoft.com/visual-cpp-build-tools/
Select "Desktop development with C++" workload during install
Install Bun
powershell -c "irm bun.sh/install.ps1 | iex"
Install FFmpeg via winget
winget install Gyan.FFmpeg
Then clone and run (still in PowerShell):
git clone https://github.com/debpalash/OmniVoice-Studio.git cd OmniVoice-Studio bun install bun run desktop-prod
Windows-specific note (Triton/torch.compile OOM): On Windows, certain TTS engines (notably CosyVoice paths) trigger torch.compile kernel compilation on the first synthesis call. On machines with under 16 GB VRAM, this can OOM before any audio renders, surfacing as OutOfMemoryError: CUDA out of memory. The fix is in Settings → Performance: toggle "Disable torch.compile (Windows)" on. From the command line, set the environment variable before launching:
Disable torch.compile to avoid OOM on first synthesis (Windows only).
This falls back to the eager-mode kernel path -- slightly slower peak
throughput, but the engine actually loads on low-VRAM machines.
$env:TORCH_COMPILE_DISABLE = "1" bun run desktop-prod
Pre-built MSI users: Download the latest MSI from the Releases page, run the installer, and find OmniVoice Studio in the Start menu.
// Installing on Linux
Prerequisites (Debian/Ubuntu):
Install Python
sudo apt install python3.11
Install Bun
curl -fsSL https://bun.sh/install | bash
Install FFmpeg
sudo apt install ffmpeg
Install GTK/WebKit dependencies required by the Tauri desktop shell
sudo apt install \ libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ libssl-dev \ libxdo-dev \ build-essential
Prerequisites (Fedora):
sudo dnf install python3.11 ffmpeg-free curl -fsSL https://bun.sh/install | bash sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel openssl-devel
Clone and run:
git clone https://github.com/debpalash/OmniVoice-Studio.git cd OmniVoice-Studio bun install bun run desktop-prod
Pre-built AppImage users:
Download the AppImage from the Releases page, then:
chmod +x OmniVoice.Studio_*.AppImage ./OmniVoice.Studio_*.AppImage
If you see a white screen on Fedora 44+ or Ubuntu 24.04, set this:
WEBKIT_DISABLE_COMPOSITING_MODE=1 ./OmniVoice.Studio_*.AppImage
The white screen on newer distros is a compositing regression in WebKitGTK 2.44/2.46. v0.3+ of the AppImage autodetects this and sets the flag automatically. The manual environment variable path is the fallback for source installs.
Pre-built .deb users:
sudo apt install ./OmniVoice.Studio_*.amd64.deb omnivoice-studio
Docker (backend only):
For headless server use or team deployments where the desktop GUI isn't needed, OmniVoice Studio ships a Docker path that runs just the FastAPI backend and its 97 API endpoints:
Clone the repo if you haven't already
git clone https://github.com/debpalash/OmniVoice-Studio.git cd OmniVoice-Studio
Build and start the backend container
docker compose -f deploy/docker-compose.yml up
The backend API is then available at http://localhost:8000. The full API reference lives in the repo's docs/ directory. This path is useful when integrating OmniVoice capabilities into a pipeline without running a desktop session.
Setting Up Your Hugging Face Token
This step is optional for basic use, but required for two features: speaker diarization (the pyannote/speaker-diarization-3.1 model is gated on Hugging Face) and the larger voice-design engines.
You need a free Hugging Face account and a read token. Once you have one:
Option 1 — Through the app (recommended): Open Settings → API Keys, paste your hf_... token, and save. The app writes it to OmniVoice's encrypted SQLite store and to the canonical huggingface_hub location, so every subprocess the app spawns picks it up automatically.
Option 2 — Environment variable:
macOS / Linux -- add to ~/.zshrc or ~/.bashrc
export HF_TOKEN=hf_your_token_here source ~/.zshrc
Windows PowerShell -- writes to user-scope environment
Use this, not setx. setx truncates values over 1024 chars and
doesn't propagate to the current shell session.
[Environment]::SetEnvironmentVariable("HF_TOKEN", "hf_your_token_here", "User")
You also need to accept the model terms on the Hugging Face model page before downloading. Visit pyannote/speaker-diarization-3.1 and accept the gated model access request. This is a one-time step.
Cloning a Voice
Voice cloning is the core feature and the one most people install OmniVoice for. The model powering it is OmniVoice from k2-fsa — a diffusion-based TTS system trained on 646 languages that operates zero-shot, meaning there is no fine-tuning step. You provide a reference clip at inference time, and the model adapts to the speaker's voice on the fly.
How to clone a voice:
Navigate to the Voice Clone tab. You have two options for the reference audio: record directly in the app by clicking the microphone button, or upload an existing audio file. Either way, 3 to 10 seconds of clear speech is enough.
Then:
Upload
[truncated for AI cost control]