# MOSS-TTS (только CPU, 100M)

MOSS-TTS — это семейство открытого исходного кода для синтеза речи от **OpenMOSS** (Института инноваций Шанхая, в сотрудничестве с **Fudan NLP** и **MOSI.AI**, под руководством проф. Сипэна Цю). Флагманская **MOSS-TTS-Nano** всего лишь **100 млн параметров**, работает в реальном времени на **4-ядерном CPU без GPU**, выдаёт **стерео 48 кГц**, и поддерживает **20 языков** с клонованием голоса в режиме zero-shot. Всё семейство масштабируется до 8B для диалогов нескольких спикеров, дизайна голоса и генерации звуковых эффектов.

{% hint style="info" %}
**Выпущено:** 10 апреля 2026 (Nano) · сборка ONNX для CPU 17 апреля 2026 · **Лицензия:** Apache 2.0
{% endhint %}

Если Kokoro занимает нишу западного английского языка с 82M параметров, то MOSS-TTS-Nano занимает нишу **мультиязычности с упором на CPU** : та же философия крошечной модели, но стерео 48 кГц, 20 языков, клонование голоса и путь ONNX/GGUF без Torch. Для всех, кто хочет внедрить TTS без оплаты за GPU — это та самая модель.

### Семейство MOSS-TTS

| Модель                         | Размер          | VRAM               | Лучше всего подходит для                             |
| ------------------------------ | --------------- | ------------------ | ---------------------------------------------------- |
| **MOSS-TTS-Nano-100M**         | 100M            | 0 ГБ (CPU, 4 ядра) | Реальное время, edge, IVR, на устройстве             |
| **MOSS-TTS-Nano-100M-ONNX**    | 100M            | 0 ГБ (CPU)         | Продакшн-сервинг без Torch                           |
| **MOSS-TTS-GGUF**              | 100M (Q4\_K\_M) | 0 ГБ (CPU)         | развёртываний в стиле llama.cpp                      |
| **MOSS-TTS-Local-Transformer** | 1.7B            | 4 ГБ               | Лёгкий GPU, высокое объективное качество             |
| **MOSS-TTS-Realtime**          | 1.7B            | 4 ГБ               | Голосовые агенты с несколькими ходами, TTFB 180 мс   |
| **MOSS-VoiceGenerator**        | 1.7B            | 4 ГБ               | Дизайн голоса по текстовым промптам                  |
| **MOSS-TTSD-v1.0**             | 8B              | 8 ГБ               | Диалоги нескольких спикеров, длинные подкасты        |
| **MOSS-SoundEffect**           | 8B              | 8 ГБ               | Генерация звуковых эффектов с контролем длительности |

### Ключевые характеристики

