qvib.pro
RU

~10 min read · Updated: 28 Jul 2026

Local Text-to-Speech: Open Source Models Compared

Local Text-to-Speech That Actually Sounds Human

In short

Local TTS in 2026 is genuinely usable, but the real choice is narrower than the model lists suggest. Four projects cover almost every practical case: Kokoro-82M (82M parameters, Apache-2.0, fixed voice set, no cloning), Piper (tiny, GPL-3.0, happy on a Raspberry Pi), Chatterbox from Resemble AI (MIT, voice cloning, watermarks every output), and XTTS-v2 (17 languages, cloning from a ~6-second clip — but shipped under the Coqui Public Model License, which forbids commercial use). The licence, not the audio quality, is usually what decides for you. Hardware is the easy part: an 8 GB GPU runs all four comfortably, and Kokoro and Piper run on CPU. Where local still loses to a paid API is long-form consistency — pacing drift, mangled numbers and acronyms, no dependable emphasis control across paragraphs. Budget an evening for setup and a text-normalisation pass you will have to write yourself.

When local TTS beats an API

Less often than the "own your stack" crowd implies, more often than the API vendors would like. Local wins on four things.

Volume with no meter running. Cloud TTS bills per character. Amazon Polly charges $4 per million characters for standard voices, $16 for neural, $30 for generative and $100 for long-form (official pricing page, checked July 2026). A million characters is roughly 160,000 words. Generate that once and paying is obviously right; regenerate it on every content edit and the meter starts to matter.

Data that must not leave the box. Medical notes, incident reports, unreleased scripts, anything under NDA. A local model has no terms of service.

Latency you control. On a local GPU, the Orpheus README reports roughly 200 ms streaming latency, dropping to about 100 ms with input streaming.

Offline and embedded. Kiosks, in-car, Home Assistant, a Raspberry Pi in a shed. Piper exists for this.

Local loses when you need a branded voice a vendor already sells, 40 languages with reliable prosody, or simply not to own an inference process. At a handful of minutes a month, an API is cheaper than your time.

The models worth your time

Everything else in the "top 8 open TTS models" listicles is a variation on these. What separates them is the licence and whether they clone voices.

Model Size Licence Voice cloning Runs on CPU Main catch
Kokoro-82M (hexgrad/Kokoro-82M) 82M params Apache-2.0 No — fixed voices Yes No custom speaker, ever
Piper (OHF-Voice/piper1-gpl) Sub-1 GB voices GPL-3.0 No Yes, by design Engine is copyleft; plan your linking
Chatterbox 110M–500M MIT Yes, zero-shot Nano tier, yes Every output carries a Perth watermark
XTTS-v2 (coqui/XTTS-v2) ~2.1 GB total Coqui Public Model License Yes, ~6 s clip Slowly Non-commercial only
Orpheus 3B (canopyai/Orpheus-TTS) 3B params Apache-2.0 Yes, zero-shot Via llama.cpp Biggest VRAM appetite of the group

Three notes the spec tables skip:

The XTTS licence is a hard stop, not a formality. The licence text grants rights "for any non-commercial purpose", and spells out that commercial entities may use it only for "testing, evaluation, or non-commercial research and development", that "use of the model to train other models for commercial use is not a non-commercial purpose", and that revenue-generating activity is excluded. A monetised YouTube channel is revenue-generating. So is a client project. Prototype on XTTS, ship on Chatterbox or Kokoro.

Chatterbox watermarks everything. Resemble embeds Perth watermarks in all generated audio, described as surviving MP3 compression with near-perfect detection. For most people that is fine. If you need audio with no embedded signal, it is a blocker — find out now.

Piper's GPL-3.0 covers the engine, not your audio. Speech you generate is yours. But link Piper into a proprietary binary and you are in copyleft territory; talk to it over its HTTP server or CLI instead.

Hardware you actually need

Less than forum threads suggest. Published VRAM figures shift with quantisation and batch size — treat these as starting points, not benchmarks.

  • CPU only: Piper and Kokoro. Chatterbox's Nano tier (110M) is documented at roughly 3× realtime on 8 CPU cores.
  • 8 GB GPU (RTX 3060/4060, M-series Mac with 16 GB unified): comfortable for Kokoro, Chatterbox and XTTS-v2. The sweet spot.
  • 12–16 GB: needed for Orpheus 3B unquantised alongside anything else on the card.

If a local LLM already lives on that machine, budget the memory together — TTS and a 7B model fighting over the same 8 GB is the most common reason a setup feels broken. Our Ollama setup notes cover the trade-off from the LLM side, and the self-hosting walkthrough covers several models on one box.

Setting up XTTS-v2

Worth knowing even if you cannot ship it — the fastest way to hear zero-shot cloning.

First thing to understand: the original Coqui repository is unmaintained. The live fork is idiap/coqui-ai-TTS, published to PyPI as coqui-tts (MPL-2.0, tested on Python 3.10–3.14). Every tutorial telling you to pip install TTS points at the dead package.

uv pip install coqui-tts

Then, in Python:

