Продолжение этой статьи
Прежде я делала модели и каверы в сети 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 ячеек (по серому полю), они открываются:
В поле model_name заменяем My-Voice на наше название латинскими буквами, затем нажимаем на значок Play.
Начинается Установка на Google Диск (для возобновления обучения и автоматического сохранения)
Появляется такое предупреждение:
Выполняем, значок Play начинает крутиться, далее:
Ход установки:
В конце процесса появится зелёная кнопка, она всегда означает успешное выполнение задачи:
В процессе могут выскакивать какие-то ошибки, помеченные красным - не обращайте внимание, ждите конца процесса и кнопки Готово. Процесс может идти минут 5-7 при первом запуске.
Может выйти вот такое предупреждение - игнорируйте.
Далее мы должны выполнить 1.Предварительная обработка данных
Но перед тем, как нажать на эту кнопку, загружаем свои аудиофайлы, из которых будем делать модель.
В открывшейся папке dataset нажимаем на три точки справа:
Выбираем Загрузить и грузим туда наши аудиофайлы с компьютера, выделяем их все и перетаскиваем или просто загружаем. Внимание! Грузить надо именно файлы, а не папку с ними.
После полной загрузки всех файлов выполняем пункт 1.Предварительная обработка данных
Дожидаемся зелёной кнопки Готово.
Далее выбираем алгоритм, можно выбрать любой, по умолчанию стоит rmvpe_gpu, он лучше всех. Выполняем 2.Алгоритм обработки, дожидаемся конца:
Затем 3.Тренировка индекса, ждём завершения:
И наконец самое главное: тренировка модели, т.е. изготовление модели из тех аудиофайлов, что мы загрузили в dataset.
4.Тренировка модели
Первым делом, чтобы не забыть, меняем стандартное My-Voice в поле model_name на наше название модели, можно просто скопировать его из пункта 1. Затем выставляем ползунками нужные нам значения: количество эпох тренировки и количество сохранённых копий этапов тренировки, я обычно начинаю с 250 эпох (в этом примере выставила 400) и сохраняю по 20 копий:
Теперь очень важный пункт, кто-то его игнорирует, но у меня не получается проигнорировать, без его выполнения тренировка не начинается.
Надо получить ngrok authtoken. Переходим по ссылке, она откроется в новом окне, процесс работы при этом не прервётся, не пугайтесь фразы выход из Colab:
Откроется окно регистрации, заходим через наш аккаунт Google, принимаем куки:
Может предложить создать аккаунт - создаём, тогда полученный код будет присвоен именно этому аккаунту.
Открывается окно со штрих-кодом и буквенно-цифровым кодом внизу, копируем его:
Потом может либо сразу выйти окно вашего аккаунта в ngrok, либо будут еще какие-то манипуляции с этим кодом, где могут быть всякие ошибки:
После вставления кода и нажатия синей кнопки Continue иногда выскакивают какие-то красные Error, не пугайтесь, просто переходите по ссылке: https://dashboard.ngrok.com
Выйдет такое окно, это Ваш аккаунт в этой системе:
Нажимаете Your Authtoken слева, откроется окно:
Копируем код в ценре и вставляем его в поле ngrok_authtoken.
Этот код рекомендую сохранить в текстовом файле, он привязан к Вашему аккаунту Google и может понадобиться в дальнейшем.
Полностью заполненный пункт 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, делаете новый зип-архив с новым именем (рекомендую в имени указывать число эпох, так удобнее будет различать Ваши модели разной степени натренированности), снова закачиваете новый архив на диск и можете делать каверы уже с ним.
Делать каверы можно ещё вот в этом сервисе, надо там зарегистрироваться и скопировать среду по ссылке, все подробности в видео: