Self-hosted синтез мовлення з клонуванням голосу
Ми часто стикаємося з ситуацією, коли клієнту потрібен якісний синтез мовлення українською, але використовувати хмарні API (Google Cloud TTS, Amazon Polly) не можна — дані йдуть третій стороні, а щомісячні рахунки за тисячі хвилин можуть перевищити бюджет стартапу. Coqui TTS вирішує обидві проблеми: це open-source бібліотека, яку можна розгорнути на власних серверах, і вона підтримує донавчання під будь-які голоси.
При типовому навантаженні 100 000 символів на місяць self-hosted Coqui TTS економить до $500 порівняно з Google Cloud TTS. Ми інтегрували Coqui TTS у продакшн для кількох фінтех-проектів (IVR, голосові асистенти) і накопичили досвід з вибору моделі, налаштування інференсу та оптимізації latency. У цій статті розповімо, як швидко підняти TTS на своїх потужностях, які моделі реально працюють українською, і як досягти якості, не відмінної від живого диктора.
Клієнти часто приходять із завданням зробити голосового асистента в CRM або IVR-систему. Типові вимоги: голос має звучати природно, підтримувати паузи та інтонації, а також вміти говорити на специфічних термінах. Хмарні API або не мають потрібного голосу українською, або коштують дорого при великих обсягах. Ми пропонуємо альтернативу — Coqui TTS на вашому GPU.
Механізм клонування голосу в XTTS v2
Одна з ключових можливостей Coqui — це клонування голосу за референсним аудіо. Модель XTTS v2 приймає на вхід короткий запис (3–10 секунд) і синтезує мовлення з тим же тембром. Ми використовуємо цей підхід для генерації голосів віртуальних асистентів — достатньо однієї хвилини мовлення диктора, щоб модель відтворювала інтонації та манеру.
from TTS.api import TTS # Ініціалізація XTTS v2 tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to("cuda") # Синтез українською tts.tts_to_file( text="Привіт! Це приклад синтезу мовлення українською мовою.", speaker_wav="reference_speaker.wav", # референсний голос (3–10 сек) language="uk", file_path="output.wav" ) # Потоковий синтез (chunks) for chunk in tts.tts_with_vc_streaming( text="Довгий текст для потокового синтезу", speaker_wav="reference.wav", language="uk" ): # обробляємо chunk аудіо pass Чому Coqui TTS краще за хмарні сервіси?
Порівняння ключових характеристик:
| Параметр | Coqui TTS (self-hosted) | Хмарні API (Google, AWS) |
|---|---|---|
| Конфіденційність | Усі дані на вашому сервері | Дані передаються провайдеру |
| Затримка p99 | <100 мс (з Triton) | 200–500 мс |
| Кастомізація | Повний контроль: донавчання, зміна голосу | Тільки попередньо встановлені голоси |
| Вартість при високому навантаженні | Фіксовані витрати на GPU | Зростає лінійно з обсягом (економія до 70% при 100 000 символів/міс) |
Це порівняння показує, що для високонавантажених проектів або суворих вимог до privacy self-hosted TTS — єдиний розумний вибір.
| Модель | GPU | Швидкість | Якість | Застосування |
|---|---|---|---|---|
| XTTS v2 | RTX 3080 | ~2x RT | Відмінне | Клонування, мультимовність |
| VITS (uk) | RTX 3080 | ~15x RT | Добре | Базовий синтез |
| YourTTS | RTX 3080 | ~5x RT | Добре | Англійська, швидко |
Які моделі підходять для української мови?
З коробки Coqui TTS підтримує українську в моделях VITS та XTTS v2. VITS — легка модель для базового синтезу, XTTS v2 — мультимовна з клонуванням. Ми рекомендуємо XTTS v2 для production: якість близька до комерційних рішень, а швидкість достатня для real-time.
tts = TTS("tts_models/uk/cv/vits") # українська VITS модель tts.tts_to_file( text="Привіт світ", file_path="output.wav" ) Як ми інтегруємо Coqui TTS у ваш проект
Наш підхід — не просто "встановити бібліотеку". Ми проводимо аудит, підбираємо модель під навантаження (до 100 запитів/сек? потрібен Triton), оптимізуємо latency через batch inference та FP16.
Процес роботи:
- Аналіз — вимоги до голосу, мова, навантаження, сценарій використання (IVR, подкасти, асистент).
- Вибір моделі — XTTS v2, VITS або донавчена під замовника.
- Інтеграція — FastAPI обгортка, Kubernetes деплой, моніторинг.
- Донавчання (fine-tuning) — при необхідності покращуємо дикцію, прибираємо артефакти.
- Тестування — вимірювання latency p99, MOS-оцінка якості.
- Деплой — у вашу інфраструктуру або наш managed сервер.
Що входить в роботу
- Готова FastAPI-обгортка з ендпоінтами
/ttsта/clone. - Docker-контейнер для деплою на GPU.
- Документація API (OpenAPI spec).
- Скрипти тестування продуктивності.
- Рекомендації щодо вибору GPU (від RTX 3060 до H100).
- 1 місяць підтримки після здачі.
Ми гарантуємо, що синтез працюватиме з latency <200 мс (p99) при однопоточному інференсі (XTTS v2 на RTX 3080). Базова інтеграція займає від 2 до 5 днів залежно від складності. Якщо потрібне донавчання моделі — додається ще 1–2 дні на обчислення.
Спираючись на наш досвід (понад 20 проектів з TTS, 5 років на ринку AI/ML), ми підбираємо оптимальний баланс між якістю та швидкістю. Зв'яжіться з нами для розрахунку вашого проекту — ми безкоштовно оцінимо завдання та запропонуємо архітектуру рішення.







