Интеграция Coqui TTS для синтеза речи (Open Source)
Coqui TTS — библиотека с набором предобученных нейронных TTS-моделей: VITS, YourTTS, XTTS. Open-source альтернатива облачным сервисам для задач с требованиями к конфиденциальности данных. Поддерживает русский язык.
Установка и доступные модели
pip install TTS
# Список доступных моделей
tts --list_models
XTTS v2 — мультиязычная модель с клонированием
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="ru",
file_path="output.wav"
)
# Потоковый синтез (chunks)
for chunk in tts.tts_with_vc_streaming(
text="Длинный текст для потокового синтеза",
speaker_wav="reference.wav",
language="ru"
):
# обрабатываем chunk аудио
pass
VITS — быстрая модель для русского
tts = TTS("tts_models/ru/cv/vits") # русская VITS модель
tts.tts_to_file(
text="Привет мир",
file_path="output.wav"
)
Производительность
| Модель | GPU | Скорость | Качество |
|---|---|---|---|
| XTTS v2 | RTX 3080 | ~2x RT | Отличное |
| VITS (ru) | RTX 3080 | ~15x RT | Хорошее |
| YourTTS | RTX 3080 | ~5x RT | Хорошее |
FastAPI обёртка для production
from fastapi import FastAPI
from TTS.api import TTS
import io, soundfile as sf
app = FastAPI()
tts_model = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to("cuda")
@app.post("/tts")
async def text_to_speech(text: str, language: str = "ru"):
wav = tts_model.tts(text=text, language=language,
speaker_wav="default_speaker.wav")
buf = io.BytesIO()
sf.write(buf, wav, 24000, format="WAV")
buf.seek(0)
return StreamingResponse(buf, media_type="audio/wav")
Сроки: базовая интеграция — 2–3 дня. Production API с управлением голосами — 1 неделя.







