Awesome list · open weights · local inference

awesome-open-tts-under-1b

Every open-weight TTS model under 1B parameters with the applied numbers you need to pick a local model for a voice agent.

Small open TTS models have crossed a line: several now stream in real time on a CPU, and the under-1B tier is where "runs on my machine" stops being a hope and starts being a spec. This list exists for one reader: a developer choosing a local TTS model for a real application (a LiveKit or Pipecat agent, an offline device, a self-hosted API) who needs the applied numbers, not a research survey.

70Models
45Shippable
25Restricted
15CPU real-time
8Latency published

Every row is generated from README.md at build time. To add or correct a model, edit that one file: this site has no separate database.

70 / 70
Filters
Inflect-Nano-v2
English, one fixed synthetic voice
4.0M
Apache 2.0 CPU yes
Params
3,966,721 (vendor-stated; no safetensors index)
License
Apache 2.0
Languages
English, one fixed synthetic voice
Streaming
No native streaming (punctuation-aware chunking)
TTFB / first-chunk
not published
CPU real-time
yes: RTF 0.0933, 10.72x real time (vendor, HF CPU Upgrade, 8 vCPU, 4 threads). Same repo reports RTF 0.6299 on a Ryzen 9 3900X
Quantized formats
not published
Integration path
DIY; HF only, no pip package
Vaniq-Edge
English, one fixed voice
~ 9.0M
MIT * CPU yes
Params
~9.0M (derived from model.pth at fp32; card claims 8.5M)
License
MIT weights; required espeak-ng phonemizer is GPL v3
Languages
English, one fixed voice
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
yes: RTF 0.262 on 1 core (vendor, CPU unnamed, published only as text inside a chart image)
Quantized formats
not published (the card advertises an ONNX export that is absent from the repo tree)
Integration path
DIY; HF only, no GitHub repo
Inflect-Micro-v2
English
9.4M
Apache 2.0 CPU yes
Params
9,356,513 (vendor-stated; no safetensors index)
License
Apache 2.0
Languages
English
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
yes: RTF 0.1593, 6.28x real time (vendor, HF CPU Upgrade, 8 vCPU, 4 threads)
Quantized formats
not published
Integration path
DIY; code. HF org is owensong, GitHub org is owenawsong
Kitten TTS
English
~ 15.0M
Apache 2.0 CPU yes output stream
Params
15M to 80M
License
Apache 2.0
Languages
English
Streaming
Output-streaming (chunked)
TTFB / first-chunk
not published
CPU real-time
yes
Quantized formats
ONNX (ships as ONNX)
Integration path
DIY; ONNX runs in-browser and on edge
Matcha-TTS
English (LJSpeech single-speaker, VCTK 108 speakers)
~ 18.2M
MIT CPU yes
Params
18.2M acoustic model, excludes vocoder (paper)
License
MIT
Languages
English (LJSpeech single-speaker, VCTK 108 speakers)
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
yes: RTF 0.411 (community, sherpa-onnx, Raspberry Pi 4 Model B Rev 1.5, 4 threads; RTF 0.941 at 1 thread)
Quantized formats
ONNX (in-repo exporter, prebuilt via sherpa-onnx)
Integration path
DIY; first-class sherpa-onnx support for CPU and embedded
Matxa-TTS Catalan
Catalan, 4 accents, 8 speakers
~ 20.9M
GPL
Restriction
Copyleft, and commercial deployment needs separate voice-artist licensing
Params
~20.9M (derived at fp32; no exact count published)
License
GPL-3.0
Languages
Catalan, 4 accents, 8 speakers
Streaming
No native streaming (non-autoregressive OT-CFM)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
ONNX end-to-end (single file, includes the vocoder)
Integration path
ONNX e2e, or PyTorch with a separate vocoder plus compiled espeak-ng. A v2 line under BSC-LT is apache-2.0
wfloat-tts
30.2M
MIT
Params
30,219,888 (safetensors.total)
License
MIT
Languages
not published
Streaming
not published
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
First-party browser/WASM runtime (wfloat/wfloat-web) and React Native (wfloat/react-native-wfloat), both MIT
Lahja
Arabic, Saudi dialect. Two voices across two repos
36.3M
No grant *
Restriction
No license granted at all. No rights is worse than non-commercial
Params
36,284,784 (safetensors.total)
License
none declared (cardData.license is null and the card states none)
Languages
Arabic, Saudi dialect. Two voices across two repos
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
Cleanest integration of any row here: plain Transformers VitsModel and AutoTokenizer, no external vocoder. The declared base repo returns 401, so lineage is not auditable
Coqui VITS LJSpeech
English, single speaker, 22,050 Hz
36.3M
Apache 2.0 *
Params
36,321,264 (measured from the release checkpoint; no published count)
License
"apache 2.0" (string from TTS/.models.json); toolkit code MPL-2.0
Languages
English, single speaker, 22,050 Hz
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
pip install coqui-tts (maintained idiap fork). Functionally overlapping with Piper, which is also VITS-based and ships ONNX
Ukrainian TTS
Ukrainian, 5 voices, automatic stress marking
40.7M
MIT
Params
40,685,869 generator (measured; the 446 MB checkpoint also carries 70,711,277 training-only discriminator params)
License
MIT
Languages
Ukrainian, 5 voices, automatic stress marking
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
pip install from GitHub. Released v6.0.0 is Tacotron2 + HiFi-GAN joint despite the repo name, frozen 2023-09-17; current work is on an unreleased branch
Coqui YourTTS
3: en, fr-fr, pt-br. 38 released speaker embeddings, 16 kHz output
48.1M
Non-commercial
Restriction
Non-commercial and no-derivatives (NoDerivatives arguably bars fine-tuning)
Params
48,123,087 inference path (measured; the full state dict includes a training-only discriminator)
License
CC BY-NC-ND 4.0 weights, MPL-2.0 toolkit code
Languages
3: en, fr-fr, pt-br. 38 released speaker embeddings, 16 kHz output
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
pip install coqui-tts (idiap fork). Weights frozen 2022-03-23; 16 kHz output is behind Kokoro and Piper
Style-Bert-VITS2
Japanese (JP-Extra line); the older v2.x line is ja, zh, en
62.8M
AGPL
Restriction
AGPL-3.0 network copyleft: serving a hosted voice agent triggers source disclosure
Params
62,756,658 (measured); the mandatory JP-Extra DeBERTa front end adds 329,601,020
License
AGPL-3.0 code, CC-BY-SA-4.0 weights, LGPL-3.0 for the text and user dictionary
Languages
Japanese (JP-Extra line); the older v2.x line is ja, zh, en
Streaming
No native streaming (no chunk or yield path)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
ONNX export script (v2.7.0+); no GGUF or int8
Integration path
pip install style-bert-vits2; Gradio app and HTTP server. Code active to 2025-12-07, weights frozen 2024-02-05
IMS-Toucan
471 supervised, ~7,200 zero-shot via language embeddings
81.6M
Apache 2.0
Params
81,563,686 full pipeline (measured: ToucanTTS 50,097,950 + vocoder 31,167,362 + embedding GAN 298,374)
License
Apache 2.0
Languages
471 supervised, ~7,200 zero-shot via language embeddings
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
Clone and pip install, no package; needs espeak-ng. Zero-shot language lookups add ~3.75 GB beyond the weights
Kokoro
8 languages, 54 voices
~ 82.0M
Apache 2.0 CPU yes output stream
Params
82M
License
Apache 2.0
Languages
8 languages, 54 voices
Streaming
Output-streaming (chunked)
TTFB / first-chunk
not published (community reports sub-second full-utterance on CPU; hardware varies)
CPU real-time
yes
Quantized formats
ONNX community exports
Integration path
Pipecat service available; community LiveKit wrappers; verify plugin freshness
Supertonic 3
31, plus a language-neutral mode
~ 99.0M
OpenRAIL CPU yes
Restriction
OpenRAIL use restrictions that pass to every downstream user, and the project has announced archival
Params
~99M (README prose only; ONNX assets, no safetensors index)
License
BigScience Open RAIL-M weights (cardData says the bare string "openrail"), MIT code
Languages
31, plus a language-neutral mode
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
yes: average RTF 0.3 (vendor, Onyx Boox Go 6 e-reader, ARM CPU, airplane mode)
Quantized formats
ONNX fp32 only; community int8 and fp16 via supertonic-mnn
Integration path
Official Python SDK and serve command; ONNX Runtime examples in 11 languages. Community pipecat-supertonic plugin, explicitly unsupported. Archival announced 2026-07-23, Voice Builder retires 2026-08-31
Kyutai Pocket TTS
6 (en, fr, de, pt, it, es; non-English as 24-layer preview variants)
~ 118M
CC-BY-4.0 CPU yes output stream TTFB gated
Params
~118M default checkpoint (derived at bf16; README says 100M; 24-layer language variants reach ~336M)
License
CC-BY-4.0 weights (per-voice terms vary, see kyutai/tts-voices), MIT code
Languages
6 (en, fr, de, pt, it, es; non-English as 24-layer preview variants)
Streaming
Output-streaming (chunked)
TTFB / first-chunk
~200 ms to first chunk (vendor, hardware unspecified; the MacBook Air M4 in the README attaches to the throughput claim, not this one)
CPU real-time
yes: ~6x real time (vendor, MacBook Air M4, 2 cores)
Quantized formats
Runtime int8 via torchao, no distributed artifact. Community ONNX, MLX, Candle, sherpa-onnx
Integration path
Pipecat first-party extra (pipecat-ai[pocket-tts]); own serve command; sherpa-onnx. No LiveKit plugin. HF repo is gated (auto): terms acceptance and a token required
DhVaani-0.5
26 Indian languages + English
123M
Apache 2.0 gated
Params
122,798,800 (safetensors.total)
License
Apache 2.0 (inherited from the ZipVoice base per the card)
Languages
26 Indian languages + English
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
DIY; ZipVoice derivative, vendors its own backend. Needs a 3 s to 10 s reference clip plus transcript. HF gated (auto)
ZipVoice
Chinese, English
~ 123M
No grant * CPU no
Restriction
Weights carry no license grant at all; commercial reuse is legally undefined
Params
123M (README and paper, corroborated by the fp32 file size; no safetensors index)
License
Code Apache-2.0. Weights: no license key in cardData and none in the README frontmatter
Languages
Chinese, English
Streaming
No native streaming (punctuation chunking then batching)
TTFB / first-chunk
not published
CPU real-time
no: best case RTF 1.22, distilled at 4 NFE, single thread (vendor, Intel Xeon Platinum 8457C)
Quantized formats
ONNX fp32 and INT8 in-repo for the base and distill checkpoints
Integration path
Two first-party deployment paths: sherpa-onnx C++ on CPU, and an NVIDIA Triton runtime
VieNeu-TTS v3 Turbo
Vietnamese, English, vi-en code-switching
131M
Apache 2.0 CPU yes output stream TTFB
Params
130,907,520 (safetensors.total)
License
Apache 2.0
Languages
Vietnamese, English, vi-en code-switching
Streaming
Output-streaming (frame-level, ONNX/CPU path only)
TTFB / first-chunk
~300 ms to first audio (vendor, hardware unspecified)
CPU real-time
yes: RTF < 1, ~2-3x on a laptop (vendor, CPU unnamed)
Quantized formats
ONNX fp32 and ONNX INT8 in-repo (the CPU backbone runs int8 by default)
Integration path
DIY; vieneu on PyPI, FastAPI streaming demo. Hard dependency on the author's sea-g2p
ArTST
Arabic (Classical, via ClArTTS)
144M
Non-commercial
Restriction
Non-commercial
Params
144,481,358 (derived at fp32; no safetensors index)
License
CC-BY-NC-4.0
Languages
Arabic (Classical, via ClArTTS)
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
Transformers, but needs speecht5_hifigan plus x-vector speaker embeddings. Heaviest integration in this table
SILMA TTS v1
Arabic and English, zero-shot cloning
~ 150M
Apache 2.0
Params
~150M (vendor blog; config is the F5-TTS Small DiT. The 2.6 GB model.pt is a training checkpoint with EMA and optimizer state)
License
Apache 2.0 weights, MIT code
Languages
Arabic and English, zero-shot cloning
Streaming
No native streaming (CFM decoder)
TTFB / first-chunk
not published
CPU real-time
not published (GPU only: RTF ~0.12, vendor, RTX 4090)
Quantized formats
not published
Integration path
pip install silma-tts; Gradio app. Vocos vocoder pulled from the hub
Freya-TTS
Turkish, single fixed speaker, no cloning
183M
Apache 2.0
Params
183,198,145 (safetensors.total)
License
Apache 2.0
Languages
Turkish, single fixed speaker, no cloning
Streaming
No native streaming (32-step Euler ODE over the whole utterance)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
DIY; github.com/freyavoiceai/FreyaTTS, install from source. There is no "-small" variant; the org ships one checkpoint
hindi-tts-190M
Hindi, one fixed reference voice (swappable)
190M
MIT CPU no
Params
~190,178,332 (derived from the fp32 EMA checkpoint) + bundled Vocos ~13.6M
License
MIT (IndicF5 / F5-TTS derivative; upstream terms also apply)
Languages
Hindi, one fixed reference voice (swappable)
Streaming
No native streaming (flow matching, NFE 32)
TTFB / first-chunk
not published
CPU real-time
no: RTF 3.13 median, 3.13x slower than real time (vendor eval, Apple M4 16 GB, MPS, fp32, NFE 32). No CPU figure published
Quantized formats
not published (fp32 only)
Integration path
Weak: no pip package and no GitHub repo. Inference code must be vendored out of the author's Gradio Space
Chatterbox-Nano
English (the 23-language list on the card belongs to Chatterbox-Multilingual)
217M
MIT CPU yes
Params
217,471,139 T3 backbone (reconciled from the fp32 weight file); ~483.0M with s3gen and the voice encoder. The card's "110M" is wrong by ~2x against its own file
License
MIT
Languages
English (the 23-language list on the card belongs to Chatterbox-Multilingual)
Streaming
No native streaming in the official repo
TTFB / first-chunk
not published (the sub-200 ms figure on the card is Resemble's paid hosted service)
CPU real-time
yes: 3x real time on 8 cores (vendor, CPU model and thread policy unspecified)
Quantized formats
not published
Integration path
DIY from GitHub source only: the PyPI package has no nano path. Perth watermarking built in. livekit-plugins-resemble and Pipecat resembleai target the hosted API, not these weights
NeuTTS Nano
English, plus official German, Spanish and French checkpoints
229M
Revenue-capped
Restriction
Revenue cap: a commercial license is required above $5,000,000 annual revenue
Params
228,704,832 (safetensors.total)
License
NeuTTS Open License v1.0 (cardData says only "other", so the restriction is invisible from card metadata)
Languages
English, plus official German, Spanish and French checkpoints
Streaming
not published
TTFB / first-chunk
not published
CPU real-time
not published (vendor publishes Q4_0 llama-bench tokens/s only, codec excluded, no RTF)
Quantized formats
GGUF Q4 and Q8, first-party, for every language checkpoint
Integration path
DIY; the neutts package with llama-cpp-python
NeuTTS-2E
English. 4 fixed speakers, 7 emotions, no cloning
236M
Revenue-capped CPU borderline output stream
Restriction
Revenue cap: a commercial license is required above $5,000,000 annual revenue
Params
236,039,680 (safetensors.total; ~125M active)
License
NeuTTS Open License v1.0 weights, Apache-2.0 code
Languages
English. 4 fixed speakers, 7 emotions, no cloning
Streaming
Output-streaming, GGUF path only
TTFB / first-chunk
not published
CPU real-time
borderline: every published CPU number is Q4_0, measured on sibling checkpoints, and excludes the codec (vendor, AMD Ryzen 9 HX 370 and iMac M4, llama-bench)
Quantized formats
GGUF Q4 and Q8 (first-party); first-party ONNX codec decoders including int8
Integration path
DIY. livekit-plugins-neuphonic and Pipecat neuphonic wrap the hosted cloud API, not these weights
Vosk-TTS ru 0.10-multi
Russian, 57 speakers
~ 237M
Apache 2.0 CPU yes
Params
~236.7M (derived: ~58.7M TTS ONNX + 178M ruBert-base front end)
License
Apache 2.0
Languages
Russian, 57 speakers
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
yes: xRT 0.35 (vendor, hardware unspecified; README inside the model zip)
Quantized formats
ONNX (the only shipped format; no int8 variant)
Integration path
pip install vosk-tts, plus CLI and a server directory. Pure CPU, fully offline. Despite the name it is a DiT diffusion model, not VITS
ChatTTS
English, Chinese
~ 304M
Non-commercial CPU no output stream
Restriction
Non-commercial weights and AGPL-3.0 code (copyleft, relevant if linked into a service)
Params
~304.4M (measured across five fp32 shards; no aggregate safetensors index)
License
CC-BY-NC-4.0 weights, AGPL-3.0 code
Languages
English, Chinese
Streaming
Output-streaming
TTFB / first-chunk
not published
CPU real-time
no (>=4 GB VRAM stated; the only published figure is RTF ~0.3 on a 4090)
Quantized formats
not published
Integration path
DIY; Python API and bundled WebUI. The authors deliberately degraded fidelity in training to deter misuse, which is a hard quality ceiling. Weights frozen 2024-10-22
Vui Nano
English
~ 305M
Unresolved * CPU no sentence stream
Restriction
License unresolved upstream. Do not assert Apache 2.0 on the weights
Params
~305M (derived at fp16; no safetensors index)
License
GitHub license detection returns NOASSERTION and the two READMEs contradict each other on whether Apache 2.0 covers the weights. The codec and speaker encoder are Alibaba property under the Qwen3-TTS terms
Languages
English
Streaming
Sentence-level (WebRTC and WebSocket with backpressure)
TTFB / first-chunk
not published
CPU real-time
no (GPU required, ~12 GB VRAM for the full assistant stack)
Quantized formats
not published
Integration path
Ships an OpenAI Realtime API compatible server, so it drops into any client speaking that protocol. Weights live under the different HF org slug fluxions
VoiceCraft giga330M
English
323M
Non-commercial * CPU no
Restriction
Non-commercial, both halves
Params
323,434,522 (safetensors.total; "330M" is a repo name)
License
Coqui Public Model License 1.0.0 weights, CC BY-NC-SA 4.0 code. The parent repo's cardData contradicts LICENSE-MODEL; the per-checkpoint repos carry no license key at all
Languages
English
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
no (no CPU path or benchmark; CUDA-oriented throughout)
Quantized formats
not published
Integration path
DIY; Gradio app and notebooks. Prompt plus generation capped at 16 s on the TTS-finetuned checkpoint. Weight repos frozen 2024
Plapre Nano v2
Danish
335M
CC-BY-4.0 * CPU no sentence stream
Params
335,010,240 (safetensors.total)
License
CC-BY-4.0 (model card only; the GitHub repo has no LICENSE file)
Languages
Danish
Streaming
Sentence-level (raw 24 kHz PCM, chunked transfer)
TTFB / first-chunk
not published
CPU real-time
no (CUDA GPU required; vLLM pinned to >=0.15,<0.16)
Quantized formats
not published
Integration path
DIY; OpenAI-shaped /v1/audio/speech via plapre-serve. The Kanade tokenizer is a separate ~400 MiB GPU-resident dependency
F5-TTS
English, Mandarin, with code-switching
~ 336M
Non-commercial CPU no
Restriction
Non-commercial weights (inherited from the Emilia training set, so unlikely to be relaxed)
Params
335.8M (paper; no safetensors index)
License
CC-BY-NC-4.0 weights, MIT code
Languages
English, Mandarin, with code-switching
Streaming
No native streaming (chunk inference is text splitting)
TTFB / first-chunk
not published (the 253 ms figure is full-utterance request latency under Triton + TensorRT-LLM: vendor, one NVIDIA L20)
CPU real-time
no (every first-party benchmark is L20 GPU; 16 to 32 NFE steps plus a separate vocoder)
Quantized formats
No official GGUF or ONNX; in-repo TensorRT-LLM engine recipe
Integration path
Most production-ready path in this table: PyPI package, CLI, Gradio, GHCR image, in-repo Triton runtime. Vocos vocoder is a separate dependency
Raon-OpenTTS-0.3B
English, 16 kHz output
~ 336M
Non-commercial
Restriction
Non-commercial weights
Params
336M (model-card prose only; safetensors is null)
License
CC-BY-NC-4.0 weights, Apache-2.0 code
Languages
English, 16 kHz output
Streaming
No native streaming (F5-TTS style flow-matching DiT)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
DIY; F5-TTS-compatible code plus a separately fetched HiFi-GAN. The only downloadable artifact is a 5.4 GB raw training checkpoint with no safetensors and no config.json
IndicF5
11 Indian languages
351M
MIT * gated
Params
350,681,834 (safetensors.total)
License
MIT (HF card only; the GitHub repo ships no LICENSE file)
Languages
11 Indian languages
Streaming
No native streaming (flow matching)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
DIY; Transformers with trust_remote_code. Needs a reference clip plus its transcript on every call; Vocos vocoder pulled at runtime. HF gated (auto)
NVIDIA Magpie TTS Multilingual 357M
12: ar, de, en, es, fr, hi, it, ja, ko, pt, vi, zh. 5 fixed English voices, cloning removed in this release
~ 364M
NVIDIA OML
Restriction
NVIDIA Open Model License: commercial use permitted but with attribution, Trustworthy AI compliance and automatic termination. The card also carries a non-commercial-only checkbox that contradicts the license label
Params
364M (card prose; the repo name says 357m; safetensors is null so no authoritative count exists)
License
NVIDIA Open Model License
Languages
12: ar, de, en, es, fr, hi, it, ja, ko, pt, vi, zh. 5 fixed English voices, cloning removed in this release
Streaming
No native streaming (standard mode caps at 20 s; long-form is a sliding window)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
f16 GGUF, first-party, but built from an older revision than the .nemo
Integration path
NeMo Speech for the .nemo, NeMo-Speech.cpp for the GGUF. No safetensors and no Transformers-compatible files. livekit-plugins-nvidia and Pipecat nvidia target Riva/NIM. NanoCodec is a separate download
Marvis-TTS-100m-v0.2
English, French, German
368M
Apache 2.0 CPU borderline output stream
Params
368,273,408 (safetensors.total; 100M backbone + 60M decoder + bundled Mimi codec)
License
Apache 2.0
Languages
English, French, German
Streaming
Output-streaming (chunked)
TTFB / first-chunk
not published
CPU real-time
borderline (MLX on Apple Silicon GPU; no CPU RTF published)
Quantized formats
MLX 6-bit, 8-bit (first-party sibling repos)
Integration path
DIY; mlx-audio or Transformers
KaniTTS 400m-en
English; the sibling kani-tts-370m covers en, de, ar, zh, es, ko
370M
Revenue-capped CPU no output stream TTFB
Restriction
Revenue cap: a commercial license is required above $10,000,000 annual revenue
Params
369,847,040 (safetensors.total; the repo name rounds up)
License
LFM Open License v1.0 weights (cardData says only "other"), Apache-2.0 code, NVIDIA Open Model License on the required NanoCodec
Languages
English; the sibling kani-tts-370m covers en, de, ar, zh, es, ko
Streaming
Output-streaming (SSE) via the separate kanitts-vllm server
TTFB / first-chunk
first chunk <300 ms in streaming mode (vendor, RTX 5090, vLLM; stated as an upper bound, not a measured percentile)
CPU real-time
no (all published figures are GPU; the slowest is RTF 0.600 on an RTX 3060)
Quantized formats
MLX and MLX 8-bit (vendor); community GGUF
Integration path
kanitts-vllm exposes OpenAI-compatible /v1/audio/speech, drivable from Pipecat or LiveKit OpenAI TTS clients
KaniTTS-2-en
English
370M
Revenue-capped * CPU no output stream
Restriction
Revenue cap: a commercial license is required above $10,000,000 annual revenue
Params
369,977,088 (safetensors.total; the card claims 400M)
License
LFM Open License v1.0 weights; the kani-tts-2 code repo has no LICENSE file; NVIDIA OML on the NanoCodec
Languages
English
Streaming
Output-streaming via the separate OpenAI-compatible server
TTFB / first-chunk
not published
CPU real-time
no: ~20 s to 60 s for 10 s of audio (vendor, self-described as not production-ready)
Quantized formats
Community only: GGUF, MLX, bitsandbytes 4-bit
Integration path
DIY; PyPI package plus the vendor server. Requires pinned nemo-toolkit and transformers versions
VietTTS
Vietnamese
440M
Non-commercial
Restriction
Non-commercial weights
Params
440,482,096 core (measured: llm 315,146,753 + flow 104,874,752 + hift 20,460,591)
License
CC BY-NC weights (cardData is the bare string "cc"), Apache-2.0 code
Languages
Vietnamese
Streaming
No true incremental synthesis (the streaming response is chunked HTTP delivery of a finished WAV)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
Best integration path in this table: OpenAI-compatible /v1/audio/speech, /v1/voices, Docker and docker-compose, plus a CLI. Last substantive commit 2024-12-12
MegaTTS 3
Chinese, English, code-switching
~ 450M
Apache 2.0 CPU no
Params
0.45B diffusion transformer backbone (the full download is ~1.31B across 5 components)
License
Apache 2.0
Languages
Chinese, English, code-switching
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
no: ~30 s for 10 inference steps (vendor, hardware not named)
Quantized formats
not published
Integration path
DIY; Gradio demo and inference script. The WaveVAE encoder is deliberately withheld, so cloning a new speaker requires submitting a clip to ByteDance and waiting for a published latent
VoXtream2
English
463M
CC-BY-4.0 * CPU no dual stream TTFB
Params
462,870,528 (safetensors.total); + Kyutai Mimi codec 96,151,393 at runtime
License
CC-BY-4.0 weights. Code license is contradictory: GitHub API says Apache-2.0, the README says MIT
Languages
English
Streaming
Dual-streaming (word-by-word text in, 80 ms audio chunks out)
TTFB / first-chunk
v1: 102 ms first packet (vendor, A100, compiled, FP16) and 123 ms (vendor, RTX 3090, compiled). v2 claims 74 ms with no hardware named
CPU real-time
no: ~2.2 GB VRAM, no CPU mode documented
Quantized formats
not published
Integration path
pip install voxtream; CLI, Python generator, WebSocket server, Gradio. Needs espeak-ng. Reuses the Sesame CSM depth transformer (architectural reuse, not a fine-tune)
GPT-SoVITS v4
Chinese, English, Japanese, Korean, Cantonese
~ 491M
MIT output stream
Params
~491M model (derived: SoVITS ~384.5M + GPT ~77.6M + vocoder ~28.9M; no published count). The mandatory roberta and HuBERT front ends add ~420M more
License
MIT (code and weights)
Languages
Chinese, English, Japanese, Korean, Cantonese
Streaming
Output-streaming (chunked, api_v2.py, 4 quality/latency levels)
TTFB / first-chunk
not published
CPU real-time
not published for v4 (the RTF 0.526 figure is published for v2 ProPlus only: vendor, Apple M4 CPU)
Quantized formats
not published
Integration path
DIY; in-repo FastAPI server with a chunked streaming endpoint, plus Gradio WebUI. Upstream now positions v2Pro as surpassing v4 at lower cost
Chatterbox
23 languages (Multilingual v3)
~ 500M
MIT CPU borderline output stream TTFB
Params
~0.5B
License
MIT (code and weights)
Languages
23 languages (Multilingual v3)
Streaming
Output-streaming
TTFB / first-chunk
low latency claimed for Turbo variant (vendor; hardware unspecified)
CPU real-time
borderline
Quantized formats
not published
Integration path
Community wrappers; built-in PerTh watermarking
CosyVoice 2
Zh, En, + others; cross-lingual mode
~ 500M
Apache 2.0 CPU no dual stream TTFB
Params
0.5B
License
Apache 2.0
Languages
Zh, En, + others; cross-lingual mode
Streaming
Dual-capable chunk-aware streaming
TTFB / first-chunk
~150 ms first-chunk (vendor paper; GPU)
CPU real-time
no
Quantized formats
not published
Integration path
Community wrappers. The old FunAudioLLM GitHub org was renamed; that URL now redirects
spark-tts-salt
7 East African: Acholi, Ateso, Ugandan English, Luganda, Lugbara, Runyankore, Swahili
507M
Non-commercial * output stream gated
Restriction
The declared MIT grant is invalid: derived from CC-BY-NC-SA-4.0 base weights, and the required BiCodec is also NC-SA. ShareAlike cannot be relicensed downstream
Params
506,634,112 (safetensors.total), LLM only
License
Declares mit. Both the declared base and the original upstream are cc-by-nc-sa-4.0. Effective runtime license is NC-SA
Languages
7 East African: Acholi, Ateso, Ugandan English, Luganda, Lugbara, Runyankore, Swahili
Streaming
Output-streaming only via the upstream Triton runtime; this repo ships no streaming code
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
Requires cloning the upstream Spark-TTS for the BiCodec encode and decode path: this repo ships the LLM only and cannot synthesize standalone. HF gated (auto)
Gepard-1.0
en-US, en-GB, es-MX, pt-BR, nl-NL
556M
Apache 2.0 * CPU no output stream TTFB
Params
555,694,169 (safetensors.total)
License
Apache 2.0, but the pipeline requires the NVIDIA NeMo NanoCodec under the NVIDIA Open Model License
Languages
en-US, en-GB, es-MX, pt-BR, nl-NL
Streaming
Output-streaming (chunked, vLLM)
TTFB / first-chunk
~50 ms TTFA (vendor, single RTX 5090, served on vLLM; ~25x real time)
CPU real-time
no (CUDA + vLLM required)
Quantized formats
not published
Integration path
DIY; gepard-inference. The hosted API is Cartesia-wire-compatible; the self-hosted weights are not
Marvis-TTS-250m-v0.2
English, French, German
569M
Apache 2.0 CPU borderline output stream
Params
568,866,816 (safetensors.total; 250M backbone + 60M decoder + bundled Mimi codec)
License
Apache 2.0
Languages
English, French, German
Streaming
Output-streaming (chunked)
TTFB / first-chunk
not published
CPU real-time
borderline (MLX on Apple Silicon GPU; no CPU RTF published)
Quantized formats
MLX 4-bit, 6-bit, 8-bit (first-party sibling repos)
Integration path
DIY; mlx-audio or Transformers CsmForConditionalGeneration. Cloning via a reference clip
Audio8-TTS-Preview-0.6b
11: yue, zh, nl, en, fr, de, it, ja, ko, pl, es
601M
Apache 2.0 output stream
Params
601,159,424 backbone (safetensors.total); bundled codec ~337.4M is unverified (pickle with no index)
License
Apache 2.0
Languages
11: yue, zh, nl, en, fr, de, it, ja, ko, pl, es
Streaming
Output-streaming (SSE, ~0.56 s per chunk)
TTFB / first-chunk
not published (the published figure is warm p50 end-to-end 0.691 s, RTF 0.116: vendor, one NVIDIA H20)
CPU real-time
not published (an INT4 ONNX Runtime CPU path is documented with no RTF attached)
Quantized formats
ONNX INT4 (vendor). The MLX build is community, not first-party
Integration path
The SGLang Omni adapter serves OpenAI-shaped /v1/audio/speech with SSE, so it drives from LiveKit or Pipecat OpenAI TTS clients
OuteTTS-1.0-0.6B
14
602M
Apache 2.0
Params
602,013,696 (safetensors.total)
License
Apache 2.0. The IBM Research DAC.speech.v1.0 codec has its own license
Languages
14
Streaming
No native streaming (chunked and batch modes split text, they do not emit audio incrementally)
TTFB / first-chunk
not published
CPU real-time
not published (a llama.cpp CPU path is documented, no CPU RTF from vendor or community)
Quantized formats
GGUF, ONNX, FP8, EXL2 (all first-party); community MLX
Integration path
DIY via the outetts package (Transformers, llama.cpp, ExLlamaV2, vLLM backends). Do not substitute Llama-OuteTTS-1.0-1B: 1,248,397,312 params and CC-BY-NC-SA-4.0
Indic-Mio
22 scheduled Indian languages + English
609M
Apache 2.0 CPU no
Params
608,894,976 (safetensors.total)
License
Apache 2.0. The required MioCodec is Aratako/MioCodec-25Hz-24kHz, third-party, MIT
Languages
22 scheduled Indian languages + English
Streaming
not published
TTFB / first-chunk
not published
CPU real-time
no (both documented paths are vLLM or Transformers with device_map cuda)
Quantized formats
not published (community MLX fp16)
Integration path
DIY; vllm serve plus the community MioTTS-Inference server. Derivative of MioTTS-0.6B
MioTTS-0.6B
English, Japanese
609M
Apache 2.0
Params
608,894,976 (safetensors.total)
License
Apache 2.0 (the GGUF sibling repo declares "other"). Bundled reference-voice presets are not licensed for commercial use: supply your own reference audio
Languages
English, Japanese
Streaming
No native audio streaming (LM token streaming works via OpenAI-compatible servers; codec decode is not incremental)
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
GGUF BF16, Q8_0, Q6_K, Q4_K_M (first-party, Aratako/MioTTS-GGUF)
Integration path
Low friction: the LM is an ordinary causal LM, so it serves from vLLM, llama.cpp, Ollama or SGLang, plus the MIT MioTTS-Inference wrapper
OmniVoice
600+
613M
Non-commercial
Restriction
Non-commercial weights (inherited from Emilia), stated only in the README. High-traffic community GGUF and MLX mirrors are mistagged apache-2.0, so downstream users believe they hold a commercial license they do not
Params
612,577,288 (safetensors.total) + a required 201,400,553 audio tokenizer
License
CC-BY-NC weights per README prose; cardData.license is null. Code Apache-2.0
Languages
600+
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published (the README claims RTF as low as 0.025 with no hardware named, so it is not publishable as a number)
Quantized formats
Community: MLX 4-bit, 8-bit, bfloat16; LiteRT conversions. An official ONNX export is an open feature request
Integration path
pip install omnivoice. Deep community ecosystem: vLLM-Omni, RealtimeTTS, audio.cpp, mlx-audio, an OpenAI-compatible shim. The highest-traffic sub-1B open TTS model found in this sweep
Malaysian-TTS-0.6B-v1
Malay, English, Singlish; 7 voices
629M
No grant *
Restriction
No license stated anywhere. No rights granted, and the required DistilCodec detokenizer is separately CC-BY-NC-4.0, so the pipeline is non-commercial regardless
Params
629,342,208 (safetensors.total), LM only
License
none (cardData.license is null, no license tag, no LICENSE file); training and inference code MIT; required codec CC-BY-NC-4.0
Languages
Malay, English, Singlish; 7 voices
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published
Quantized formats
not published
Integration path
DIY; Transformers plus a manual DistilCodec install and a manual fetch of two codec files. Not runnable standalone. Requires upstream text normalization. Its pipeline_tag is text-generation, so it does not appear in HF TTS listings
VoxCPM-0.5B
Chinese, English
~ 652M
Apache 2.0 CPU no output stream
Params
~652M core (derived at bfloat16) + a 301 MB AudioVAE. "0.5B" is the MiniCPM-4-0.5B backbone name, not a measurement
License
Apache 2.0 (weights and code, explicitly)
Languages
Chinese, English
Streaming
Output-streaming (generate_streaming)
TTFB / first-chunk
not published
CPU real-time
no (CUDA >= 12.0; the device is hardcoded to cuda in config)
Quantized formats
not published (community GGUF, ONNX, RKNN2, CoreML)
Integration path
DIY; the voxcpm package and CLI. Superseded upstream: the repo now tracks VoxCPM2 (2B, over the line) and this checkpoint has not moved since 2025-09-19
NeuTTS Air
English
748M
Apache 2.0 * CPU yes output stream
Params
747,930,496 (safetensors.total)
License
Apache 2.0. Note the newer neutts-2e and neutts-nano siblings moved to a revenue-capped license; Air did not
Languages
English
Streaming
Output-streaming
TTFB / first-chunk
not published
CPU real-time
yes (GGUF on-device is the design target)
Quantized formats
GGUF
Integration path
DIY; built for edge
Irodori-TTS-v4-Small
Japanese
766M
MIT
Params
766,052,385 (safetensors.total; the 3.06 GB download is fp32 storage, not a 3B model. The HF widget rounds to 0.8B)
License
MIT (weights and code)
Languages
Japanese
Streaming
No native streaming (duration predictor then whole-utterance rectified-flow DiT)
TTFB / first-chunk
not published
CPU real-time
not published (cpu-only and macOS MPS install extras exist; no RTF on any hardware)
Quantized formats
torchao INT8, INT4, FP8 (vendor, separate repo)
Integration path
DIY; PyPI package. Requires the separate Semantic-DACVAE-Japanese-32dim codec. SilentCipher watermark applied when the dependency is present
Kyutai TTS 0.75B
English
~ 780M
CC-BY-4.0 CPU no dual stream
Params
~780M (derived at bf16; the "750M" is name-derived, no safetensors index). Mimi tokenizer is a separate ~192M checkpoint
License
CC-BY-4.0 weights. Code is dual: MIT for the Python parts, Apache-2.0 for the Rust backend
Languages
English
Streaming
Dual: text consumed incrementally, audio shifted 16 steps (1.28 s) at 12.5 Hz
TTFB / first-chunk
not published for this checkpoint (the 220 ms figure belongs to Kyutai's 2B-class announcement model)
CPU real-time
no (PyTorch/CUDA, Rust CUDA server, or MLX on Apple Silicon)
Quantized formats
No artifact; MLX runtime quantize flags only
Integration path
DIY; the moshi package, a Rust websocket server, MLX scripts. Community LiveKit plugin only, no Pipecat service
Sarashina2.2-TTS
Japanese primary, English secondary, code-switching
810M
Non-commercial CPU no
Restriction
Non-commercial, plus a mandatory inaudible watermark on every output, a name prefix on derivatives, an attribution notice, and a licensor right to revise the terms after download
Params
809,908,480 LM (safetensors.total); flow, hift and campplus add ~140M more
License
Sarashina Model NonCommercial License Agreement v2.0 (LICENSE file text; cardData.license is null, so HF facet search will not surface it)
Languages
Japanese primary, English secondary, code-switching
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
no (GPU required; ~6 GB VRAM on the Transformers backend)
Quantized formats
not published
Integration path
Well packaged: pip-installable, Gradio UI, Dockerfile, optional vLLM backend. HF only, no GitHub repo
VoiceCraft giga830M
English
840M
Non-commercial CPU no
Restriction
Non-commercial, both halves
Params
839,565,338 (safetensors.total; "830M" is a repo name)
License
Coqui Public Model License 1.0.0 weights, CC BY-NC-SA 4.0 code. This repo carries no license key in cardData
Languages
English
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
no
Quantized formats
not published
Integration path
DIY; Gradio app and notebooks. Frozen 2024-04-16
Fun-CosyVoice3-0.5B-2512
9 + 18 Chinese dialects
~ 859M
Apache 2.0 dual stream TTFB
Params
~859M (derived: llm ~506M + flow ~332M + hift ~21M at fp32; "0.5B" describes the LLM only)
License
Apache 2.0 (weights and code)
Languages
9 + 18 Chinese dialects
Streaming
Dual-capable: text-in streaming and audio-out streaming
TTFB / first-chunk
~150 ms (vendor card, hardware unspecified)
CPU real-time
not published
Quantized formats
not published (the in-repo ONNX files are fp32 pipeline components)
Integration path
DIY via QwenAudio/CosyVoice, vLLM supported. Pipecat's funasr service is FunAudioLLM ASR, not this
OpenAudio S1-mini
13
868M
Non-commercial gated
Restriction
Non-commercial
Params
867,561,487 (derived from model.pth at bf16; the vendor's "0.5B" is off by ~74 percent). The required codec adds an undetermined amount
License
cc-by-nc-sa-4.0 on the HF card; the fish-speech README instead names the "Fish Audio Research License". Both non-commercial
Languages
13
Streaming
not published for S1-mini (the SGLang streaming work is scoped to S2-Pro)
TTFB / first-chunk
not published (the ~100 ms TTFA figure is S2-Pro 4B on an H200)
CPU real-time
not published
Quantized formats
not published
Integration path
DIY via fish-speech. HF gated (auto) with a non-commercial acknowledgment checkbox. LiveKit's Fish Audio plugin and Pipecat fish target the hosted cloud API
Parler-TTS Mini
English
~ 880M
Apache 2.0 CPU no output stream
Params
880M
License
Apache 2.0
Languages
English
Streaming
Output-streaming supported
TTFB / first-chunk
not published
CPU real-time
no
Quantized formats
not published
Integration path
DIY; HF Transformers native. Rule 5 flag: checkpoint frozen 2024, repo last pushed 2024-12-10 with no maintainer commits since. Archive candidate
Qwen3-TTS-12Hz-0.6B-CustomVoice
10; 9 fixed premium timbres with instruction control, no reference-audio cloning (that is the Base checkpoint)
906M
Apache 2.0 CPU no output stream
Params
905,788,672 LM (safetensors.total); the required speech tokenizer adds ~170.5M
License
Apache 2.0
Languages
10; 9 fixed premium timbres with instruction control, no reference-audio cloning (that is the Base checkpoint)
Streaming
Output-streaming (chunked)
TTFB / first-chunk
not published (the 97 ms claim names no hardware, batch size or conditions)
CPU real-time
no
Quantized formats
not published first-party (community MLX, GGUF, ONNX, OpenVINO INT8)
Integration path
DIY; QwenLM/Qwen3-TTS, vLLM-Omni offline inference. Genuine open weights, not the hosted Qwen3-TTS-Flash API
Qwen3-TTS-12Hz-0.6B-Base
10 + Chinese dialect voices
915M
Apache 2.0 CPU no output stream
Params
914,643,008 LM (safetensors.total) + speech tokenizer 170,557,441
License
Apache 2.0
Languages
10 + Chinese dialect voices
Streaming
Output-streaming (chunked)
TTFB / first-chunk
not published (same 97 ms claim, no hardware)
CPU real-time
no
Quantized formats
not published first-party (community MLX, GGUF, ONNX, OpenVINO INT8)
Integration path
DIY; QwenLM/Qwen3-TTS, vLLM-Omni offline inference
Sesame CSM-1B
English
~ 1.00B
Apache 2.0 CPU no other stream
Params
1B (boundary case, see rule 1)
License
Apache 2.0
Languages
English
Streaming
Conversational, context-conditioned generation
TTFB / first-chunk
not published
CPU real-time
no
Quantized formats
community quantized variants exist; verify
Integration path
Community wrappers
Piper
Many languages, per-language voices
GPL CPU yes sentence stream
Params
tens of M per voice
License
GPL v3
Languages
Many languages, per-language voices
Streaming
Sentence-level streaming
TTFB / first-chunk
not published
CPU real-time
yes
Quantized formats
ONNX (ships as ONNX)
Integration path
DIY; the default for Home Assistant and Raspberry Pi. GPL v3: fine to run as a service, read the license for distribution
Silero V5 CIS base
20+ CIS and Russia languages, 80+ speakers
MIT CPU yes
Params
not published (87.4 MB TorchScript checkpoint bounds it near 22M)
License
MIT (LICENSE_CIS; covers v5_cis_base and v5_cis_base_nostress only, not v5_ru or v5_cis_ext)
Languages
20+ CIS and Russia languages, 80+ speakers
Streaming
No native streaming (utterance-level apply_tts)
TTFB / first-chunk
not published
CPU real-time
yes: 36.48x real time at 1 thread, 85.72x at 4 threads (vendor wiki, Intel Core i9-10940X @ 3.30 GHz)
Quantized formats
not published
Integration path
torch.hub or pip install silero. Pure PyTorch, vocoder included, no external dependency
StyleTTS 2
English (single and multi-speaker)
MIT CPU borderline
Params
under 1B
License
MIT
Languages
English (single and multi-speaker)
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
borderline
Quantized formats
community ONNX efforts
Integration path
DIY
MeloTTS
En (4 accents), Es, Fr, Zh, Ja, Ko
MIT CPU yes
Params
under 1B (VITS-based)
License
MIT
Languages
En (4 accents), Es, Fr, Zh, Ja, Ko
Streaming
No native streaming; sentence-chunk workaround
TTFB / first-chunk
not published
CPU real-time
yes
Quantized formats
not published
Integration path
DIY; simple Python API
Silero V5 RU and CIS ext
Russian (v5_ru through v5_5_ru) plus the CIS ext speaker set
Non-commercial
Restriction
Non-commercial share-alike. The MIT LICENSE_CIS covers only the v5_cis_base variants, which are in the main table
Params
not published (TorchScript checkpoints, no exact count anywhere)
License
CC-BY-NC-SA-4.0 (main repo LICENSE; GitHub reports NOASSERTION)
Languages
Russian (v5_ru through v5_5_ru) plus the CIS ext speaker set
Streaming
No native streaming
TTFB / first-chunk
not published
CPU real-time
not published (see the CIS base row for the published i9-10940X figures)
Quantized formats
not published
Integration path
torch.hub or pip install silero. Self-contained TorchScript, vocoder included. Note livekit-plugins-silero and Pipecat's Silero service are VAD, not TTS