| Параметр                  | Значение                                                                                                                        |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| **Разработчик**           | Команда OpenMOSS · MOSI.AI · лаборатория Fudan NLP                                                                              |
| **Архитектура**           | Авто-регрессионная (аудиотокенизатор + LLM)                                                                                     |
| **Частота дискретизации** | 48 кГц, стерео                                                                                                                  |
| **Языки**                 | 20 (zh, en, de, es, fr, ja, it, hu, ko, ru, fa, ar, pl, pt, cs, da, sv, el, tr, +1)                                             |
| **Клонование голоса**     | Zero-shot на основе \~3 с референса                                                                                             |
| **Потоковая генерация**   | Да — чанковое декодирование на CPU                                                                                              |
| **Лицензия**              | Apache 2.0                                                                                                                      |
| **HuggingFace**           | [OpenMOSS-Team](https://huggingface.co/OpenMOSS-Team)                                                                           |
| **GitHub**                | [OpenMOSS/MOSS-TTS-Nano](https://github.com/OpenMOSS/MOSS-TTS-Nano) · [OpenMOSS/MOSS-TTS](https://github.com/OpenMOSS/MOSS-TTS) |

### Почему MOSS-TTS?

* **Развёртывание без GPU** — Nano работает на 4 ядрах CPU, без CUDA, без Triton
* **Вывод стерео 48 кГц** — качество уровня вещания, редкость для моделей менее 100M параметров
* **20 языков** — большее покрытие, чем у Kokoro (\~5), при сопоставимом размере
* **Клонование голоса zero-shot** на основе \~3 секунд референсного аудио
* **Пути ONNX/GGUF без Torch** — поставляется с бинарником на 200 МБ
* **Семейство масштабируется** — один и тот же токенизатор/API от Nano до 8B TTSD
* **Apache 2.0** — коммерческое использование, без ограничений
* **Серьёзные исследования** — Fudan NLP + MOSI.AI, а не хобби-проект

## Требования

| Компонент | Минимум (Nano, CPU)      | Рекомендуется (Nano, CPU) | Полное семейство (GPU)   |
| --------- | ------------------------ | ------------------------- | ------------------------ |
| CPU       | 4 ядра (x86\_64 / ARM64) | 8 ядер                    | 8 ядер                   |
| RAM       | 4 ГБ                     | 8 ГБ                      | 16 ГБ                    |
| GPU       | — (не требуется)         | — (опционально)           | RTX 3060 12 ГБ+          |
| VRAM      | 0 ГБ                     | 0 ГБ                      | 4–8 ГБ                   |
| Диск      | 1 ГБ                     | 2 ГБ                      | 10 ГБ (8B + зависимости) |
| Python    | 3.12                     | 3.12                      | 3.12                     |

{% hint style="success" %}
**Совет Clore.ai:** Nano буквально не нуждается в GPU. Если у вас уже есть машина на Clore для другой работы, TTS будет бесплатным. Если вы *хотите* GPU для пакетной генерации или запуска вариантов 1.7B/8B, то **RTX 3060 12 ГБ (\~$0.10–0.30/день)** — это с запасом.
{% endhint %}

## Вариант A — установка Python + быстрое инференсирование

```bash
conda create -n moss-tts-nano python=3.12 -y
conda activate moss-tts-nano

git clone https://github.com/OpenMOSS/MOSS-TTS-Nano.git
cd MOSS-TTS-Nano
pip install -r requirements.txt
pip install -e .

# Если pynini ломается при установке через pip, используйте conda-forge:
conda install -c conda-forge pynini=2.1.6.post1 -y
```

Инференс с референсным аудио + целевым текстом:

```bash
python infer.py \
  --prompt-audio-path assets/audio/en_1.wav \
  --text "Добро пожаловать в Clore.ai — децентрализованный маркетплейс GPU."
# Выход: generated_audio/infer_output.wav  (стерео 48 кГц)
```

Или через точку входа CLI:

```bash
moss-tts-nano generate \
  --prompt-speech ref.wav \
  --text "Привет от MOSS-TTS Nano, работающего на CPU."
```

Веб-демо (Gradio):

```bash
python app.py
# → http://127.0.0.1:18083
```

## Вариант B — Docker (CPU и GPU)

**Только CPU** (Nano, образ \~1 ГБ):

```dockerfile
FROM python:3.12-slim
RUN apt-get update && apt-get install -y git build-essential \
    && rm -rf /var/lib/apt/lists/*
WORKDIR /app
RUN git clone https://github.com/OpenMOSS/MOSS-TTS-Nano.git . \
    && pip install -r requirements.txt && pip install -e .
EXPOSE 18083
CMD ["python", "app.py"]
```

```bash
docker build -t moss-tts-nano-cpu .
docker run --rm -p 18083:18083 moss-tts-nano-cpu
```

**Вариант с GPU** (для Realtime / TTSD / SoundEffect):

```bash
docker run --gpus all -p 18083:18083 \
  pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime \
  bash -c "git clone https://github.com/OpenMOSS/MOSS-TTS.git /app \
           && cd /app \
           && pip install --extra-index-url https://download.pytorch.org/whl/cu128 -e '.[torch-runtime]' \
           && python app.py"
```

## Вариант C — клонование голоса zero-shot (референс 3 с)

MOSS-TTS-Nano клонирует голос по короткому референсному клипу и обрабатывает синтез длинных текстов автоматически, разбивая их на чанки.

```python
from moss_tts_nano import MossTTSNano
import soundfile as sf

model = MossTTSNano.from_pretrained("OpenMOSS-Team/MOSS-TTS-Nano-100M")

# Клонируйте голос по любому чистому фрагменту длиной 3–10 секунд
audio, sr = model.synthesize(
    text="Это мой клонированный голос, озвучивающий главу аудиокниги Clore.ai.",
    prompt_audio_path="speaker_ref_3s.wav",
    language="en",
)
sf.write("cloned.wav", audio, sr)  # 48 кГц стерео
```

**Советы по качеству (перенесено из playbook XTTS — применяются те же принципы):**

* Используйте 3–10 с **чистого** референса (без фоновой музыки, без реверберации помещения)
* По возможности совпадающий язык референса и целевого текста
* Нормализуйте и обрезайте тишину перед подачей (`librosa.effects.trim`)
* Для стабильного длинного озвучивания повторно используйте один и тот же референс между вызовами

## Вариант D — GGUF на llama.cpp-audio / ONNX без Torch

Для edge-устройств, мобильных бэкендов или любого случая, где вам не нужен PyTorch:

```bash
# Клонируйте основной репозиторий с расширениями без Torch
git clone https://github.com/OpenMOSS/MOSS-TTS.git
cd MOSS-TTS
pip install -e ".[llama-cpp-onnx]"

# Скачайте квантованные веса GGUF (Q4_K_M)
huggingface-cli download OpenMOSS-Team/MOSS-TTS-GGUF --local-dir weights/

# Или чистая сборка ONNX (вообще без torch)
huggingface-cli download OpenMOSS-Team/MOSS-TTS-Nano-100M-ONNX --local-dir weights-onnx/
```

Этот путь работает на инструментах, совместимых с llama.cpp — отлично подходит для Raspberry Pi, Android или serverless-функций, где важен бинарник на 200 МБ.

## Рекомендации по GPU на Clore.ai

**Для Nano GPU не нужен.** В этом и суть. Но если вы хотите генерировать пакетно или запускать более крупные модели:

| GPU                        | VRAM  | Вмещается                              | Цена на Clore (примерно) |
| -------------------------- | ----- | -------------------------------------- | ------------------------ |
| **Экземпляр только с CPU** | —     | Nano, Nano-ONNX, GGUF                  | от **$0.01/час**         |
| RTX 3060 12 ГБ             | 12 ГБ | Nano + Local-Transformer + Realtime    | от $0.10/день            |
| RTX 3090 24 ГБ             | 24 ГБ | Полный TTSD-v1.0 (8B), пакетный сервис | от $0.30/день            |
| RTX 4090 24 ГБ             | 24 ГБ | TTSD + SoundEffect одновременно        | от $0.50/день            |

{% hint style="success" %}
Для 90% производственных TTS-нагрузок — голосовые агенты, IVR, озвучка — **экземпляр Clore.ai только на CPU — буквально самое дешёвое жизнеспособное развёртывание**. Арендуйте его, запустите MOSS-TTS-Nano и забудьте о счетах за GPU.
{% endhint %}

## Сценарии использования

* **Аудиокниги** — длинная озвучка с постоянным клонированным голосом, автоматическое разбиение на чанки
* **Голосовые агенты** — TTFB менее секунды в варианте Realtime для разговорного ИИ
* **IVR / телефонные системы** — развёртывание только на CPU, стерео 48 кГц, 20 языков
* **NPC в играх** — достаточно лёгкая, чтобы встроить прямо в игровой клиент, дизайн голоса для каждого персонажа
* **Дубляж** — мультиязычное клонование для пайплайнов локализации
* **Генерация подкастов** — MOSS-TTSD-v1.0 нативно поддерживает диалоги нескольких спикеров
* **Звуковые эффекты** — MOSS-SoundEffect добавляет в пайплайн FX с контролем длительности

## Бенчмарки / качество

* **MOSS-TTSD-v1.0** превзошёл Doubao и Gemini 2.5-pro в субъективных оценках диалогов нескольких спикеров
* **Nano** обеспечивает real-time factor **< 1.0 на 4 ядрах CPU** (то есть быстрее, чем воспроизведение)
* **Realtime** вариант показывает **\~180 мс до первого байта** для разговорного использования
* Вывод стерео 48 кГц — заметный шаг вперёд по сравнению с конкурентами с 24 кГц mono при таком бюджете параметров

## Поиск и устранение неполадок

| Проблема                              | Решение                                                                                            |
| ------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `pynini` не устанавливается через pip | `conda install -c conda-forge pynini=2.1.6.post1 -y` затем переустановите WeTextProcessing         |
| Рваный звук на CPU                    | Убедитесь, что есть 4+ физических ядра; отключите SMT/HT oversubscription; используйте сборку ONNX |
| Клонированный голос звучит не так     | Референс должен быть 3–10 секунд, чистый, один говорящий, с совпадающим языком                     |
| OOM в TTSD-v1.0                       | Используйте FP16 (`model.half()`) или перейдите на 1.7B Local-Transformer                          |
| Загрузка модели зависает              | Установите `HF_HUB_ENABLE_HF_TRANSFER=1` и повторите попытку                                       |
| Медленный первый запуск               | Первый инференс компилирует ядра / загружает веса \~400 МБ — последующие запуски быстрые           |
| Конфликты Torch с другими моделями    | Используйте `[llama-cpp-onnx]` дополнения для окружения без torch                                  |

## Следующие шаги

* [Kokoro TTS](https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/kokoro-tts) — альтернатива с упором на английский и 82M параметров, если вам не нужна мультиязычность
* [Voxtral TTS](https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/voxtral-tts) — модель Mistral на 4B, 9 языков, требуется GPU, но потолок выше
* [XTTS (Coqui)](https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/xtts-coqui) — клонование голоса на 17 языках, только GPU, крупнее
* [Whisper Transcription](https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/whisper-transcription) — сочетайте MOSS-TTS с Whisper для полноценных голосовых пайплайнов
* [Арендуйте GPU (или CPU) на маркетплейсе Clore.ai](https://clore.ai/marketplace)

***

*Последнее обновление: 20 апреля 2026*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/audio-i-golos/moss-tts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
