TL;DR

VoiceStudio is a desktop app that bundles 17 local text-to-speech engines and 10 transcription options behind one UI (16 and 11 when this review was published), plus an OpenAI-compatible API on localhost:3900. It does voice cloning, voice design, video dubbing, dictation, and audiobook production without an account, an API key, or a usage meter.

  • Repo: debpalash/VoiceStudio — 21,026 stars, 2,618 forks, Python + TypeScript, AGPL-3.0, created April 9, 2026.
  • Momentum: roughly 7,900 stars in the last week, which is what put it near the top of GitHub Trending.
  • Formerly: OmniVoice-Studio. The rename is recent, so search results and forks still carry the old name.
  • Latest release: v0.5.1 (August 28, 2026). The README labels the project an active beta in a warning box.
  • The catch nobody mentions: the app is AGPL-3.0, but the default model weights are CC-BY-NC. Commercial use requires switching engines. More on this below.

What changed as of October 2026: Re-checked against the repository and releases on October 15, 2026.

  • Much bigger: 67,173 stars and 7,383 forks (GitHub, October 15, 2026), up from 21,026 at publication. It added about 11,700 stars in the past week alone.
  • Latest release is v0.5.6 (September 23, 2026), not v0.5.1.
  • The desktop app moved from Tauri to Electron. v0.5.3 was the final Tauri release, and its updater cannot install Electron, so Tauri users must install the Electron app separately (migration guide). Downloads are now a Windows x64 .exe, Apple Silicon and Intel .dmg files, and a Linux .AppImage or .deb. The release notes say the Electron installers are unsigned or ad-hoc signed and not Apple-notarized, so expect OS trust warnings, and that macOS automatic updates are unverified. An Intel Mac still gets the UI only and needs a remote backend.
  • Engine lists changed. The feature catalog now lists 17 speech-generation entries (new names include dots.tts, Confucius4-TTS, supertonic3, MOSS-TTS-Nano and an OmniVoice GGUF build) and 10 transcription options, one of which is an external OpenAI-compatible server you configure.
  • API additions in v0.5.6: GET /v1/models, POST /v1/audio/translations, stream_format (audio or SSE) on speech requests, word timestamps on transcriptions, OpenAI-format errors (HTTP 400 instead of 422), and response_format="mp3" now returns real MP3. The MCP docs recommend the trailing-slash URL http://localhost:3900/mcp/.
  • New: answering Twilio phone calls in a saved voice (off by default), editing a saved clone’s reference sample, and cloning from references longer than 20 seconds on OmniVoice — the app now picks the best passage itself.
  • Docker images are published as ghcr.io/debpalash/voicestudio and palashdeb/omnivoice-studio (same images, linux/amd64 only).

The license catch below is unchanged: the default OmniVoice weights are still CC-BY-NC.


Quick Reference

ItemDetail
Repogithub.com/debpalash/VoiceStudio
App licenseAGPL-3.0 (commercial license on request)
Default model licenseCC-BY-NC weights (Apache-2.0 code)
StackElectron desktop app (Tauri until v0.5.3) + FastAPI + SQLite
Backend port127.0.0.1:3900 (loopback only)
TTS engines17 in the feature catalog (16 at publication)
ASR engines10 in the feature catalog, including a configured OpenAI-compatible server
Language catalogue646 (engine-dependent)
PlatformsmacOS 13.3+ (Apple Silicon), Windows 10/11 x64, Linux x86_64 glibc 2.39+, Docker
ComputeCUDA · MPS/MLX · ROCm (Linux) · CPU
Data diromnivoice_data/

The Problem VoiceStudio Actually Solves

The local TTS ecosystem in 2026 is not short of models. It is short of plumbing.

If you want to clone a voice on your own hardware today, the usual path looks like this: clone a model repo, fight a PyTorch version, discover the weights need a Hugging Face token, write a script to chunk long text, write another to stitch WAVs, then realise the model cannot do the language you need and start over with a repo that has entirely different conventions.

Every one of those models is good. The glue between them is what nobody ships.

VoiceStudio’s actual contribution is the glue: a registry-based engine interface where 16 TTS backends and 11 ASR backends expose the same capabilities to the same UI and the same API. You switch engines from the status bar with Ctrl/Cmd+E. The app handles the Python environment, model downloads, GPU routing, and disk accounting.

