Chebukkk commited on
Commit
0eab8a7
·
verified ·
1 Parent(s): df98529

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +160 -0
README.md ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - mns
5
+ - ru
6
+ - en
7
+ tags:
8
+ - text-to-speech
9
+ - xtts
10
+ - mansi
11
+ - finetuned
12
+ pipeline_tag: text-to-speech
13
+ ---
14
+
15
+ # XTTSv2 Fine-tuned для языка Манси
16
+
17
+ ## Компоненты модели
18
+
19
+ Модель включает в себя:
20
+
21
+ - **model.pth** - Основная GPT модель (fine-tuned)
22
+ - **dvae.pth** - Discrete Variational AutoEncoder для кодирования/декодирования аудио
23
+ - **mel_stats.pth** - Статистики для нормализации мел-спектрограмм
24
+ - **vocab.json** - Словарь токенов с поддержкой мансийского языка
25
+ - **config.json** - Конфигурация модели
26
+
27
+ ## Датасет
28
+
29
+ Модель обучена на датасете Mansi TTS, содержащем:
30
+ - **Общая продолжительность**: ~21.77 часов аудио
31
+ - **Количество записей**: 16,367 аудио файлов
32
+ - **Средняя длина записи**: ~4.79 секунд
33
+ - **Частота дискретизации**: 48,000 Hz
34
+ - **Язык**: Мансийский (mns)
35
+
36
+ ## Использование
37
+
38
+ ### Установка зависимостей
39
+
40
+ ```bash
41
+ pip install TTS torch torchaudio
42
+ ```
43
+
44
+ ### Быстрый старт с TTS API
45
+
46
+ ```python
47
+ from TTS.api import TTS
48
+
49
+ # Загрузка модели
50
+ tts = TTS("your_username/mansi-xttsv2")
51
+
52
+ # Синтез речи
53
+ tts.tts_to_file(
54
+ text="Ваш текст на мансийском языке",
55
+ speaker_wav="path/to/reference_audio.wav",
56
+ language="mns",
57
+ file_path="output.wav"
58
+ )
59
+ ```
60
+
61
+ ### Продвинутое использование (ручная загрузка)
62
+
63
+ Для более точного контроля над процессом генерации:
64
+
65
+ ```python
66
+ import os
67
+ import torch
68
+ from tqdm import tqdm
69
+ from TTS.tts.configs.xtts_config import XttsConfig
70
+ from TTS.tts.models.xtts import Xtts
71
+ from TTS.tts.layers.xtts.tokenizer import VoiceBpeTokenizer
72
+ import torchaudio
73
+
74
+ # ----------------- Настройки -----------------
75
+ DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu"
76
+
77
+ # Пути к файлам модели (после загрузки с Hugging Face)
78
+ MODEL_DIR = "path/to/downloaded/model"
79
+ CHECKPOINT_PATH = os.path.join(MODEL_DIR, "model.pth")
80
+ CONFIG_PATH = os.path.join(MODEL_DIR, "config.json")
81
+ VOCAB_PATH = os.path.join(MODEL_DIR, "vocab.json")
82
+ SPEAKER_FILE = "empty_speakers.pth" # создайте пустой файл или используйте существующий
83
+
84
+ # ----------------- Загрузка модели -----------------
85
+ config = XttsConfig()
86
+ config.load_json(CONFIG_PATH)
87
+ xtts_model = Xtts.init_from_config(config)
88
+ xtts_model.load_checkpoint(
89
+ config,
90
+ checkpoint_path=CHECKPOINT_PATH,
91
+ vocab_path=VOCAB_PATH,
92
+ speaker_file_path=SPEAKER_FILE,
93
+ use_deepspeed=False
94
+ )
95
+ xtts_model.tokenizer = VoiceBpeTokenizer(vocab_file=VOCAB_PATH)
96
+ xtts_model.to(DEVICE)
97
+ xtts_model.eval()
98
+ print("✅ Model loaded successfully!")
99
+
100
+ # ----------------- Подготовка данных -----------------
101
+ # Текст для синтеза на мансийском языке
102
+ tts_text = "Ты ня̄врамыт нэ̄паканыл хунь ва̄рсанум, то̄нт ла̄вве̄сум, амки нупылум воссыг ул вос хансыянум."
103
+
104
+ # Референсное аудио (голос для клонирования)
105
+ speaker_audio_file = "path/to/reference_audio.wav"
106
+
107
+ # ----------------- Получение conditioning latents -----------------
108
+ gpt_cond_latent, speaker_embedding = xtts_model.get_conditioning_latents(
109
+ audio_path=speaker_audio_file,
110
+ gpt_cond_len=xtts_model.config.gpt_cond_len,
111
+ max_ref_length=xtts_model.config.max_ref_len,
112
+ sound_norm_refs=xtts_model.config.sound_norm_refs,
113
+ )
114
+
115
+ # ----------------- Генерация речи -----------------
116
+ with torch.no_grad():
117
+ wav_chunk = xtts_model.inference(
118
+ text=tts_text,
119
+ language="mns", # мансийский язык
120
+ gpt_cond_latent=gpt_cond_latent,
121
+ speaker_embedding=speaker_embedding,
122
+ temperature=0.1, # низкая температура для стабильности
123
+ length_penalty=1.0,
124
+ repetition_penalty=10.0, # высокий penalty против повторов
125
+ top_k=10, # ограничение словаря
126
+ top_p=0.3, # nucleus sampling
127
+ )
128
+
129
+ # ----------------- Сохранение результата -----------------
130
+ output_audio = torch.tensor(wav_chunk["wav"]).cpu()
131
+ torchaudio.save("mansi_output.wav", output_audio.unsqueeze(0), 24000)
132
+ print("✅ Audio saved as mansi_output.wav")
133
+ ```
134
+
135
+
136
+ ### Параметры генерации
137
+
138
+ | Параметр | Рекомендуемое значение | Описание |
139
+ |----------|----------------------|----------|
140
+ | **temperature** | 0.1-0.3 | Низкие значения для стабильности, высокие для разнообразия |
141
+ | **repetition_penalty** | 5.0-10.0 | Высокие значения предотвращают повторы |
142
+ | **top_k** | 10-50 | Ограничивает выбор токенов |
143
+ | **top_p** | 0.3-0.8 | Nucleus sampling threshold |
144
+ | **length_penalty** | 1.0 | Контролирует длину генерируемого аудио |
145
+
146
+
147
+ ## Технические детали
148
+
149
+ - **Архитектура**: XTTSv2 (GPT-based)
150
+ - **Размер модели**: ~5.6 GB
151
+ - **Поддерживаемые языки**: Мансийский (mns) + оригинальные языки XTTSv2
152
+ - **Формат аудио**: WAV, 24kHz
153
+ - **Максимальная длина текста**: 400 символов
154
+ - **Максимальная длина аудио**: ~15 секунд
155
+
156
+ ## Ограничения
157
+
158
+ - Модель оптимизирована для мансийского языка
159
+ - Требует референсное аудио для клонирования голоса
160
+ - Качество зависит от качества референсного аудио