This repository contains Ming-3.0-tts-tiny, the Ming-3.0-tts mixture-of-experts checkpoint built on Ling V3. Its Ling V3 backbone has 7.9B total parameters and activates about 1.3B parameters per token. The repository includes sharded weights, supporting model code, audio tokenizer, speaker encoder and text tokenizer.
Inference requires the Ming-3.0-tts GitHub repository. This Hugging Face repository is for checkpoint distribution and does not provide a standalone inference setup. Clone the GitHub repository and follow its README for the current dependencies, inference code and usage instructions. The CLI scripts and Python APIs referenced below are provided by the GitHub repository.
| Item | Value |
|---|---|
| Architecture | Mixture of Experts, Ling V3 backbone |
| Backbone parameters | 7.9B total, about 1.3B active per token |
| Languages | Chinese, English, German, Spanish, French, Korean, Japanese |
| Dialects | Sichuanese, Cantonese |
| Python API | ming_tiny.MingTinyTTS |
| CLI | infer_tiny.py |
| Prompt protocol | thinking_v1 |
podcast)git clone https://github.com/inclusionAI/Ming-3.0-tts.git
cd Ming-3.0-tts
conda create -n ming-tiny python=3.10.15 -y
conda activate ming-tiny
pip install -r requirements-tiny.txt
Tiny uses a separate reference inference environment: Python 3.10.15, PyTorch and torchaudio 2.7.1+cu118 (CUDA 11.8 wheels), and transformers==4.46.3. Install the pinned dependencies from requirements-tiny.txt in a dedicated environment, as other dependency versions differ from 0.5B. We recommend using NVIDIA H800 for inference.
pip install "huggingface_hub[cli]"
hf download inclusionAI/Ming-3.0-tts-tiny --local-dir Ming-3.0-tts-tiny
python infer_tiny.py \
--model_path inclusionAI/Ming-3.0-tts-tiny \
--task dialect \
--text "今日天气几好,我哋食完饭一齐去海边行下啦。" \
--dialect 广粤话 \
--prompt_wav data/wavs/10002287-00000094.wav \
--output_path output/tiny.wav
Loading configures the release runtime (bf16, portable MoE loop, fp32 recurrent state) and checks the checkpoint against it; generate() defaults to cfg_scale=2.0, temperature=0, flow_steps=10, and sigma=0.25.
from ming_tiny import MingTinyTTS
tts = MingTinyTTS.from_pretrained("inclusionAI/Ming-3.0-tts-tiny", device="cuda:0")
tts.generate(
task="seed",
text="傍晚的风从山口吹过来,远处的云慢慢染成了金色。",
prompt_wav="data/wavs/10002287-00000094.wav",
prompt_text="在此奉劝大家别乱打美白针。",
target_language="Chinese", # English for English text
output_path="outputs/seed.wav",
)
Each call selects one task and accepts the inputs listed below:
| Task | Reference audio | Reference text | target_language | Controls |
|---|---|---|---|---|
seed | one | required | Chinese / English, required | — |
multilingual | one | required | German / Spanish / French / Korean / Japanese | — |
paralinguistic | one | required | Chinese / English | inline tags in text |
podcast | one per speaker | one per speaker, same order | inferred from the text | speaker_N: at the start of every line |
basic | one | not accepted | — | speed, pitch, volume, all three |
emotion | one | not accepted | — | emotion |
dialect | one | not accepted | — | dialect: 川渝话 / 广粤话 |
freeform | one | not accepted | — | instruction |
voice_design | none | — | — | style |
ip | none | — | — | ip |
Freeform always requires a reference clip and cannot be combined with voice design, a built-in voice, emotion, dialect or attribute controls. For podcast, start every dialogue line with speaker_N: and provide one reference audio clip and transcript per speaker, in speaker order. Repeat --prompt_wav and --prompt_text on the command line.
See the Tiny examples for a Podcast Python example and examples/one_click/ for scripts for every task. python infer_tiny.py --help lists the CLI arguments.
python tools/preflight_tiny.py --model_path /path/to/Ming-3.0-tts-tiny
SGLang-Omni serves this checkpoint on one GPU:
sgl-omni serve --model-path inclusionAI/Ming-3.0-tts-tiny
Synthesize speech through the OpenAI-compatible endpoint:
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": "Get the trust fund to the bank early.",
"response_format": "wav",
"seed": 123
}' \
--output speech.wav
response_format accepts wav, mp3, flac, and pcm. For zero-shot voice cloning, pass ref_audio (a server-side path or a data: URL) together with ref_text, the transcript of the reference recording. See the SGLang-Omni cookbook for details.
Benchmark comparisons from the project README.
Bold and underline mark the best and second-best values among the listed open-source models; ties share a mark. Seed-TTS and NVbench-GT are unranked reference rows.
Evaluated on the German, Spanish, French, Korean, and Japanese subsets of MiniMaxAI/TTS-Multilingual-Test-Set.
Released under the MIT license.