-
Notifications
You must be signed in to change notification settings - Fork 96
Тренировка (и для других языков)
Вам нужно много памяти. Минимум 512 ГБ, а лучше 1 ТБ.
В идеале, исходные наборы данных хранятся в одном каталоге <datasets_root> (по умолчанию в папке "d"). Все обработанные данные помещаются в папку "d/SV2TTS". Внутри этого каталога будут созданы три папки для каждой модели: кодера, синтезатора и вокодера.
Name | Language | Link | Comments | My link | Comments |
---|---|---|---|---|---|
Phoneme dictionary | En, Ru | En,Ru | Phoneme dictionary | link | Совместил русский и английский фонемный словарь |
LibriSpeech | En | link | 300 speakers, 360h clean speech | ||
VoxCeleb | En | link | 7000 speakers, many hours bad speech | ||
M-AILABS | Ru | link | 3 speakers, 46h clean speech | ||
open_tts, open_stt | Ru | open_tts, open_stt | many speakers, many hours bad speech | link | Почистил 4 часа речи одного спикера. Поправил анотацию, разбил на отрезки до 7 секунд |
Voxforge+audiobook | Ru | link | Many speaker, 25h various quality | link | Выбрал хорошие файлы. Разбил на отрезки. Добавил аудиокниг из интернета. Получилось 200 спикеров по паре минут на каждого |
RUSLAN | Ru | link | One speaker, 40h good speech | link | Перекодировал в 16кГц |
Mozilla | Ru | link | 50 speaker, 30h good speech | link | Перекодировал в 16кГц, Раскидал разных пользователей по папкам |
Russian Single | Ru | link | One speaker, 9h good speech | link |
Для g2p модели нужен словарь фонем для вашего языка. где данные представлены в виде строк "конструктор к а н с T р У к T а р"
Для кодера нужно ОЧЕНЬ МНОГО звука, где каждый спикер помещён в отдельную папку. К счастью, можно использовать неразмеченные данные с шумами. Если у вас недостаточно данных для своего языка, можно использовать, например, английскую речь. Для кодера это не так важно.
Для синтеза нужно МНОГО чистого, хорошо размеченного звука разных спикеров. Здесь чужой язык не поможет.
Вокодер работает на синтезированных Mel, поэтому для него, желательно, тоже чистые, хорошо размеченные данные.
Если вы хотите строить модель сразу для нескольких языков, хорошо задумайтесь над итоговым количеством звуков. Чем больше их будет, тем сложнее модели учиться. Но если их будет слишком мало, то у модели появиться акцент. Подумайте над тем, какие звуки в ваших языках звучат похоже. И не забудьте ударным гласным выделять отдельные символы. Для английского языка вторичное ударение играет малую роль, и я бы его не выделял.
- Откройте файл g2p/train.py и отредактируйте класс Hparams(для других языков).
- Поместите ваш словарь в папку g2p
- Запустите
python g2p
Для обучения кодера использует visdom. Вы можете отключить его с помощью --no_visdom, но за ним приятно наблюдать.
Не обязательно обучать с нуля(даже для других языков). Возьмите предобученную модель.
- Запустите
python encoder_preprocess.py <datasets_root>
для обработки данных - Запустите "visdom" в отдельном терминале.
- Запустите
python encoder_train.py my_run <datasets_root>
для тренировки кодировщика
- Откройте "synthesizer/hparams.py и отредактируйте под себя(Особенно если у вас частота звука не 16 кГц, или появляется ошибка OOM)
- Откройте "synthesizer/utils/symbols.py и отредактируйте _characters под себя(для других языков)
- Запустите
python synthesizer_preprocess_audio.py <datasets_root>
для создания обработанного звука и спектрограмм - Запустите
python synthesizer_preprocess_embeds.py <datasets_root>
для кодирования звука(получения признаков голоса) - Запустите
python synthesizer_train.py my_run <datasets_root>
для тренировки синтезатора
- Запустите
python vocoder_preprocess.py <datasets_root>
для синтеза Mel спектрограмм - Запустите
python vocoder_train.py <datasets_root>
для вокодера