XTTSv2 Fine-tuned для языка Манси
Компоненты модели
Модель включает в себя:
- model.pth - Основная GPT модель (fine-tuned)
- dvae.pth - Discrete Variational AutoEncoder для кодирования/декодирования аудио
- mel_stats.pth - Статистики для нормализации мел-спектрограмм
- vocab.json - Словарь токенов с поддержкой мансийского языка
- config.json - Конфигурация модели
Датасет
Модель обучена на датасете Mansi TTS, содержащем:
- Общая продолжительность: ~21.77 часов аудио
- Количество записей: 16,367 аудио файлов
- Средняя длина записи: ~4.79 секунд
- Частота дискретизации: 48,000 Hz
- Язык: Мансийский (mns)
Использование
Установка зависимостей
pip install TTS torch torchaudio
Быстрый старт с TTS API
from TTS.api import TTS
# Загрузка модели
tts = TTS("your_username/mansi-xttsv2")
# Синтез речи
tts.tts_to_file(
text="Ваш текст на мансийском языке",
speaker_wav="path/to/reference_audio.wav",
language="mns",
file_path="output.wav"
)
Продвинутое использование (ручная загрузка)
Для более точного контроля над процессом генерации:
import os
import torch
from tqdm import tqdm
from TTS.tts.configs.xtts_config import XttsConfig
from TTS.tts.models.xtts import Xtts
from TTS.tts.layers.xtts.tokenizer import VoiceBpeTokenizer
import torchaudio
# ----------------- Настройки -----------------
DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu"
# Пути к файлам модели (после загрузки с Hugging Face)
MODEL_DIR = "path/to/downloaded/model"
CHECKPOINT_PATH = os.path.join(MODEL_DIR, "model.pth")
CONFIG_PATH = os.path.join(MODEL_DIR, "config.json")
VOCAB_PATH = os.path.join(MODEL_DIR, "vocab.json")
SPEAKER_FILE = "empty_speakers.pth" # создайте пустой файл или используйте существующий
# ----------------- Загрузка модели -----------------
config = XttsConfig()
config.load_json(CONFIG_PATH)
xtts_model = Xtts.init_from_config(config)
xtts_model.load_checkpoint(
config,
checkpoint_path=CHECKPOINT_PATH,
vocab_path=VOCAB_PATH,
speaker_file_path=SPEAKER_FILE,
use_deepspeed=False
)
xtts_model.tokenizer = VoiceBpeTokenizer(vocab_file=VOCAB_PATH)
xtts_model.to(DEVICE)
xtts_model.eval()
print("✅ Model loaded successfully!")
# ----------------- Подготовка данных -----------------
# Текст для синтеза на мансийском языке
tts_text = "Ты ня̄врамыт нэ̄паканыл хунь ва̄рсанум, то̄нт ла̄вве̄сум, амки нупылум воссыг ул вос хансыянум."
# Референсное аудио (голос для клонирования)
speaker_audio_file = "path/to/reference_audio.wav"
# ----------------- Получение conditioning latents -----------------
gpt_cond_latent, speaker_embedding = xtts_model.get_conditioning_latents(
audio_path=speaker_audio_file,
gpt_cond_len=xtts_model.config.gpt_cond_len,
max_ref_length=xtts_model.config.max_ref_len,
sound_norm_refs=xtts_model.config.sound_norm_refs,
)
# ----------------- Генерация речи -----------------
with torch.no_grad():
wav_chunk = xtts_model.inference(
text=tts_text,
language="mns", # мансийский язык
gpt_cond_latent=gpt_cond_latent,
speaker_embedding=speaker_embedding,
temperature=0.1, # низкая температура для стабильности
length_penalty=1.0,
repetition_penalty=10.0, # высокий penalty против повторов
top_k=10, # ограничение словаря
top_p=0.3, # nucleus sampling
)
# ----------------- Сохранение результата -----------------
output_audio = torch.tensor(wav_chunk["wav"]).cpu()
torchaudio.save("mansi_output.wav", output_audio.unsqueeze(0), 24000)
print("✅ Audio saved as mansi_output.wav")
Параметры генерации
| Параметр | Рекомендуемое значение | Описание |
|---|---|---|
| temperature | 0.1-0.3 | Низкие значения для стабильности, высокие для разнообразия |
| repetition_penalty | 5.0-10.0 | Высокие значения предотвращают повторы |
| top_k | 10-50 | Ограничивает выбор токенов |
| top_p | 0.3-0.8 | Nucleus sampling threshold |
| length_penalty | 1.0 | Контролирует длину генерируемого аудио |
Технические детали
- Архитектура: XTTSv2 (GPT-based)
- Размер модели: ~5.6 GB
- Поддерживаемые языки: Мансийский (mns) + оригинальные языки XTTSv2
- Формат аудио: WAV, 24kHz
- Максимальная длина текста: 400 символов
- Максимальная длина аудио: ~15 секунд
Ограничения
- Модель оптимизирована для мансийского языка
- Требует референсное аудио для клонирования голоса
- Качество зависит от качества референсного аудио
- Downloads last month
- 12