MAATRIX / Блог / Piper против XTTS: что выгоднее и когда

Piper против XTTS: что выгоднее и когда

Piper против XTTS: что выгоднее и когда

MAATRIX

Гуглите «piper или xtts» и находите две отдельные статьи про установку — а прямого ответа, что взять под вашу задачу, там нет. Дело не в том, что один движок лучше другого: у них разная архитектура, требования к железу и лицензионные рамки, из-за которых ошибка в выборе обходится дороже потерянного вечера на установку. Разберём Piper и XTTS по критериям, которые реально влияют на счёт за сервер и на то, что законно делать с результатом.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Piper и XTTS: в чём разница архитектуры, а не только качества

Piper — компактная сеть VITS, экспортированная в ONNX: текст проходит через фонемизатор espeak-ng (начиная с piper1-gpl вшит прямо в пакет) и за один проход сети превращается в готовый WAV. Архитектура non-autoregressive — сеть не порождает аудио кусок за куском, а сразу считает весь вектор целиком, поэтому инференс укладывается в CPU и принципиально не просит GPU.

XTTS-v2 от Coqui устроен иначе. GPT-подобный трансформер сначала авторегрессионно генерирует латентные токены речи — один за другим, с оглядкой на уже сгенерированные, — а затем отдельный вокодер превращает их в звук на 24 000 Гц. Авторегрессия и есть причина, по которой движку нужен GPU: та же математика работает и на CPU, но пошаговая генерация токенов не распараллеливается так же эффективно, как единый проход VITS.

Сведём различия, которые определяют выбор, в одну таблицу:

КритерийPiperXTTS-v2
АрхитектураVITS, non-autoregressiveGPT-латенты + вокодер, autoregressive
ЖелезоCPU, от 1 vCPUGPU, от 4 ГБ VRAM
Вес модели63,2 МБ на голос (medium)≈2,09 ГБ общий чекпоинт
Клонирование голосанет, только готовые дикторыда, по образцу от ~3 сек
Языков в одной модели1 голос = 1 язык17, один чекпоинт на все
Частота на выходе16 000 / 22 050 Гц24 000 Гц
pip-пакет, версия на момент написанияpiper-tts 1.7.0coqui-tts 0.27.5
Python≥3.93.10–3.14

Из таблицы видно главное: это не «один лучше другого», а разный контракт с железом. Piper — программа, которую ставят на VPS и забывают. XTTS — модель, под которую арендуют видеокарту и эксплуатируют как отдельный GPU-сервис.

Почему XTTS требует GPU, а Piper — нет: что это значит на практике

У Piper запрос и ответ — синхронная операция в одну команду: текст на входе, WAV на выходе, без очередей и специальных режимов. Обвязка не нужна — HTTP-сервер уже входит в пакет piper-tts.

У XTTS иначе: аудио физически не готово, пока не сгенерирован последний токен, — наивный вызов блокируется до конца всей фразы. Отсюда обвязки вроде xtts-api-server (пакет на PyPI, версия 0.9.0), которая поднимает FastAPI-сервер на localhost:8020 и добавляет флаг --streaming-mode для потокового воспроизведения. У режима честная оговорка прямо в документации: работает только локально, а tts_to_file в нём не работает вовсе — только tts_to_audio, который возвращает секунду тишины вместо файла. Улучшенный --streaming-mode-improve даёт точнее токенизацию для сложных языков, но добавляет ещё 2 ГБ VRAM.

Разрыв CPU и GPU задокументирован самими авторами обвязки, без придуманных цифр: GPU-сборка PyTorch «до трёх раз быстрее» CPU-версии, которую pip install xtts-api-server ставит по умолчанию, а флаг --deepspeed добавляет ускорение «в 2–3 раза» поверх этого. Флаг --lowvram держит веса в RAM и переносит их в VRAM только на время обработки — разработчик сам предупреждает, что разница в скорости небольшая, то есть карту он не заменяет.

Честно про экосистему: сам xtts-api-server в 2026 году развивается вяло — автор в README пишет, что у него мало времени на проект, и советует присмотреться к alltalk_tts как к более живой альтернативе. Инструмент рабочий, но закладывать его в прод как активно поддерживаемый — не стоит; тестируйте заранее.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Качество и клонирование: что реально получаете на выходе

У Piper голос — это конечный список. Для русского на Hugging Face выложены всего четыре диктора — irina, denis, dmitri, ruslan — и все четыре только в качестве medium (22 050 Гц, 63,2 МБ). В отличие от английского lessac, где есть ступени от low до high (113,9 МБ на самой качественной), у русских голосов «выше» или «ниже» неоткуда взяться — выбора по качеству нет. Настройка через length_scale, noise_scale и noise_w меняет темп и естественность, но нового диктора не создаст: клонирования у Piper нет в принципе — архитектурная граница VITS, а не недоделанная функция.

