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

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

2,6K прочитали
Рисунок нейросети 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.

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-2

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-3

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-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 (на рисунке показывает красная стрелка):

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-6

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-7

Смотрим код:

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-8

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-9

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-10

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-11

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-12

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

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

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-13

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-14

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-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),

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-16

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-17

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-18

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-19

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-20

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-21

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-22

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

Затем

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-23

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-24

Результат:

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-25

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

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

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-26

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-27
Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-28

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

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-29
Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-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=

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-31

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-32

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-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 мб.

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-35

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-36

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-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, откроется окно:

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-38

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

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-39

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

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

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-40

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-41

Скачивайте.

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

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

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

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

https://x-minus.cc/ai

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-42

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-43

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

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

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-44
Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-45
Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-46

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

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-47

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

Мне известны 4 способа замены голоса с помощью нейросетей:  1. На своём компьютере, используя программу Python.-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 получилось, потом процесс остановился.

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

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