AIREITER

Локальный запуск Ming-3.0-TTS: 0.5B или Tiny?

Последнее обновление: 2026-10-20 02:33:45

Название Tiny здесь может сбить с толку. Для первого локального запуска Ming-3.0-TTS разумнее взять плотный чекпойнт 0.5B, а Tiny выбирать только в том случае, если вам обязательно нужна генерация подкастов с несколькими спикерами. Главная неопределённость — железо: InclusionAI тестировала модели на H800 и H20, но минимальные требования для потребительских GPU не публиковала.

Сначала выберите чекпойнт, потом создавайте окружение

У Ming-3.0-TTS два чекпойнта с разной архитектурой, зависимостями и точками входа. Версия 0.5B — логичный вариант для первого развёртывания. Tiny оправдывает более крупный объём, если сходство голоса или диалоги нескольких спикеров важнее простоты запуска.

Критерий выбораMing-3.0-tts-0.5BMing-3.0-tts-tiny
АрхитектураПлотная backbone-модель Qwen2.5-0.5BLing V3 MoE: 7.9B параметров всего / 1.3B активных
Основной класс официального APIming_tts.MingTTSming_tiny.MingTinyTTS
Основной CLIinfer.pyinfer_tiny.py и скрипты запуска в один клик
Эталонное окружениеPyTorch 2.6, CUDA 12.4Python 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Важное правило для входных данных
Клонировать один голосTTSseedРеференсное аудио и точный транскрипт
Немецкий, испанский, французский, корейский или японскийMULTILINGUALmultilingualРеференс и транскрипт; язык цели указывается явно
Смех, вздохи или дыхание внутри фразыTTSparalinguisticКитайский или английский; используйте документированные inline-теги
Естественно-языковая инструкция по подачеFREEFORMfreeformРеференс не рекомендуется; не объединяйте с другими управляющими задачами
Создать голос по текстовому описаниюVOICE_DESIGNvoice_designБез референсного аудио
Задать эмоциюEMOTIONemotionРеференсное аудио; транскрипт референса не нужен
Задать скорость, высоту тона и громкостьBASICbasicПередавайте все три параметра
Сычуаньский или кантонскийDIALECTdialectБез 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.

Используйте такую последовательность проверок:

  1. Запустите соответствующий скрипт предварительной проверки и сохраните его вывод вместе с ревизией чекпойнта.
  2. Сгенерируйте короткий WAV через встроенный голос или путь без спикера, затем повторите тест с продакшен-форматом референса.
  3. Измерьте пиковое потребление VRAM и полное время для короткого, среднего и длинного рабочего текста.
  4. Отдельно оцените разборчивость и идентичность голоса на каждом языке, который будет поставляться пользователям.
  5. Протестируйте каждую обязательную настройку как самостоятельную задачу; отклоняйте конфигурации, опирающиеся на неподдерживаемые сочетания.
  6. Нагрузочно протестируйте поведение 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, если генерация подкастов с несколькими спикерами обязательна или локальная оценка подтверждает, что его более высокие показатели сходства голосов на китайском и английском переносятся на ваши голоса.