Название Tiny здесь может сбить с толку. Для первого локального запуска Ming-3.0-TTS разумнее взять плотный чекпойнт 0.5B, а Tiny выбирать только в том случае, если вам обязательно нужна генерация подкастов с несколькими спикерами. Главная неопределённость — железо: InclusionAI тестировала модели на H800 и H20, но минимальные требования для потребительских GPU не публиковала.
Сначала выберите чекпойнт, потом создавайте окружение
У Ming-3.0-TTS два чекпойнта с разной архитектурой, зависимостями и точками входа. Версия 0.5B — логичный вариант для первого развёртывания. Tiny оправдывает более крупный объём, если сходство голоса или диалоги нескольких спикеров важнее простоты запуска.
| Критерий выбора | Ming-3.0-tts-0.5B | Ming-3.0-tts-tiny |
|---|---|---|
| Архитектура | Плотная backbone-модель Qwen2.5-0.5B | Ling V3 MoE: 7.9B параметров всего / 1.3B активных |
| Основной класс официального API | ming_tts.MingTTS | ming_tiny.MingTinyTTS |
| Основной CLI | infer.py | infer_tiny.py и скрипты запуска в один клик |
| Эталонное окружение | PyTorch 2.6, CUDA 12.4 | Python 3.10.15, PyTorch 2.7.1+cu118 |
| Задокументированное железо | Протестировано на H800-80GB и H20-96G | Рекомендована H800 |
| Уникальная причина выбрать модель | Меньший плотный чекпойнт; в тестах разработчика выше точность для корейского и базовых параметров управления | Режим подкаста с несколькими спикерами; в тестах разработчика выше сходство голосов на китайском и английском |
| Опубликованный размер чекпойнта | Около 2.96 GB, согласно сравнению файлов, опубликованному OrcaRouter | Около 18 GB на Hugging Face |
Оба чекпойнта генерируют звук с частотой 44.1 kHz, поддерживают семь языков и используют отдельные режимы задач для клонирования голоса, голосового дизайна, эмоций, диалектов и других настроек. В официальном репозитории обе модели выпущены под лицензией MIT. Там же указано, что Tiny требует отдельного окружения из-за отличающихся закреплённых зависимостей.
Слово Tiny описывает активные вычисления MoE, а не размер хранимых весов. В карточке модели Tiny заявлены 7.9B параметров backbone, примерно 1.3B активных параметров на токен и репозиторий объёмом около 18 GB.
Локальная установка: от клонирования до проверки чекпойнта
Для надёжного локального запуска Ming-3.0-TTS две модели стоит держать в разных окружениях. Один раз клонируйте официальный код, установите зависимости только выбранного чекпойнта, скачайте его веса и до загрузки модели запустите соответствующий скрипт предварительной проверки.
Установка окружения для 0.5B
Базовый путь через репозиторий выглядит так:
git clone https://github.com/inclusionAI/Ming-3.0-tts.git
cd Ming-3.0-tts
conda create -n ming-tts python=3.10 -y
conda activate ming-tts
pip install -r requirements.txt
В карточке модели 0.5B эталонной конфигурацией названы PyTorch 2.6, CUDA 12.4 и transformers==4.46.3. FlashAttention необязателен: запасной вариант — PyTorch SDPA. Он обеспечивает совместимость, но проект не приводит данных о снижении скорости.
Числа, даты, единицы измерения и символы нормализуются с помощью FST. Установите закреплённую версию Pynini через Conda:
conda install -c conda-forge pynini==2.1.6
У pynini нет универсального wheel-пакета. Флаг --no_text_normalization позволяет обойтись без него, однако в этом случае аббревиатуры, даты, числа и символы попадут в синтезатор в исходном виде. Это инструмент диагностики, а не настройка для продакшена по умолчанию.
Устанавливайте Tiny в отдельное окружение
Не накладывайте Tiny поверх окружения для 0.5B. Официальная конфигурация закрепляет Python 3.10.15, wheels для CUDA 11.8, PyTorch и torchaudio 2.7.1, а также transformers==4.46.3:
conda create -n ming-tiny python=3.10.15 -y
conda activate ming-tiny
pip install -r requirements-tiny.txt
Tiny использует вычисления BF16, переносимый цикл MoE и рекуррентное состояние FP32. InclusionAI рекомендует NVIDIA H800; в документации нет поддерживаемого пути для CPU, Apple Silicon, GGUF или llama.cpp.
Скачивание и проверка любого чекпойнта
CLI Hugging Face позволяет разместить веса в предсказуемом локальном каталоге:
pip install "huggingface_hub[cli]"
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
Для Tiny замените ID модели и запустите его собственный верификатор:
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
Скрипты предварительной проверки валидируют структуру чекпойнта и токенизатора, не загружая веса. Пользователи из материкового Китая могут вместо этого применить команду загрузки через ModelScope, указанную в README проекта.
Сначала сгенерируйте WAV, потом добавляйте сервер
Первая полезная проверка — один WAV, созданный через CLI репозитория. Для клонирования голоса в 0.5B нужны целевой текст, референсный WAV, его точная расшифровка и --use_spk_emb. Транскрипт входит в путь кондиционирования, а не служит необязательными метаданными.
python infer.py \
--model_path Ming-3.0-tts-0.5b \
--task TTS \
--language_id English \
--text "The release candidate passed every audio check." \
--prompt_wav_path reference.wav \
--prompt_text "This is the exact speech in the reference recording." \
--use_spk_emb \
--output output/first.wav
На выходе должен получиться WAV с частотой 44.1 kHz. Если проверка чекпойнта проходит, а эта команда завершается ошибкой, прежде чем подключать UI или серверный слой проверьте совместимость CUDA/PyTorch и референсный файл. Репозитории на Hugging Face распространяют чекпойнты, но обе карточки моделей указывают, что для практического инференса нужен отдельный GitHub-репозиторий.
Референсная запись должна быть чистой, а её транскрипт — точным. Официальная документация не называет оптимальную длительность референса, поэтому не стоит превращать непубличное эмпирическое правило в жёсткое требование валидации.
Единый speech endpoint для Ming-3.0-TTS
SGLang-Omni может открыть любой из чекпойнтов через POST /v1/audio/speech на одном GPU. В руководстве SGLang для Ming-3.0-TTS предобработка выполняется на CPU, а backbone и декодер AudioVAE работают на одном GPU.
Запустите один из чекпойнтов:
sgl-omni serve --model-path inclusionAI/Ming-3.0-tts-0.5B
Затем запросите WAV:
curl http://127.0.0.1:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "inclusionAI/Ming-3.0-tts-0.5B",
"input": "The local speech endpoint is ready.",
"response_format": "wav",
"seed": 123
}' \
--output speech.wav
Endpoint принимает wav, mp3, flac и pcm; формат по умолчанию — WAV. Пустой вход вернёт HTTP 400. Значение поля model должно совпадать с чекпойнтом, на котором запущен сервер.
Не проектируйте воспроизведение вокруг потоковой передачи в стиле токенов. В руководстве SGLang сказано, что stream=true всё равно ждёт завершения генерации и возвращает один полный PCM-ответ. Для клонирования также допускается только одна референсная запись: второй референс будет отклонён.
Настройки работают как режимы задач, а не как набор произвольных флагов
Управление в Ming-3.0-TTS построено на отдельных контрактах задач. Выбирайте режим под нужный результат, а не пытайтесь объединить в одном запросе все доступные настройки.
| Цель | Задача 0.5B | Задача Tiny | Важное правило для входных данных |
|---|---|---|---|
| Клонировать один голос | TTS | seed | Референсное аудио и точный транскрипт |
| Немецкий, испанский, французский, корейский или японский | MULTILINGUAL | multilingual | Референс и транскрипт; язык цели указывается явно |
| Смех, вздохи или дыхание внутри фразы | TTS | paralinguistic | Китайский или английский; используйте документированные inline-теги |
| Естественно-языковая инструкция по подаче | FREEFORM | freeform | Референс не рекомендуется; не объединяйте с другими управляющими задачами |
| Создать голос по текстовому описанию | VOICE_DESIGN | voice_design | Без референсного аудио |
| Задать эмоцию | EMOTION | emotion | Референсное аудио; транскрипт референса не нужен |
| Задать скорость, высоту тона и громкость | BASIC | basic | Передавайте все три параметра |
| Сычуаньский или кантонский | DIALECT | dialect | Без language_id |
| Сценарий с несколькими спикерами | Не поддерживается | podcast | По одному референсу и транскрипту на каждого спикера; каждая строка начинается с speaker_N: |
В официальном руководстве прямо сказано, что режим free-form нельзя сочетать с голосовым дизайном, встроенными голосами, эмоциями, диалектом или базовыми атрибутами. Несколько паралингвистических событий в одной фразе поддерживаются, но в разделе об ограничениях репозитория отмечено, что их стабильность пока уступает одиночным событиям.
Что доказывают оценки — и чего они не доказывают
Наиболее убедительные публичные данные говорят в пользу 0.5B как варианта по умолчанию и Tiny как специализированной модели. Воспроизведённые в официальном README результаты Artificial Analysis дают Ming-3.0-TTS 1,069 Controlled Voice Elo и 93.2% устойчивости произношения в October 2026, но эти лидербордные показатели относятся к 0.5B и не доказывают качество Tiny.
Оценки разработчика показывают реальный компромисс между чекпойнтами. На данных Seed-TTS у 0.5B заявлен WER для китайского/английского 0.800%/1.584%, а у Tiny — 0.820%/1.666%. При этом Tiny показывает более высокое сходство голосов на обоих языках: 0.781/0.728 против 0.758/0.691 у 0.5B. Эти цифры взяты из таблиц оценивания InclusionAI, а не из воспроизведённого локального теста.
Tiny не превосходит 0.5B одинаково уверенно на всех семи языках. В официальной многоязычной таблице для Tiny указан CER корейского 6.000%, тогда как у 0.5B — 1.728%. Только Tiny поддерживает подкасты и заявляет 2.03% podcast CER, 0.561 условного сходства спикера и 2.12 UTMOS, однако InclusionAI также называет качество предсказанного аудио подкаста направлением для улучшения.
Практический вывод узкий: для первого развёртывания, корейского языка и меньшей операционной сложности выбирайте 0.5B; Tiny стоит оценивать для генерации подкастов или когда его более высокие показатели сходства голосов на китайском и английском подтверждаются на ваших собственных референсах.
Проверяйте развёртывание на своём железе
Успешный запуск по официальной инструкции ещё не означает пригодность к продакшену на потребительском GPU. В критерии допуска к развёртыванию должны входить пиковое потребление VRAM, время до первого готового WAV, real-time factor, частота ошибок и качество результата на тех же языках и условиях референсного аудио, которые будут использоваться в приложении.
«Пока нет GGUF/llama.cpp и нет бенчмарков на потребительских GPU». — @TeksEdge on X
Это наблюдение соответствует границе официальных данных: в документации для 0.5B упомянуты тестовые системы H800-80GB и H20-96G, а для Tiny рекомендована H800. Ни одна официальная карточка модели не публикует результаты для RTX 4090, RTX 3090, Windows, WSL2, macOS, минимального объёма VRAM или real-time factor.
Используйте такую последовательность проверок:
- Запустите соответствующий скрипт предварительной проверки и сохраните его вывод вместе с ревизией чекпойнта.
- Сгенерируйте короткий WAV через встроенный голос или путь без спикера, затем повторите тест с продакшен-форматом референса.
- Измерьте пиковое потребление VRAM и полное время для короткого, среднего и длинного рабочего текста.
- Отдельно оцените разборчивость и идентичность голоса на каждом языке, который будет поставляться пользователям.
- Протестируйте каждую обязательную настройку как самостоятельную задачу; отклоняйте конфигурации, опирающиеся на неподдерживаемые сочетания.
- Нагрузочно протестируйте поведение API с полным аудиосигналом, включая тайм-ауты запросов и параллельность.
Без этих измерений фраза «работает локально» означает лишь то, что эталонный стек способен загрузиться и синтезировать речь на задокументированном серверном оборудовании.
FAQ по Ming-3.0-TTS
Можно ли запустить Ming-3.0-TTS на RTX 4090 или 3090?
Официальный релиз не указывает минимальный объём VRAM и не публикует бенчмарки на потребительских GPU. Чекпойнт 0.5B выглядит более вероятной отправной точкой, но перед выбором любой из этих карт локально проверьте пиковое выделение памяти и real-time factor.
Работает ли Ming-3.0-TTS на Windows или macOS?
Официальные эталонные окружения — это Linux-стеки с CUDA. В официальном репозитории не задокументирована нативная поддержка Windows, WSL2, Apple Silicon, MLX, GGUF или llama.cpp.
Можно ли использовать Ming-3.0-TTS коммерчески?
Код и опубликованные чекпойнты распространяются по лицензии MIT. В рекомендациях по использованию разработчики запрещают обманную имитацию личности или имитацию без согласия и просят маркировать синтетическую речь, если её можно принять за реальную запись.
Передаёт ли SGLang API аудио в реальном времени?
Нет. Задокументированное поведение stream=true предполагает завершение генерации до возврата единого PCM-ответа, поэтому клиентам следует считать это генерацией полного ответа, а не поэтапным воспроизведением.
Что выбрать: Ming-3.0-tts-0.5B или Tiny?
Начните с 0.5B: это меньший чекпойнт, более простое развёртывание, синтез корейской речи и обычные сценарии с одним спикером. Выбирайте Tiny, если генерация подкастов с несколькими спикерами обязательна или локальная оценка подтверждает, что его более высокие показатели сходства голосов на китайском и английском переносятся на ваши голоса.