from TTS.api import TTS

tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to("cuda")
tts.tts_to_file(
    text="Numbers like 2026 are where this will bite you.",
    speaker_wav="reference.wav",
    language="en",
    file_path="out.wav",
)

The model pulls about 2.1 GB on first run and outputs at 24 kHz. Two things decide whether the result sounds human:

Your reference clip. Six seconds is the documented minimum, not the target. Use 10–20 seconds of clean, close-mic, single-speaker audio: no music, no room reverb, no other voices. A clip recorded on a phone in a kitchen clones the kitchen.

Your text normalisation. The part nobody warns you about. "2026" may come out as "two zero two six"; "API" may be spelled or spoken; currency, units and dates are all unreliable. Write a preprocessing pass that expands numbers, abbreviations and acronyms into words before the text reaches the model — every model here, not just XTTS.

Chunk long text at sentence boundaries and concatenate — do not feed a 2,000-word chapter in one call.

Voice cloning: how it works, and where the law sits

Zero-shot cloning encodes your reference clip into a speaker embedding and conditions generation on it. No fine-tuning, no training run, seconds of audio. That is exactly why it is a legal problem.

Two rules already on the books, as of July 2026:

  • Tennessee's ELVIS Act (effective 1 July 2024) extended the state's right-of-publicity law to cover voice explicitly, and — unusually — created liability for making available a tool whose "primary purpose or function" is producing unauthorised recordings of a person's voice.
  • EU AI Act Article 50 applies from 2 August 2026. Providers of systems generating synthetic audio must mark output machine-readably as artificially generated; deployers of deepfakes must disclose it. The artistic/satirical carve-out softens the disclosure to "an appropriate manner", not to nothing. Read the article text, not a summary.

The practical rule: clone your own voice, or one you have written consent for, with the consent naming AI synthesis specifically — a generic talent release from 2019 does not cover this. If you distribute in the EU after August 2026, label it. Chatterbox's watermark handles the machine-readable half by default, which is a real argument for choosing it.

Quality gaps that remain

Where local TTS still gives itself away:

Long-form drift. Under 30 seconds, a good local model is hard to tell from a paid API. Over five minutes of continuous narration, pacing wanders and energy sags. Chunking mitigates it; nothing eliminates it.

Emphasis you cannot request. Commercial APIs expose SSML or prompt-level style control. Open models give you tags ([laugh], [cough] in Chatterbox) and emotion hints in Orpheus, but no reliable way to say "stress the third word". You re-roll the seed instead.

Non-English prosody. Language counts describe coverage, not quality. XTTS lists 17 languages; the tail is noticeably weaker than English.

Hallucinated audio. Zero-shot models occasionally invent syllables, repeat a word, or trail into noise. Chatterbox's notes cite reduced hallucinations in multilingual v3 as an improvement — which tells you earlier versions had them. Production pipelines need a listen-through or an ASR round-trip check.

Vendor listening tests are marketing. The widely quoted "65.3% of listeners preferred Chatterbox over ElevenLabs" figure comes from Resemble AI comparing its own product against a competitor. Directionally plausible; not independent evidence. Generate 30 seconds of your own script in each candidate and listen. The same holds across the tools catalogue: vendor numbers are a hypothesis, your script is the test.

FAQ

What is the best open source text to speech model right now?

No single winner, but the split is clean. Voice cloning with a licence you can ship: Chatterbox (MIT). Speed and small footprint, no cloning: Kokoro-82M. Raspberry Pi or embedded: Piper. Maximum expressiveness with VRAM to spare: Orpheus 3B. XTTS-v2 is the best-known of the group and the one most people should not ship, because of its licence.

Can I use XTTS-v2 commercially?

No. The Coqui Public Model License permits non-commercial use only and explicitly excludes revenue-generating activity — monetised content, client work, and company use beyond testing and evaluation. If you need cloning in a commercial product, use Chatterbox (MIT) or Orpheus (Apache-2.0). Read the licence file yourself rather than trusting a blog post.

Do I need a GPU for local text to speech?

Not for all of it. Piper and Kokoro-82M run acceptably on CPU, as does Chatterbox Nano. Cloning-capable models are where a GPU starts to matter: XTTS-v2 and Orpheus run on CPU but slowly enough to be annoying beyond a paragraph. An 8 GB consumer GPU covers everything except unquantised Orpheus.

Your own voice, yes. Someone else's without explicit, AI-specific consent is exposed under right-of-publicity law — Tennessee's ELVIS Act names voice directly and even reaches tool providers, and other jurisdictions are moving the same way. Separately, from 2 August 2026 the EU AI Act requires synthetic audio to be marked machine-readably and deepfakes disclosed. Get written consent, keep it, label the output.

Why does my local TTS mispronounce numbers and acronyms?

Open models generally ship without the text-normalisation front-end commercial APIs put in front of the model, so "2026", "$4.99", "API" and "km/h" go in raw. Fix it with a preprocessing pass that expands them into words, plus a per-project exception list. That pass is usually a bigger difference between "robot" and "human" than the model choice.

Read next