That reframing matters when you judge it. VoiceStudio is not competing with OmniVoice or CosyVoice — it ships them. It is competing with the afternoon you would otherwise spend wiring them together.


Installation

The one-command installer covers every desktop OS:

# macOS / Linux / WSL
curl -fsSL https://voicestudio.sh/install | sh
# Windows
irm https://voicestudio.sh/install | iex

Prebuilt packages are on the releases page: Apple Silicon and Intel DMGs, a Windows x64 .exe, and a Linux AppImage or .deb. Docker works if you would rather keep it contained:

docker run -d -p 127.0.0.1:3900:3900 \
  -v omnivoice-data:/app/omnivoice_data \
  --name voicestudio \
  palashdeb/omnivoice-studio:stable

From source it is Bun-based (bun install && bun run desktop, or bun run dev for the browser UI). First launch builds a managed Python environment via uv and pulls the default model. Budget time and disk for that — the stated minimum is 10 GB free, with 20 GB+ SSD recommended.

The macOS footnote that will bite someone: Intel Macs cannot run the local Python backend at all, because current PyTorch wheels are unavailable for them. Intel Mac owners have to point the app at a remote backend. Apple Silicon gets MPS and MLX paths.


Your First Clone

The documented flow is three steps: open Voice Cloning, drop in a reference clip, generate. The interesting detail is in the FAQ, and it corrects the most common user assumption — longer reference audio does not reliably produce a better clone:

Cloning is zero-shot: the clip is a prompt, not training data. Use 5 to 15 seconds of one speaker, close to the microphone, without music, noise, or reverb.

Three seconds works; five to fifteen is the sweet spot. Feeding it two minutes of podcast audio is not “more training data” — it is a longer prompt with more chances to include a cough. If you genuinely want a trained voice rather than a zero-shot prompt, the repo has separate data-preparation and training docs.


The API Is the Real Story

For anyone building rather than clicking, the OpenAI-compatible endpoint is the headline feature. It is a one-line base-URL swap:

- base_url="https://api.openai.com/v1"
+ base_url="http://localhost:3900/v1"
from openai import OpenAI

client = OpenAI(base_url="http://localhost:3900/v1", api_key="local")

with client.audio.speech.with_streaming_response.create(
    model="tts-1",
    voice="<profile-id>",
    input="Made on my own hardware.",
    response_format="wav",
) as response:
    response.stream_to_file("speech.wav")

Or without an SDK at all:

curl http://localhost:3900/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"model":"tts-1","input":"Made on my own hardware.","voice":"default","response_format":"wav"}' \
  --output speech.wav

The surface covers more than synthesis:

EndpointPurpose
POST /v1/audio/speechTTS to mp3, opus, aac, flac, wav, pcm
POST /v1/audio/transcriptionsSTT to json, text, verbose_json, srt, vtt
WS /v1/audio/transcriptions/streamLive PCM/WebM transcription with partial + final events
GET /v1/audio/voicesList local voice profiles and engines
GET /.well-known/voicestudio-speechTransport discovery (HTTP, WS, MCP, dictation)

There is also an MCP server mounted at http://localhost:3900/mcp, exposing generate_speech, clone_voice, and transcribe to Claude Desktop, Cursor, and other agent clients:

{
  "mcpServers": {
    "voicestudio": { "url": "http://localhost:3900/mcp" }
  }
}

And agent skills, if your harness speaks skills.sh:

npx skills add debpalash/VoiceStudio

Security posture is sane by default. The backend binds loopback only. Loopback calls need no key; anything non-local requires a share PIN or API key. Non-loopback ASR endpoints must be HTTPS and redirects are explicitly not followed. Analytics is off until you consent, and when enabled sends allowlisted, content-free metadata — never text, audio, filenames, or projects.


Picking an Engine

Sixteen engines is a lot of choice, which is its own kind of problem. The README’s hardware table is the shortcut:

HardwareRecommended TTSRecommended ASR
Apple Silicon (M1–M4)MLX-Audio · OmniVoice (MPS)MLX Whisper · Parakeet MLX
NVIDIA GPU (8 GB+ VRAM)OmniVoice · CosyVoice 3WhisperX
Low VRAM / CPU-onlyPocketTTS · Sherpa-ONNX · KittenTTSMoonshine · Faster-Whisper (int8)

