Ming-3.0 TTS combines voice cloning, voice design, seven languages, two Chinese dialects, and expressive cues under an MIT license. Its weak point is deployment evidence: official tests use datacenter GPUs, and the larger “Tiny” checkpoint is not small in storage or memory terms.
Choose the checkpoint before reading the benchmarks
Ming-3.0 TTS includes a dense 0.5B model and a 7.9B-total mixture-of-experts model called Tiny, which activates about 1.3B parameters per token. Start with 0.5B; choose Tiny when multi-speaker podcast generation or stronger vendor-reported speaker similarity justifies its larger footprint.
| Decision | Ming-3.0-tts-0.5B | Ming-3.0-tts-tiny |
|---|---|---|
| Architecture | Dense, Qwen2.5-0.5B backbone | Ling V3 MoE, 7.9B total/1.3B active |
| Repository metadata | 1.48B BF16 parameters; 2.96 GB safetensors | About 9B parameters; approximately 18 GB repository footprint |
| Best reason to choose it | Smaller download and independent arena result | Multi-speaker podcast mode and stronger vendor-reported similarity |
| Independent TTS arena result | Yes: 1,188 Provider Voice Elo | No checkpoint-specific independent Elo found |
| Official GPU guidance | Tested on H800-80GB and H20-96G | H800 recommended |
| Native entry point | infer.py / MingTTS | infer_tiny.py / MingTinyTTS |
The model names describe the backbones more than the complete speech pipelines. Hugging Face reports 1,479,454,804 BF16 parameters in the 0.5B package because it also includes the speech-generation components. Tiny’s sparse activation can reduce compute, but it does not remove the storage and memory cost of its experts. Sources: official 0.5B model card and official Tiny model card.
What inclusionAI released
InclusionAI released both checkpoints with weights, inference code, task cookbooks, and 0.5B Docker material in October 2026. The official repository records the release and provides the current setup instructions.
Both checkpoints bundle the language backbone, diffusion-transformer head, audio tokenizer, CAM++ speaker encoder, and text tokenizer. They output 44.1 kHz audio and support Chinese, English, German, Spanish, French, Korean, and Japanese; separate dialect tasks cover Sichuanese and Cantonese.
Shared capabilities include zero-shot cloning, natural-language voice design, more than 100 Chinese voices, five English voices, and 14 inline cues such as laughter, breathing, coughing, sighs, and hesitation. Users can also control emotion, speed, pitch, and volume. Tiny adds multi-speaker podcast generation.
Controls are separate task modes, not freely composable switches. Free-form delivery cannot be combined with voice design, a built-in voice, emotion, dialect, or basic attribute controls. A product that needs a cloned speaker, a specified emotion, and a dialect in one call must test whether the supported task contract can express that combination.
Three local deployment paths
Ming-3.0 TTS runs through inclusionAI’s native Python code or SGLang-Omni’s HTTP server. Native 0.5B is the lowest-risk first test, native Tiny exposes the podcast task, and SGLang-Omni supplies the cleanest API but no progressive audio streaming.
| Path | Best for | Key constraint |
|---|---|---|
| Native 0.5B | First evaluation and full 0.5B controls | Official tests use H800/H20 |
| Native Tiny | Podcast mode and Tiny task cookbook | Separate CUDA 11.8 environment; H800 recommended |
| SGLang-Omni Tiny | Local /v1/audio/speech endpoint | stream=true still returns a completed waveform |
The native 0.5B route pins PyTorch 2.6, CUDA 12.4, and Transformers 4.46.3. Text normalization for numbers, dates, units, and symbols requires pynini==2.1.6.
git clone https://github.com/inclusionAI/Ming-3.0-tts.git
cd Ming-3.0-tts
pip install -r requirements.txt
conda install -c conda-forge pynini==2.1.6
hf download inclusionAI/Ming-3.0-tts-0.5B --local-dir Ming-3.0-tts-0.5b
python tools/preflight.py --model_path ./Ming-3.0-tts-0.5b
After preflight passes, this official command pattern performs a cloning test:
python infer.py \
--model_path ./Ming-3.0-tts-0.5b \
--task TTS \
--language_id English \
--text "The release candidate passed the final test." \
--prompt_wav_path /path/to/reference.wav \
--prompt_text "The exact transcript of the reference recording." \
--use_spk_emb \
--output output/clone.wav
Tiny needs a separate environment because its pinned dependencies differ:
conda create -n ming-tiny python=3.10.15 -y
conda activate ming-tiny
pip install -r requirements-tiny.txt
hf download inclusionAI/Ming-3.0-tts-tiny --local-dir Ming-3.0-tts-tiny
python tools/preflight_tiny.py --model_path ./Ming-3.0-tts-tiny
For HTTP serving, SGLang-Omni documents a one-GPU server:
sgl-omni serve --model-path inclusionAI/Ming-3.0-tts-tiny
curl -X POST http://127.0.0.1:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "inclusionAI/Ming-3.0-tts-tiny",
"input": "The release candidate passed the final test.",
"response_format": "wav",
"seed": 123
}' --output speech.wav
SGLang-Omni supports WAV, MP3, FLAC, and PCM. It accepts one cloning reference, and bare ref_audio paths are resolved on the server. Its documented stream=true behavior waits for synthesis to finish before returning one PCM body, so it does not support playback while generation continues.
Quality evidence: strong cloning, mixed native voices
The strongest directly accessible independent evidence applies to Ming-3.0-tts-0.5B, not Tiny. On October 19, 2026, Artificial Analysis listed Ming at 1,188 Elo on Provider Voice, where models use their native voices. InclusionAI reports a 1,069 Controlled Voice Elo from Artificial Analysis, where models clone the same reference voices.
| Evidence | Result | Interpretation |
|---|---|---|
| Artificial Analysis Provider Voice | 1,188 Elo; 18th on October 19, 2026 | Native voices are competitive, not category-leading |
| Controlled Voice, relayed by inclusionAI | 1,069 Elo; first among open weights at release | Cloning is the stronger signal |
| Vendor Chinese WER | 0.800% for 0.5B; 0.820% for Tiny | Similar content accuracy |
| Vendor Chinese speaker similarity | 0.758 for 0.5B; 0.781 for Tiny | Tiny favors speaker resemblance |
| Vendor Korean CER | 1.728% for 0.5B; 6.000% for Tiny | Tiny is the wrong default for Korean |
The Artificial Analysis Provider Voice leaderboard placed Ming behind Fish Audio Drama 3 Preview and Breeze TTS 2 among open-weight models on that date. Provider Voice measures native voices; Controlled Voice measures cloning, so the rankings answer different questions.
Tiny’s detailed scores come from inclusionAI’s evaluation tables. It reports leading WER of 0.325% for German and 0.971% for Spanish, but its Korean CER reaches 6.000%. InclusionAI identifies Korean accuracy as a limitation in the official Tiny model card.
Limitations that affect production
Ming-3.0 TTS has no published hosted API price, no checkpoint-specific independent Tiny arena result, and no official consumer-GPU requirement. Those omissions prevent reliable capacity planning for teams without H800-class infrastructure.
The 0.5B setup was tested on H800-80GB and H20-96G. Tiny recommends H800, while SGLang-Omni only states that its server uses one GPU. Official sources do not publish RTX 4090 VRAM use, Apple Silicon performance, Tiny real-time factor, concurrency, or cost per generated hour.
One launch-day practitioner summarized the appeal and the missing evidence:
“Ant open-sourced a 0.5B model that can clone a voice, design a new one from text, and make it laugh, sigh...” — David Hendrickson (@TeksEdge)
The same post noted the absence of GGUF builds and consumer-GPU benchmarks. This is a user observation, not a hardware measurement; the production decision should rest on a local load and latency test.
The official Tiny model card reports weaker pitch control than speed and volume, lower stability with multiple paralinguistic events, and a podcast result of 2.03% CER with 2.12 UTMOS, below ZipVoice-Dia’s 2.24 UTMOS. The official repository roadmap still lists the technical report as unfinished.
Workload verdict and adoption gate
Ming-3.0 TTS is worth evaluating for self-hosted cloning, expressive narration, Chinese dialect work, and commercially usable open weights. It is not yet the default for low-latency conversational agents or predictable operation on a 24 GB desktop GPU.
| Workload | Verdict | Reason |
|---|---|---|
| Voice cloning | Recommended for evaluation | The vendor-reported Controlled Voice result is the strongest cloning signal |
| Expressive Chinese/English narration | Recommended for evaluation | 14 inline events and explicit delivery controls |
| German or Spanish synthesis | Promising | Tiny leads inclusionAI’s WER table; evidence remains vendor-produced |
| Korean synthesis | Prefer 0.5B over Tiny | Vendor CER is 1.728% vs 6.000% |
| Multi-speaker podcast | Use Tiny | Podcast mode is Tiny-only |
| Real-time voice agent | Not recommended yet | The documented SGLang endpoint does not progressively stream |
| Consumer GPU deployment | Test before committing | Official 4090-class requirements and throughput are absent |
| Commercial self-hosting | Permitted | Code and weights use the MIT license |
Before production, verify four items with representative inputs: speaker preservation, normalization of dates and symbols, latency plus concurrency on the chosen GPU, and compatibility between required controls and the model’s task modes. Start with 0.5B; move to Tiny only when its podcast mode or speaker-similarity gain produces a measurable benefit.
FAQ
Does voice cloning require a reference transcript?
The native inclusionAI cloning examples require reference audio and its matching transcript. SGLang-Omni accepts ref_text, although its documentation says the text does not change the speaker embedding.
Can Ming-3.0 TTS run on an RTX 4090?
No official RTX 4090 memory or throughput result is available. A successful load would not establish production readiness; measure latency, long-input stability, and concurrent requests on the target card.
Does Ming-3.0 TTS provide a hosted API?
InclusionAI publishes local Python and CLI interfaces, not a priced hosted API. SGLang-Omni exposes Tiny through a local /v1/audio/speech endpoint, but that endpoint does not progressively stream audio.