Skip to content
This repository has been archived by the owner on Oct 1, 2021. It is now read-only.

Тренировка (и для других языков)

Kramarenko Vladislav edited this page Aug 31, 2019 · 4 revisions

Datasets

Вам нужно много памяти. Минимум 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

  1. Откройте файл g2p/train.py и отредактируйте класс Hparams(для других языков).
  2. Поместите ваш словарь в папку g2p
  3. Запустите python g2p

Кодер

Для обучения кодера использует visdom. Вы можете отключить его с помощью --no_visdom, но за ним приятно наблюдать.

Не обязательно обучать с нуля(даже для других языков). Возьмите предобученную модель.

  1. Запустите python encoder_preprocess.py <datasets_root> для обработки данных
  2. Запустите "visdom" в отдельном терминале.
  3. Запустите python encoder_train.py my_run <datasets_root> для тренировки кодировщика

Синтезатор

  1. Откройте "synthesizer/hparams.py и отредактируйте под себя(Особенно если у вас частота звука не 16 кГц, или появляется ошибка OOM)
  2. Откройте "synthesizer/utils/symbols.py и отредактируйте _characters под себя(для других языков)
  3. Запустите python synthesizer_preprocess_audio.py <datasets_root> для создания обработанного звука и спектрограмм
  4. Запустите python synthesizer_preprocess_embeds.py <datasets_root> для кодирования звука(получения признаков голоса)
  5. Запустите python synthesizer_train.py my_run <datasets_root> для тренировки синтезатора

Вокодер

  1. Запустите python vocoder_preprocess.py <datasets_root> для синтеза Mel спектрограмм
  2. Запустите python vocoder_train.py <datasets_root> для вокодера