The engine roster spans licenses and capabilities unevenly, and that unevenness is the thing to check before committing:

  • OmniVoice (default) — 600+ languages, cloning, instruct. Apache-2.0 code, CC-BY-NC weights.
  • CosyVoice 3 — 9 languages + 18 dialects, cloning, instruct, Apache-2.0. The best all-round permissive option.
  • VoxCPM2 — 30 languages, cloning, instruct, Apache-2.0, runs on MPS.
  • MOSS-TTS-v1.5 — 31 languages, cloning, Apache-2.0.
  • GPT-SoVITS — 5 languages, cloning, MIT, but no macOS support.
  • KittenTTS — English only, CPU only, no cloning, MIT.
  • IndexTTS 2.5 — 5 languages, cloning, under a Bilibili model license that requires a separate written agreement above 100 million MAU or RMB 1 billion annual revenue.

One design decision deserves credit: engines without cloning support cannot preserve a reference speaker in dubbing or pinned-voice batch jobs, and VoiceStudio rejects those jobs rather than silently swapping engines. Failing loudly beats quietly producing the wrong voice, and plenty of tools get this wrong.


Beyond Cloning

The feature list is wider than “ElevenLabs alternative” implies:

  • Video dubbing — transcribe, translate, preserve speakers, synthesize, export. Completed dubs flag timing issues for review, plus a glossary for term consistency.
  • Stories and audiobooks — multi-voice scripts, EPUB/PDF import, chapter rendering, .m4b export.
  • Dictation widget — system-wide shortcut, live transcription, optional local-LLM cleanup.
  • Vocal isolation — Demucs speech/background separation.
  • Speaker diarization — Pyannote and WhisperX speaker assignment.
  • Batch queue — large job sets with per-job progress, or watch a folder for new videos.
  • AudioSeal watermarking — imperceptible synthetic-speech watermarking, on by default.

That last one is worth pausing on. Zero-shot voice cloning on consumer hardware is genuinely dual-use, and the project enables Meta’s AudioSeal watermarking by default rather than hiding it behind a checkbox nobody finds. Not a complete answer to misuse, but a better default than most of the field.


What the Community Says

The underlying OmniVoice model has strong word of mouth. From r/LocalLLaMA:

“It’s way better than Qwen3, Chatterbox or any other local TTS that I was able to use.”

The same commenter supplied the useful number: on an RX 590, roughly 15 seconds of audio takes 25–30 seconds to generate at 32 inference steps. Slower than realtime on old hardware — fine for audiobooks and dubbing, not fine for a live conversational agent.

The counterweight comes from r/TextToSpeech, where someone who tested echoTTS, Chatterbox, VibeVoice, Qwen3-TTS, IndexTTS2, Fish Audio, MOSS-TTS, and OmniVoice concluded:

“Once in a while, one model will outperform the other. So is there one best? I would not say so.”

Which is, incidentally, the strongest argument for VoiceStudio. If no single model wins across languages, voices, and speed, then the app that lets you switch between sixteen of them behind a stable API is worth more than any individual model choice.


Honest Limitations

The license trap is the big one. The application is AGPL-3.0 and does not restrict selling generated audio. But the default OmniVoice weights are CC-BY-NC — non-commercial. Anyone who installs VoiceStudio, records a demo, and ships it in a client project has a problem they probably do not know they have. The fix is straightforward: switch to CosyVoice 3, VoxCPM2, or MOSS-TTS-v1.5, all Apache-2.0. But the default is the trap, and “read the model terms” in a footnote is not a loud enough warning for how easily this goes wrong.

AGPL matters if you host it. Modify VoiceStudio and offer that version as a network service, and AGPL requires you to publish your source. A commercial license for VoiceStudio-owned code exists on request — it does not relicense the third-party models.

It is beta, and the release notes prove it. v0.5.1’s highlights are a catalogue of crash fixes: fatal MPS memory exits taking down the backend on Apple Silicon, a Windows 0xC0000005 access violation from overlapping WhisperX calls, remounts stacking native jobs. These are all fixed — the maintainer is clearly responsive, and several fixes credit outside contributors. But 91 open issues and that changelog shape say pre-1.0 loudly. Issue #315 is representative: on Windows, the first voice-clone render is perfect and every render afterward in the same session comes out with static and slowed playback.

Cold-start latency is real. The v0.5.1 notes measure first synthesis on a cold filesystem at roughly 42 seconds, three seconds short of a 90-second client timeout — which is why the AudioSeal watermark generator now warms on a background thread ~35s after boot, and cloned voice references persist to disk (~10 KB each) so the first generation of a session skips the re-encode. Good fixes that exist because the cold path was genuinely painful.

Hardware reality check. 8 GB RAM and CPU-only technically works, but the default multi-stage workflow wants 8 GB+ VRAM and large optional engines want 12–16 GB. ROCm is Linux-only; Windows AMD and Ryzen AI fall back to CPU.

646 languages is a catalogue number, not a quality claim. The README says so directly: coverage and quality depend on the engine. Only the OmniVoice family reaches 600+. CosyVoice 3 does 9. KittenTTS does English.


Who Should Use This

Good fit: volume work where per-character cloud billing hurts — audiobook production, multilingual dubbing, dataset generation. Privacy or compliance constraints that keep audio on the machine. Agents needing a local voice via MCP or the OpenAI-compatible endpoint. A/B testing several TTS models without maintaining several repos.

Bad fit: realtime conversational agents on modest GPUs — the latency is not there yet. Intel Mac owners. Teams that need commercial rights and will not audit which engine is loaded. Anyone who needs a hosted API with an SLA.


FAQ

Is VoiceStudio really free? The software is, with no paid tier and no usage meter for the local workflow. You supply the hardware, and development is donation-funded. The cost that is not money is disk, VRAM, and setup time.

Can I sell audio I generate with it? Not with the default engine, realistically. The AGPL-3.0 application license does not restrict generated audio, but the default OmniVoice weights are CC-BY-NC and the bundled audio tokenizer carries separate Boson Higgs Audio 2 and Meta Llama community terms. For commercial work, switch to an Apache-2.0 engine — CosyVoice 3, VoxCPM2, or MOSS-TTS-v1.5 — and confirm the terms of the specific weights you download.

How is this different from just running OmniVoice directly? OmniVoice is one model. VoiceStudio is the application layer around 17 TTS engines and 10 transcription options (as of October 2026): managed Python environment, model catalogue, GPU auto-detection, batch queue, dubbing pipeline, diarization, watermarking, an OpenAI-compatible API, and an MCP server. If you only ever want OmniVoice and you are comfortable in Python, run it directly. If you want to compare engines or expose speech to other apps, the wrapper is the point.

Does it work without a GPU? Yes. CPU mode is supported and some engines target it specifically — PocketTTS, Sherpa-ONNX, KittenTTS for synthesis, Moonshine and Faster-Whisper at int8 for transcription. Expect substantially slower generation with the heavier engines, and expect low-VRAM systems to offload to CPU automatically.

Does it phone home? Not by default. Analytics is off until you opt in, and skipping the consent prompt keeps it off. When enabled it sends allowlisted, content-free usage metadata — never text, audio, filenames, voices, or projects. The backend is loopback-only. The exceptions are all explicit opt-ins: remote workers, external OpenAI-compatible ASR endpoints, and the Colab notebook, which is remote compute by definition.

Can other apps and agents drive it? Yes, through several transports: REST, SSE, WebSocket, JSON-RPC, a CLI, and an MCP server at localhost:3900/mcp. A bundled Rust control sidecar lets coding agents, VS Code, desktop apps, and TUIs trigger the system-wide dictation flow or reuse its native text insertion. Read the API auth doc before exposing the backend beyond loopback.


Verdict

VoiceStudio is the most complete local voice stack currently packaged as a single install, and the OpenAI-compatible API plus MCP server make it useful as infrastructure rather than just a desktop toy. 21,000 stars in five months is not noise — the plumbing problem it solves is real, and the maintainer is shipping fixes fast.

Two caveats decide whether it fits you. It is beta, and the crash-fix-heavy changelog means you should track releases rather than run main. And the default engine’s CC-BY-NC weights make the out-of-box configuration non-commercial — check which engine is loaded before you invoice anyone for the output.

For personal projects, privacy-constrained work, and high-volume audio where cloud billing stings, it is an easy recommendation. For commercial pipelines, it is an easy recommendation after you have deliberately switched engines.


Sources