Найти в Дзене
А вот дудки вам!

Как заменить голос в песне с помощью нейросети so-vits-svc в Google Collab

Оглавление
Рисунок нейросети starryai.com
Рисунок нейросети starryai.com

Мне известны 4 способа замены голоса с помощью нейросетей:

1. На своём компьютере, используя программу Python.

Для этого ввести в командной строке pip install -U so-vits-svc-fork, ну или скачать и инсталлировать программу отсюда.

Но я не могу детально описать этот метод, потому что на моём ноутбуке стоит Windows 7, а на неё Python не ставится. Может быть, когда-нибудь сделаю апгрейд операционки, но не сегодня.

2. Очень простой способ: сайт https://create.musicfy.lol/

Регистрируемся там, заходим.

В левой части открывшегося окна либо закачиваем аудиофайл: Select Audio File, либо поём сами, записывая свой голос: Start Recording.

-2

Появится проигрыватель с вашей записью:

-3

Затем в правой части окна выбираем голос Select an Artist, там их всего 15 (можно предварительно прослушать), задаём ему высоту, двигая ползунок Set Pitch, потом жмём розовую кнопку Remix, записывается кавер, он появится в левой части окна, ниже вашего файла:

-4

Справа, в нижнем углу страницы будет значок со стрелочкой, кликнув по нему, кавер можно скачать в формате Wave Sound.

Этот незамысловатый способ годится ради забавы, на что и намекает слово lol в названии сайта, он не даёт возможности создать собственную модель нужного вам голоса, да и те модели, что там есть, представлены в очень скудном количестве. Кроме того, сгенерированные голоса изрядно картавят, почти не выговаривая некоторые согласные, особенно "р".

3. На сайте сервиса Kaggle:

https://www.kaggle.com/

Есть хорошая инструкция по использованию этого сервиса:

