Интеграция XTTS для мультиязычного синтеза речи
XTTS v2 (Coqui) — мультиязычная TTS-модель с zero-shot клонированием голоса из 3–6 секунд референсного аудио. Поддерживает 17 языков, включая русский. Главное преимущество: один голос, синтезируемый на нескольких языках.
Поддерживаемые языки
en, es, fr, de, it, pt, pl, tr, ru, nl, cs, ar, zh-cn, hu, ko, ja, hi
Установка
pip install TTS
python -c "from TTS.api import TTS; TTS('tts_models/multilingual/multi-dataset/xtts_v2')"
Cross-lingual синтез
from TTS.api import TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to("cuda")
# Один референсный голос → несколько языков
reference_voice = "speaker_sample.wav"
languages = {
"ru": "Добро пожаловать в нашу компанию!",
"en": "Welcome to our company!",
"de": "Willkommen in unserem Unternehmen!",
"fr": "Bienvenue dans notre entreprise!"
}
for lang, text in languages.items():
tts.tts_to_file(
text=text,
speaker_wav=reference_voice,
language=lang,
file_path=f"output_{lang}.wav"
)
Требования к референсному аудио
- Длина: 3–30 секунд (оптимально 6–12 сек)
- Качество: 22 kHz+, без шума и реверберации
- Содержание: чистая речь одного говорящего без музыки
Оптимизация для production
# Предкомпьютим gpt_cond_latent для частого референсного голоса
from TTS.tts.configs.xtts_config import XttsConfig
from TTS.tts.models.xtts import Xtts
config = XttsConfig()
config.load_json("/path/to/config.json")
model = Xtts.init_from_config(config)
model.load_checkpoint(config, checkpoint_dir="/path/to/model/")
model.cuda()
gpt_cond_latent, speaker_embedding = model.get_conditioning_latents(
audio_path=["reference.wav"]
)
# Кэшируем latents — не пересчитываем при каждом запросе
Скорость: XTTS v2 на RTX 3090 — ~1.5–2x realtime (генерирует 1 сек аудио за 0.5–0.7 сек).
Сроки: интеграция — 2–3 дня. С оптимизацией latency — 1 неделя.