XTTS клонирует голос по образцу. По карточке модели на Hugging Face достаточно и трёхсекундного клипа, а входная частота дискретизации для образца — 22 050 Гц, это прямо зашито в config.json модели (input_sample_rate). Языков заявлено 17, включая русский, и один и тот же чекпоинт обслуживает их все — не нужно скачивать отдельную модель под язык, как у Piper под каждого диктора.

Честная оговорка о пределах: в конфигурации модели по умолчанию стоит gpt_max_text_tokens: 402 — внутренний потолок за один проход. Длинный текст режется флагом enable_text_splitting, а разработчики прямо предупреждают: разбиение на части может терять смысловую связность между кусками. Плюс это авторегрессионная модель речи — как у любых моделей класса, изредка возможны проглоченные слова или повторы на нестандартном вводе: аббревиатуры, смешение языков в одной фразе. У Piper подобных артефактов не бывает вообще — не потому что он «умнее», а потому что архитектура физически не авторегрессивна.

Лицензии: GPL и MPL разрешают код, а голоса и веса — по-разному

Лицензия движка и лицензия результата — разные документы, и путать их обходится дорого.

Piper. Код piper1-gpl — GPL-3.0: это лицензия на сам движок, она не накладывает ограничений на аудио, которое вы синтезируете и продаёте. А вот у каждого голоса — своя лицензия датасета, и для русского они не одинаковы:

ГолосДатасетЛицензия
denisOHF-Voice/voice-datasetsCC0
dmitriOHF-Voice/voice-datasetsCC0
irinaRHVoiceUnknown (не указана)
ruslanRuslan corpusCC BY-NC-SA 4.0

ruslan держится на некоммерческом датасете CC BY-NC-SA 4.0 — для платного продукта это прямой сигнал искать другой голос. У irina карточка модели честно указывает License: Unknown — не «свободная», а именно неизвестная; для коммерческого проекта на русском проще и спокойнее взять denis или dmitri с однозначным CC0.

XTTS. Здесь наоборот: код инструмента (coqui-tts, поддерживаемый форк idiap/coqui-ai-TTS) — MPL-2.0, коммерчески дружелюбная лицензия. А сами веса coqui/XTTS-v2 распространяются по Coqui Public Model License — по умолчанию только некоммерческое использование. Компания Coqui закрылась в январе 2024 года, и купить коммерческую лицензию по условиям CPML сегодня физически не у кого — вопрос завис в воздухе, а не решился в чью-то пользу. При первом запуске модель требует согласия с условиями в интерактивном режиме; для сервиса без терминала его задают заранее переменной COQUI_TOS_AGREED=1 — без неё процесс зависнет на вопросе, который в фоне некому задать.

Итог раздела: для монетизируемого продукта на русском Piper с голосом denis или dmitri — юридически спокойный выбор без вопросов. Клонирование голоса через XTTS в платном продукте — повод для разговора с юристом, а не для допущения «раз лицензиара нет, значит всё можно».

Инфраструктура и деньги: во что обходится каждый вариант

Экономика двух движков устроена принципиально по-разному, и считать её нужно раздельно.

Piper — это разовая покупка мощности навсегда: воркер занимает десятки мегабайт памяти, а инференс идёт на любом современном ядре без исключений. Пакет piper-tts версии 1.7.0 весит немного и требует Python не старше 3.9 — можно ставить на минимальный тариф VPS и не думать о масштабировании, пока запросов не тысячи в минуту.

XTTS считается иначе. Чекпоинт coqui/XTTS-v2 — это model.pth на 1,87 ГБ, dvae.pth на 210,5 МБ, speakers_xtts.pth на 7,75 МБ и служебные файлы поменьше — в сумме около 2,09 ГБ, которые нужно один раз скачать и затем постоянно держать в памяти видеокарты. По оценкам сообщества и разработчиков обвязок, рабочий минимум — от 4 ГБ VRAM, комфортный запас под очередь запросов и более длинные фразы — 6–8 ГБ. Разница с Piper не в разы, а на порядок: вместо доли гигабайта RAM — выделенная видеокарта, которая либо простаивает, либо занята целиком, и поделить её между сервисами так же просто, как ядро CPU, не получится.

Отсюда разная модель расходов. Piper — фиксированная строка в счёте за VPS, которая не меняется от объёма озвучки. XTTS — это стоимость GPU-времени, и чем больше и чаще вы генерируете, тем заметнее счёт. Для нерегулярной озвучки — несколько аудиокниг в месяц, редкие ролики — постоянно арендованная карта может обойтись дороже самой задачи: присмотритесь к варианту поднимать GPU-сервер только на время рендера.

Какой движок брать: три сценария без прикрас

Берите Piper, если задача — предсказуемый поток коротких фраз: голосовые уведомления, IVR, подтверждения в боте, голосовой помощник в духе Home Assistant, озвучка статей для незрячих пользователей. Плюс — приватность и полное отсутствие GPU в схеме, минус — голос всегда один из готового списка, тонко «под бренд» его не подгонишь.

Берите XTTS, если ценность продукта — именно голос: аудиокнига одним рассказчиком на несколько часов, персонализированные видеообращения, дубляж роликов с сохранением тембра оригинального диктора, прототип с клонированием голоса — если лицензия и согласие человека на клонирование реально решены, а не приняты на веру. Обратная сторона — счёт за GPU, вес чекпоинта и авторегрессионные артефакты на длинных или нестандартных текстах.

Берите оба, если продукту нужны обе роли одновременно: Piper мгновенно озвучивает служебные фразы бота в реальном времени, а XTTS в фоне рендерит контент без жёсткого требования к задержке — приветствие от лица бренда, персональное сообщение клиенту. Свести оба движка под одним OpenAI-совместимым эндпоинтом /v1/audio/speech, переключая голос параметром voice, — рабочая схема из статьи про синтез речи на своём сервере: там же третий движок, Silero, на случай более сложного стека.

Какой сервер под Piper и XTTS брать в MAATRIX

Ни Piper, ни XTTS пока не входят в каталог apps.maatrix.io как готовые сборки — сервер приходит чистым (Ubuntu 24.04 или Debian 12), и движок вы разворачиваете сами. Для Piper это pip-установка на несколько минут, шаги — в статье «Как установить и настроить Piper TTS на VPS». Для XTTS — venv, pip install coqui-tts, видеокарта и заранее выставленный COQUI_TOS_AGREED=1. В каталоге тем временем есть готовая сборка LiteLLM — пригодится, если синтез станет частью более крупного ИИ-стека.

Конфигурация под каждый движок — отдельно, смешивать их в одной строке бюджета не стоит:

Piper, минимумPiper, комфортноXTTS, минимумXTTS, комфортно
vCPU12–42–44–8
RAM1–2 ГБ4 ГБ8 ГБ16 ГБ
VRAM4 ГБ6–8 ГБ
Диск20 ГБ NVMe40 ГБ NVMe40 ГБ NVMe60 ГБ NVMe

Честно про минимум XTTS: 4 ГБ VRAM — порог, на котором чекпоинт загрузится, а не порог комфортной работы под нагрузкой. При первой же очереди из нескольких параллельных запросов или фразе длиннее внутреннего лимита в 402 токена карта потребует больше. Планируйте сразу 6–8 ГБ, если это не разовый эксперимент, а сервис.

Локация — Великобритания, Лондон. Для Piper она нужна ради прямого доступа к Hugging Face без прокси и низкого пинга до Европы — сам синтез офлайновый, и на его скорость география сервера не влияет. Для XTTS аргумент весомее: клонирование чужого голоса — это обработка биометрических данных человека, и лондонская локация с соседством GDPR-практик уместнее, когда продукт работает с голосами реальных людей для европейской или международной аудитории. Если весь трафик и все голоса — российские, разумнее взять RU-локацию ради минимальной задержки до конечных пользователей; для офлайн-движков это не техническое ограничение, а вопрос удобства доступа при установке.

Конфигурацию под движок выбираете на странице аренды VPS — лёгкий CPU-тариф для Piper и вариант с видеокартой для XTTS в одном каталоге. Оплата — картой российского банка, по СБП, криптовалютой или токеном MAAT: иностранная карта для сервера в Лондоне не нужна.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Можно ли переключаться между Piper и XTTS под одним API, не переписывая приложение?

Да — обвязка openedai-speech реализует OpenAI-совместимый эндпоинт /v1/audio/speech и внутри маршрутизирует запрос на Piper или XTTS по параметру voice; подробно эта схема разобрана в статье про синтез речи на сервере.

Что будет, если отправить в XTTS длинный текст одним куском?

Модель ограничена значением gpt_max_text_tokens: 402 за один проход. Без флага enable_text_splitting длинный текст придётся резать на предложения вручную; с флагом он порежется автоматически, но авторы прямо предупреждают о потере смысловой связности между кусками — для больших материалов надёжнее резать текст на смысловые абзацы самостоятельно, а не полагаться на автоматику.

Какой голос Piper для русского безопаснее всего для коммерческого проекта?

denis или dmitri — оба обучены на датасете с лицензией CC0, без ограничений на использование. ruslan обучен на корпусе с лицензией CC BY-NC-SA 4.0 — некоммерческой, для платного продукта не подходит. У irina лицензия датасета в карточке модели указана как Unknown — для коммерческого проекта эту неопределённость стоит уточнить отдельно, а не принимать на веру.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.