Я пробовала там поработать, но, увы, чтобы воспользоваться графическим процессором GPU, нужно подтвердить свой номер телефона - и жителям России это невозможно ((.

Можно, конечно, попробовать купить виртуальный номер вот здесь https://novofon.com/numbers/, к примеру, или здесь https://onlinesim.io/ru, но мне неохота было это делать, поэтому я остановилась на четвёртом способе:

4. Генерируем кавер с помощью Google Colab.

Заходим по ссылке https://colab.research.google.com/drive/11syId1sx5vaoX1V_gmvC0E4uTUBnpmwr

Открывается такой блокнот:

so vits svc 4.0 colab fixed thanks goat YeezyBeaver/checkmate
so vits svc 4.0 colab fixed thanks goat YeezyBeaver/checkmate

so vits svc 4.0 colab fixed thanks goat YeezyBeaver/checkmate

Видео об этом процессе:

Нажимаем Check GPU, на значок Play (на рисунке показывает красная стрелка):

-6

Важно: любой процесс в блокноте Colab, прежде чем начать его выполнять, кликнув по значку Play, можно уточнить, посмотрев его код:

-7

Смотрим код:

-8

Итак, запускаем процесс проверки графического редактора GPU, иногда уже на этом первом этапе, если вы долго экспериментировали в блокноте, сеть говорит, что лимит на него исчерпан – ничего страшного, зайдите в блокнот позже.

Начинает крутиться чёрный кружочек, надо дождаться конца этого процесса. Ещё вот такое предупреждение выскакивает:

-9

Тоже ничего страшного, нажимаем Выполнить.

Результат проверки:

-10

Дальше нажимаем CELL 1, CELL 2, результаты ниже:

-11

-12

На этом этапе может выйти вот такое:

(перевод) ПРЕДУПРЕЖДЕНИЕ. Следующие пакеты ранее были импортированы в эту среду выполнения: [пустой] Вы должны перезапустить среду выполнения, чтобы использовать новые установленные версии.

Нажимаем кнопку, указанную стрелкой, и идём дальше.

Выйдет такое предупреждение, выбираем Да.

-13

Некоторые игнорируют это предложение, я выполняю, наверно, это не принципиально. Экспериментируйте.

Среда должна быть такой:

-14

Чтобы посмотреть это, жмём сюда:

-15

Но это так, для информации.

Идём дальше.

Затем пункт:

Run the above cells one by one first run CELL 1 wait till green tick appears then Run CELL 2 wait till green tick appears Then restart runtime and run all the cells as you used to do before (no need to run this cell) - жмём.

Дальше будет Setup 1 (just run this once),

-16

Очень длительный процесс, минут 7-10, будет огромное количество текста, и в нём, по ходу дела, могут быть ошибки, выделенные красным:

-17

-18

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

-19

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

-20

Я сперва пугалась всех этих красных надписей и выскакивающих требований, но потом поняла, что это не опасно для процесса, он всё равно кончится успехом после нескольких проб.

Когда Setup 1 наконец закончится без красной стрелочки, означающей какую-то фатальную ошибку,

-21

мы можем запустить Setup 2

-22

Это быстрый процесс.

Затем

-23

Загружается среда конвертации, мы наблюдаем движущуюся чёрную полоску:

-24

Результат:

-25

Затем очень важный момент.

Надо выбрать голос какого-то исполнителя - внизу примеры ссылок на этих исполнителей, ещё очень большая база моделей голосов здесь: https://huggingface.co/QuickWick/Music-AI-Voices/tree/main

Вы можете не готовить и не тренировать свою модель, а выбрать любую готовую.

Но если у вас есть своя модель, вам надо куда-то закачать архив с ней и разместить здесь ссылку на этот архив. Внимательно изучите информацию ниже.

-26

Два файла в zip-архиве, в любой модели голоса, как в выбранной по ссылкам выше, так и в вашей собственной (как её сделать, расскажу в следующей статье): один из них config.json, второй на букву G_ плюс какая-то цифра не меньше 1000, с расширением .pth

-27
-28

Я храню архивы с моделями на Гугл-диске, потому что на нём больше всего места.

Ссылки надо оформлять так:

Щёлкаем по архиву правой клавишей, открывается окно, нажимаем Открыть доступ.

-29
-30

Выбираем Все, у кого есть ссылка. Копировать ссылку. Готово.

Она выглядит так: https://drive.google.com/file/d/0B6pbT3oceUaLV20tZUdfU2VKN2M/view?usp=sharing&resourcekey=0-IBbccra3ZIFgPg4lDv2zcA

Но такой её формат не годится для программы, её надо привести к такому виду: https://drive.google.com/uc?id=0B6pbT3oceUaLV20tZUdfU2VKN2M

Для этого набираем на клавиатуре первую часть ссылки: https://drive.google.com/uc?id=

Она всегда должна иметь только такой вид.

Затем копируем идентификатор файла, это та часть первичной ссылки, которая находится между https://drive.google.com/file/d/ и /view?usp=sharing, это фрагмент 0B6pbT3oceUaLV20tZUdfU2VKN2M

Он и есть идентификатор. Приставляем его к первой части ссылки: https://drive.google.com/uc?id=

После этого вставляем готовую ссылку сюда:

-31

Затем запускаем Other Downloads (.zip) Step o.1, начинается загрузка нашего архива с моделью, движущаяся чёрная полоска:

-32

Следующий шаг, жмём Extract .zip Downloads - Step o.2

-33

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

Внимание! Вот этот процесс:

Open the file explorer on the left of your screen and drag-and-drop an audio file anywhere. Then run the below cell, and press convert.

пока не трогаем, сперва нужно загрузить акапеллу.

1. Щёлкаем по значку папки в левой части экрана, она становится оранжевой.

2. Щёлкаем по значку стрелки выше, открывается проводник, и мы выбираем и загружаем наш файл wav не больше 15 мб.

-35

Выскакивает такое предупреждение, жмём ОК:

-36

Наш файл загрузился в сессионное хранилище:

-37

Теперь запускаем процесс Open the file explorer on the left of your screen and drag-and-drop an audio file anywhere. Then run the below cell.

Нажимаем на значок PLAY, откроется окно:

-38

В нём ничего не меняем (в верхнем поле – название вашего архива, в котором фрагменты обучающего модель аудио).

Нажимаем кнопку Convert.

Идёт процесс конвертации, по завершении появится такой вид окна:

-39

Названия файлов wav зависят от названия файлов вашей акапеллы (верхний файл wav слева) и названия модели, которая подменит собой голос вашей акапеллы (нижний файл wav слева).

А внизу будет значок плеера, который проиграет результат вашего труда.

Теперь вы можете его скачать.

Наведите на файл слева мышь, он станет серым, и появятся три вертикальные точки,

-40

щёлкните по ним, выйдет окно:

-41

Скачивайте.

Если что-то не получилось, просто перезагрузите страницу и проделайте всё, весь процесс, заново.

Как сделать акапеллу?

Если это ваш собственный голос - не проблема, просто поёте песню в максимально тихой обстановке и сохраняете в формате wav.

Если это какое-то произведение в чужом исполнении с инструменталом, надо отделить вокал от инструментала, для этого есть много разных сервисов, я пользуюсь тремя этими:

Vocal Remover and Isolation

Acapella Extractor | Make acapellas from any song for free !

https://x-minus.cc/ai

Там всё очень просто:

1. В vocal remover загружаем файл, ждём некоторое время, пока он обработается,

-42

потом двигаем ползунки в зависимости от того, какой конечный файл после обработки вам нужен - вокал или инструментал, сохраняем нужный файл, можно все три: вокал, инструментал (минусовка) или всё вместе:

-43

Для работы в Google Colab нам нужен строго wav, поэтому конвертируем наш mp3, онлайн или в каком-то аудиоредакторе, погуглите подробности. Я пользуюсь Audacity. Сам конечный файл wav должен быть не больше 15 мб, если больше - режем его на части и обрабатываем каждую отдельно, проходя весь процесс заново, а потом склеивая в том же аудиоредакторе.

Да, долго и нудно, но иначе Colab не позволяет, у него много лимитов.

2. В acapella-extractor.com всё ещё проще.

Грузим, пассивно ждём, скачиваем результат.

-44
-45
-46

3. На x-minus совсем просто, он на русском.

Грузим файл, ждём:

-47

Выбираем, что нам надо - вокал или инструментал и скачиваем соответственно.

-48

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

Исходник (это не я пою :), нашла эту акапеллу в сети):

https://drive.google.com/file/d/10VbaUMOTIMtNcGA_uLl092ba-Urpuuso/view?usp=sharing

Модель № 1: https://drive.google.com/file/d/1s8xkIe0qPNpiH5Ih8qn7tTgj41wlpq5P/view?usp=sharing

Модель № 2: https://drive.google.com/file/d/1o5wYns363vd0AnBTCt4t2jrpms6Bq41Y/view?usp=sharing

К сожалению, в Google Colab есть лимит времени, поэтому он обрывает тренировку модели через несколько часов, у кого-то через 12 часов, а у меня почему-то через примерно 5 часов, поэтому она не успевает набрать достаточного количества букв G (чем больше, тем лучше будет звучать модель), у меня максимум 8000 получилось, потом процесс остановился.

В результате много шумов и качество звука так себе, надо тренировать модель дальше.

Но об этом подробнее в следующей статье.