249 подписчиков

Как сделать модель голоса и ai-кавер в нейросети RVC v2

1,2K прочитали
 Сгенерировано в нейросети fusionbraina
Сгенерировано в нейросети fusionbraina

Продолжение этой статьи

Прежде я делала модели и каверы в сети so-vits-svc, используя Google Collab, по этой ссылке:

или по этой:

Вот по этому туториалу:

Но что-то у меня сломалось в so-vits-svc, постоянно выдаёт ошибку, поэтому теперь я делаю модели в том же коллабе, но в другой сети, а именно в RVC v2. Здесь процесс тренировки модели лично у меня идёт гораздо быстрее, и качество нравится больше, чем в so-vits-svc.

Впрочем, у кого-то, возможно, не будет в so-vits-svc никаких ошибок, пробуйте.

Процесс работы в RVC v2 изложен здесь:

Ну а я опишу его словами для тех, кто предпочитает читать тексты, а не смотреть видео.

Прежде всего нам надо подготовить аудиофайлы, из которых мы будем делать модель. Для этого выбранный нами трек (или несколько треков) с голосом певца очищаем от инструментального сопровождения, т.е. делаем акапеллу.

Как её сделать, описала в предыдущей статье:

В so-vits-svc нашу акапеллу надо непременно нарезАть на короткие, не более 10 секунд, файлы, чем их больше, тем лучше (я нарезаю до 100 файлов wav), в RVC, кажется, можно не нарезать, система сама нарежет, но я на всякий случай всё же нарезаю и делаю много файлов. Присваиваю этим файлам порядковые номера и складываю в отдельную папку, из которой буду загружать их в папку dataset на Google Collab.

Каждый из этих файлов я максимально очищаю от всех призвуков, убираю любой шум, громкое дыхание, паузы, щелчки - чем чище будет исходник (голос певца), тем качественнее получится модель из него. Ещё желательно взять не одно вокальное произведение, исполненное певцом, а несколько, чтобы голос был представлен во всём своём диапазоне, со всеми его характерными особенностями.

Это самый важный подготовительный этап изготовления модели.

После подготовки акапеллы переходим по ссылке: https://colab.research.google.com/drive/1030ibBABNaNZ3CjIoDXstcCR7VhEnSAA

Открывается такой интерфейс:

Интерфейс
Интерфейс

Щёлкаем по надписи Скрыто 6 ячеек (по серому полю), они открываются:

Скрыто 6 ячеек
Скрыто 6 ячеек
Раскрываем ячейки
Раскрываем ячейки

В поле model_name заменяем My-Voice на наше название латинскими буквами, затем нажимаем на значок Play.

Начинается Установка на Google Диск (для возобновления обучения и автоматического сохранения)

Установка на Google Диск
Установка на Google Диск

Появляется такое предупреждение:

Внимание! Google не имеет отношения к созданию этого блокнота
Внимание! Google не имеет отношения к созданию этого блокнота

Выполняем, значок Play начинает крутиться, далее:

Разрешить этому блокноту доступ к вашим файлам на Google Диске?
Разрешить этому блокноту доступ к вашим файлам на Google Диске?
Продолжение этой статьи Прежде я делала модели и каверы в сети so-vits-svc, используя Google Collab, по этой ссылке:  или по этой:   Вот по этому туториалу:  Но что-то у меня сломалось в so-vits-svc,-8
Выбираете свой аккаунт
Выбираете свой аккаунт
Прокручиваем вниз, нажимаем Разрешить
Прокручиваем вниз, нажимаем Разрешить

Ход установки:

Код установки системы
Код установки системы

В конце процесса появится зелёная кнопка, она всегда означает успешное выполнение задачи:

Готово
Готово

В процессе могут выскакивать какие-то ошибки, помеченные красным - не обращайте внимание, ждите конца процесса и кнопки Готово. Процесс может идти минут 5-7 при первом запуске.

Может выйти вот такое предупреждение - игнорируйте.

Предложение сменить среду
Предложение сменить среду

Далее мы должны выполнить 1.Предварительная обработка данных

Но перед тем, как нажать на эту кнопку, загружаем свои аудиофайлы, из которых будем делать модель.

Открываем папку слева
Открываем папку слева

В открывшейся папке dataset нажимаем на три точки справа:

dataset
dataset

Выбираем Загрузить и грузим туда наши аудиофайлы с компьютера, выделяем их все и перетаскиваем или просто загружаем. Внимание! Грузить надо именно файлы, а не папку с ними.

Загрузить
Загрузить
Грузим с компьютера
Грузим с компьютера
Сохраняем файлы
Сохраняем файлы
Продолжение этой статьи Прежде я делала модели и каверы в сети so-vits-svc, используя Google Collab, по этой ссылке:  или по этой:   Вот по этому туториалу:  Но что-то у меня сломалось в so-vits-svc,-19
Файлы все загружены
Файлы все загружены

После полной загрузки всех файлов выполняем пункт 1.Предварительная обработка данных

Preprocess Data
Preprocess Data

Дожидаемся зелёной кнопки Готово.

Завершение 1 пункта
Завершение 1 пункта

Далее выбираем алгоритм, можно выбрать любой, по умолчанию стоит rmvpe_gpu, он лучше всех. Выполняем 2.Алгоритм обработки, дожидаемся конца:

Завершение 2 пункта
Завершение 2 пункта

Затем 3.Тренировка индекса, ждём завершения:

Завершение 3 пункта
Завершение 3 пункта

И наконец самое главное: тренировка модели, т.е. изготовление модели из тех аудиофайлов, что мы загрузили в dataset.

4.Тренировка модели

Первым делом, чтобы не забыть, меняем стандартное My-Voice в поле model_name на наше название модели, можно просто скопировать его из пункта 1. Затем выставляем ползунками нужные нам значения: количество эпох тренировки и количество сохранённых копий этапов тренировки, я обычно начинаю с 250 эпох (в этом примере выставила 400) и сохраняю по 20 копий:

Настройка параметров тренировки
Настройка параметров тренировки

Теперь очень важный пункт, кто-то его игнорирует, но у меня не получается проигнорировать, без его выполнения тренировка не начинается.

Надо получить ngrok authtoken. Переходим по ссылке, она откроется в новом окне, процесс работы при этом не прервётся, не пугайтесь фразы выход из Colab:

Переходим по ссылке
Переходим по ссылке
Выход
Выход

Откроется окно регистрации, заходим через наш аккаунт Google, принимаем куки:

Заходим через наш аккаунт Google
Заходим через наш аккаунт Google

Может предложить создать аккаунт - создаём, тогда полученный код будет присвоен именно этому аккаунту.

Создаём аккаунт
Создаём аккаунт

Открывается окно со штрих-кодом и буквенно-цифровым кодом внизу, копируем его:

Копируем код
Копируем код

Потом может либо сразу выйти окно вашего аккаунта в ngrok, либо будут еще какие-то манипуляции с этим кодом, где могут быть всякие ошибки:

Вставить код
Вставить код

После вставления кода и нажатия синей кнопки Continue иногда выскакивают какие-то красные Error, не пугайтесь, просто переходите по ссылке: https://dashboard.ngrok.com

Выйдет такое окно, это Ваш аккаунт в этой системе:

Ваш аккаунт в ngrok
Ваш аккаунт в ngrok

Нажимаете Your Authtoken слева, откроется окно:

Your Authtoken
Your Authtoken

Копируем код в ценре и вставляем его в поле ngrok_authtoken.

Этот код рекомендую сохранить в текстовом файле, он привязан к Вашему аккаунту Google и может понадобиться в дальнейшем.

Полностью заполненный пункт 4 выглядит так:

Полностью заполненный пункт 4
Полностью заполненный пункт 4

После этого жмём на начало тренировки и внимательно следим за кодом.

Как только начнут появляться номера эпох - Epoch: 1, Epoch: 2, и т.д. - можете расслабиться и пойти выпить чашечку кофе: процесс пошёл :))

И будет идти довольно долго, зависит от выставленного Вами количества эпох, объёма датасета, мощности компьютера, скорости Интернета и пр.

У меня обычно при 250 эпохах где-то полчаса идёт, иногда больше, иногда меньше.

250 - это первая проба, потом можно будет продолжить тренировку.

Появление эпох
Появление эпох

Пока идёт тренировка, можем сходить в другой вкладке на наш Google-диск.

Там увидим папку project-main, заходим в неё.

В ней нас интересуют три папки:

Три папки
Три папки

1. logs, а в ней папка с именем нашей модели, а в ней файл с примерно таким названием: added_IVF302_Flat_nprobe_1_имя модели_v2.index.

Этот файл, когда тренировка закончится, надо будет скачать.

2. assets, а в ней папка weights, а в ней будут постепенно копиться файлы такого типа: имя модели_e20_s220.pth, эти цифры означают копии эпох, которые сохраняются на диск, чтобы потом с последней из них с самым большим числом, начать дотренировку модели, если это понадобится.

Когда тренировка закончится, появится файл имя модели.pth, его надо будет тоже скачать, именно его - имя модели без всяких цифр и букв.

3. audios, сюда мы потом закачаем другую акапеллу, в формате wav, которую надо будет смикшировать с нашей моделью, чтобы заменить голос, но об этом позже. Это будет уже второй этап: изготовление кавера.

В программе есть пояснение путей к файлам:

Модель сохраняется на диск автоматически

Путь к pth файлу:

Мой диск/project-main/assets/weights/[название модели].pth

Путь к index файлу:

Мой диск/project-main/logs/[название модели]/added_IVF234_Flat_nprobe_1_[название модели]_v2.index

Конец тренировки модели будет выглядеть так:

Конец тренировки модели
Конец тренировки модели

Теперь скачиваем два файла: имя модели.pth и added_IVF302_Flat_nprobe_1_имя модели_v2.index.

Кладём их в архив zip, только их, никакой папки внутри архива быть не должно.

Архив
Архив

Закачиваем архив куда-то, я обычно на свой гугл-диск и закачиваю, открываем доступ к нему по ссылке, копируем ссылку куда-нибудь в текстовый файл, чтобы была под рукой.

Поделиться
Поделиться
Все, у кого есть ссылка
Все, у кого есть ссылка

Теперь можем попробовать сделать кавер здесь же, в этой программе.

Закачиваем в папку audios ту акапеллу, чей голос надо будет заменить голосом нашей модели. Это будет тот файл, ссылку на который мы вставим в поле input_path, а в поле output_path мы впишем название файла, который хотим получить на выходе.

Идём сюда:

Интерфейс (для каверов)

Интерфейс для каверов
Интерфейс для каверов

Мои настройки интерфейса:

Мои настройки интерфейса
Мои настройки интерфейса

Если всё закачано и проставлено верно, в конце генерации кавера должен появиться проигрыватель, и можно будет прослушать, что получилось в результате замены голоса. Иногда программа капризничает и выдаёт ошибку, даже если всё сделано правильно, просто проверьте всё тщательно и перезапустите процесс.

Примеры:

Ж.-П. Мартини, "Восторг любви", фрагмент, исполняет Элизабет Шварцкопф (оригинал)

Ж.-П. Мартини, "Восторг любви", фрагмент, исполняет Стефани Штегер ( мой кавер)

В кавере могут быть всякие шумы, но их вполне можно вычистить в аудиоредакторе типа Audacity, а если при отделении вокала от инструментала сохранить не только акапеллу, но и минус, то потом, после его наложения на вокал, они и вовсе будут мало слышны.

Теперь о том, как продолжить тренировку, если Вам нужно большее число эпох (максимум 1000).

Заходим по той же ссылке

Выполняем все пункты, кроме 1 и 2, т. е. выполняем установку на Google Диск, тренировку индекса и тренировку модели.

Но это при условии, что не прошло слишком много времени, и сохранились все введённые данные: файлы в датасете (проверяем, там ли они), название модели, ngrok_authtoken. Если нет - проделываем всю процедуру заново, снова загружаем файлы в датасет, но на этапе тренировки модели выставляем уже иное, большее число эпох, например, было 250, а Вы хотите дотренировать до 600, тогда вписываете это число и запускаете тренировку. Она начнётся с того числа эпох, до которого Вы довели тренировку в прошлый раз, и от числа, которое выражает число сохраненных копий, допустим, если это было 250 и 20, то новая тренировка начнется с числа 240 (потому что оно кратно 20, и последняя сохраненная копия будет выглядеть так: имя модели_e20_s240.pth).

А в конце опять скачиваете файлы имя модели.pth и added_IVF302_Flat_nprobe_1_имя модели_v2.index, делаете новый зип-архив с новым именем (рекомендую в имени указывать число эпох, так удобнее будет различать Ваши модели разной степени натренированности), снова закачиваете новый архив на диск и можете делать каверы уже с ним.

Делать каверы можно ещё вот в этом сервисе, надо там зарегистрироваться и скопировать среду по ссылке, все подробности в видео: