Piper против XTTS: что выгоднее и когда
Гуглите «piper или xtts» и находите две отдельные статьи про установку — а прямого ответа, что взять под вашу задачу, там нет. Дело не в том, что один движок лучше другого: у них разная архитектура, требования к железу и лицензионные рамки, из-за которых ошибка в выборе обходится дороже потерянного вечера на установку. Разберём Piper и XTTS по критериям, которые реально влияют на счёт за сервер и на то, что законно делать с результатом.
Содержание
- Piper и XTTS: в чём разница архитектуры, а не только качества
- Почему XTTS требует GPU, а Piper — нет: что это значит на практике
- Качество и клонирование: что реально получаете на выходе
- Лицензии: GPL и MPL разрешают код, а голоса и веса — по-разному
- Инфраструктура и деньги: во что обходится каждый вариант
- Какой движок брать: три сценария без прикрас
- Какой сервер под Piper и XTTS брать в MAATRIX
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Piper и XTTS: в чём разница архитектуры, а не только качества
Piper — компактная сеть VITS, экспортированная в ONNX: текст проходит через фонемизатор espeak-ng (начиная с piper1-gpl вшит прямо в пакет) и за один проход сети превращается в готовый WAV. Архитектура non-autoregressive — сеть не порождает аудио кусок за куском, а сразу считает весь вектор целиком, поэтому инференс укладывается в CPU и принципиально не просит GPU.
XTTS-v2 от Coqui устроен иначе. GPT-подобный трансформер сначала авторегрессионно генерирует латентные токены речи — один за другим, с оглядкой на уже сгенерированные, — а затем отдельный вокодер превращает их в звук на 24 000 Гц. Авторегрессия и есть причина, по которой движку нужен GPU: та же математика работает и на CPU, но пошаговая генерация токенов не распараллеливается так же эффективно, как единый проход VITS.
Сведём различия, которые определяют выбор, в одну таблицу:
| Критерий | Piper | XTTS-v2 |
|---|---|---|
| Архитектура | VITS, non-autoregressive | GPT-латенты + вокодер, autoregressive |
| Железо | CPU, от 1 vCPU | GPU, от 4 ГБ VRAM |
| Вес модели | 63,2 МБ на голос (medium) | ≈2,09 ГБ общий чекпоинт |
| Клонирование голоса | нет, только готовые дикторы | да, по образцу от ~3 сек |
| Языков в одной модели | 1 голос = 1 язык | 17, один чекпоинт на все |
| Частота на выходе | 16 000 / 22 050 Гц | 24 000 Гц |
| pip-пакет, версия на момент написания | piper-tts 1.7.0 | coqui-tts 0.27.5 |
| Python | ≥3.9 | 3.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: это лицензия на сам движок, она не накладывает ограничений на аудио, которое вы синтезируете и продаёте. А вот у каждого голоса — своя лицензия датасета, и для русского они не одинаковы:
| Голос | Датасет | Лицензия |
|---|---|---|
denis | OHF-Voice/voice-datasets | CC0 |
dmitri | OHF-Voice/voice-datasets | CC0 |
irina | RHVoice | Unknown (не указана) |
ruslan | Ruslan corpus | CC 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, комфортно | |
|---|---|---|---|---|
| vCPU | 1 | 2–4 | 2–4 | 4–8 |
| RAM | 1–2 ГБ | 4 ГБ | 8 ГБ | 16 ГБ |
| VRAM | — | — | 4 ГБ | 6–8 ГБ |
| Диск | 20 ГБ NVMe | 40 ГБ NVMe | 40 ГБ NVMe | 60 ГБ 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 — десятки моделей в одном окне. Оплата картой РФ и по СБП.