Всем КуНедавно наткнулся на форуме на пару статей по замене своего голоса с помощью моделей в реальном времени. Статья В частности, эта описывает как раз весь процесс использования другого голоса онлайн, советую ознакомиться с ней после, я буду на нее ссылаться в самом конце. Это интересная тема, но я хотел бы дополнить ее. Рассказать, как натренировать собственную голосовую модель. С ее помощью можно перепевать песни как бы своим голосом - прикольная тема, но больше просто поприкалываться. Хотя если будет интересно - пишите, расскажу. Но сейчас же речь о более прикладном моменте: натренировать модель и после использовать КОНКРЕТНЫЙ голос (т.е. вашего друга, бабки, любого чела) в реальном времени. Постараюсь писать супер подробно, со скринами, чтобы не было вопросов. Итак, приступим. Оговорка для шарящих: В данной статье я буду рассказывать про обучение собственной голосовой модели с помощью RVC и использование ее с w-okada. Я видел на форуме инфу по использованию w-okada, как раз в вышеуказанной статье. К ней я лишь добавлю момент с добавлением своей модели. По RVC же я видел только гайд по kaggle, но в случае с kaggle много лишних телодвижений, плюс мне нравится все хостить на своем компе. Если вы уже смешарик и вам есть что сказать - пожалуйста, пишите. Я и сам не волшебник, только учусь. Шаг нулевойДля начала, расскажу, что нам понадобится: 10-15 минут записи голоса человека. Если пробуете на себе - сядьте и запишите несколько минут просто разговора на диктофон (лучше в телефоне, там качество получше). Если другого челика - все зависит от вас. Я брал либо голосовые из телеги - вполне неплохо, либо записывал диалог в дискорде (на скрытничах). В общем, любая запись, без помех и сторонних шумов. Нормальная видеокарта. Думаю, 1650+ должно хватить. Хотя и хуже можно, просто наберитесь терпения. Несколько часов. Тренировка модели займет пару часов, если не трогать комп (на моей 3080 идет полтора часа где то). Советую закинуть на ночь и не париться. python на компе. лично я юзаю 3.9. Надеюсь, с установкой питонов траблов не будет ни у кого. Если что, лично у меня стоит 3.9 версия - качайте с офф сайта, не забудьте при установке поставить галочку add python to PATH. комп с виндой. Если у вас только мак - извиняйте, за мак не помогу. Если у вас мак, но очень надо... Пишите в лс, попробуем разобраться. Просто на всякий случай, если ссылки не будут открываться: статья на которую ссылаюсь в конце - https://zelenka.guru/threads/5687988/ , статья про kaggle - https://zelenka.guru/threads/5470648/ , гитхаб - https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/README.en.md , хаггинфейс - https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main Шаг первыйДля начала, если хотим немного изучить вопрос, переходим по гитхаб ссылке. Если же нет, то жмем на хаггинфейс ссылку, ищем RVC-beta.7z файлик весом 5.19 GB (на момент написания статьи) и качаем его. Скачали - распаковываем куда удобно. Стандартные предостережения про отсутствие русских символов в пути и наличие места на диске с запасом также применимы. Теперь запускаем файлик go-web.bat и немного ждем. Поздравляю, вы установили и запустили модель. Шаг второйНас встречает примерно такая картина: Если картина не такая... Возможно, винда по дефолту открыла модельку в edge. Разницы никакой, но лично мне всегда спокойнее, когда на первых порах делаю 1в1 то же, что и автор. Так что просто скопируйте адрес локал хоста - он будет в терминале после строчки Running on local URL: - и вставьте в удобный для вас браузер, opera gx в моем случае. Переходим на вкладку Train, третья по счету. Идем по порядку, слева-направо сверху-вниз. (Скрины для вас вольно переводил) Step 1: Enter the experiment name: - Вставьте название модельки: пишем что угодно, условно, "test". Target sample rate: Частота дискретизации: Ставим 40к. Whether the model has pitch guidance (required for singing, optional for speech): - Будет ли моделька способна задавать тон и высоту голоса. Ставим да. Version - Версия, ставим v2. Проверяем, что target sample rate осталась на 40к. Number of CPU processes used for pitch extraction and data processing: - Кол-во задействованных процессов, оставляем как поставилось. Step 2a: 0. Для начала, заходим в корень модели (куда распаковали, создаем папку 'training', в ней папку 'test' (называйте как угодно). В эту папку кидаем наши аудиозаписи. Не парьтесь, будь то одна запись на 15 минут или 15 на одну минуту - модель сама все разрежет как ей будет нужно. За расширение тоже не переживайте, моделька кушала у меня и aac, и mp3, и ogg. В крайнем случае, перегоните в одно из этих. Enter the path of the training folder: - Укажите путь к папке с записями: training/test Please specify the speaker/singer ID: - Не трогаем, нам это не нужно. Жмем кнопку Process data. В консольке побегут сообщение, позже в Output information появится start preprocess, моделька начнет обрабатывать ваши записи. После появится ненужная нам инфа, после end preprocess. Увидели это - все хорошо. В целом, не знаю, что должно пойти не так, чтобы у вас на данном этапе что-то упало. Step 2b: Enter the GPU index(es) separated by '-', e.g., 0-1-2 to use GPU 0, 1, and 2: - Смотрим, чтобы моделька корректно определила вашу видюху. В 99% случае ничего менять не нужно будет. GPU information - ваша видюха. Select the pitch extraction algorithm - Как сказано в скобках, pm - второпях, dio - середнячок, harvest - хорошо но долго. В теории, на ваше усмотрение, но я всегда ставлю harvest. После, жмем feature extraction. Как и в прошлом случае, побегут строки в консольке, вы увидите, как модель нарезает ваши аудиозаписи и обрабатывает их. Немного подождите, промотайте все **** вниз, увидели all-feature-done - все круто. Step 3: Save frequency (save_every_epoch): - как часто моделька будет сохраняться. Ставим 10. Total training epochs (total_epoch): - Сколько всего будет эпох тренировок. Ставим 200. Batch size per GPU: - Не трогаем, либо как хотим (я ставлю 20). Save only the latest '.ckpt' file to save disk space: - Сохранить только последний чекпоинт - ставим Yes. Cache all training sets to GPU memory. - Ставим No. Save a small final model to the 'weights' folder at each save point: - Ставим Yes. Если моделька сломается в середине пути, будут хотя бы какие-то результаты. Иначе вообще все по новой. И, наконец, жмем "One-click training". Все, мы запустили процесс. Теперь лишь осталось дождаться окончания обработки моделью. Советую, как писал выше, оставить комп на ночь. Можете немного подождать, чтобы удостовериться, что все норм. Если увидите в консольке, epoch 1, epoch 2, epoch 3 - значит все окей, моделька медленно но верно работает. Если что-то падает или не работает, гуглите, или пишите сюда - буду по мере возможностей помогать, по крайней мере то, что знаю сам. Шаг третийИтак, теперь, если все прошло хорошо, вы натренировали модель на чей-то - или свой - голос, поздравляю! Теперь вы можете попробовать перепеть какие-то треки сами, или выпустить "фит" с каким-нибудь артистом. Я лично пару дней перепевал любимые песни. Но, опять таки, это тема отдельного разговора. Если будет интересно - пишите, сделаю гайд. Сейчас же расскажу, как использовать модель в реальном времени. В начале статьи я упоминал статейку - переходим, читаем. Статья объяснит, как пользоваться прогой и менять голос, я - как менять на конкретный. Итак, открыли программу, жмем edit: Далее листаем вниз, жмем на свободном месте upload: Далее, VoiceChangerType ставим RVC, model жмем select file и выбираем по указанном пути. В моем случае, C:\AI_voice\RVC-beta0717\weights\test.pth. Из-за того, что ранее мы с вами поставили Yes напротив сохранения каждую 10ую эпоху, у вас будем много моделек - если все сработает до конца - удалите их, и оставьте только последнюю. Index выбирать не нужно, жмем upload, и немного ждем, пока загрузится моделька. Если же очень нужно... он будет по адресу модель\****\название, в моем случае RVC-beta0717\****\test, называться будет "очень длинное название.index". но как мне показалось, особо ничего он не дает. ЗаключениеНу вот, собственно, и все. Если вы все сделали правильно - рядом с предустановленными модельками появится ваша. Ее использовать как абсолютно любую другую, в статейке это описано. Если будут вопросы - пишите, постараюсь ответить. Ну или опять таки, гугл в помощь. Спасибо что дочитали, и удачи!
норм гайд, но если комп слабый лучше обучать на блокноте kaggle или google colab, как раз гайд по обучению на kaggle уже был на форуме
vuchaev2015, да, все так, гайд по kaggle уже был - я оставил на него ссылку. но мне все таки больше нравится на своем компе все делать.
Инопланетянец, я думаю, ты имеешь в виду эту статью: https://telegra.ph/Delaem-realistichnyj-zhenskij-golos-v-realnom-vremeni-08-14 Я ссылался на данную статью в третьем шаге, т.к. в ней речь идет о использовании уже готовой модели. а я рассказал, как создать собственную модель!
gruckz, хуй, японская модель может хорошо говорить на русском, но плохо на английском, как и наоборот Зависит от хуй знает чего
Элейна, по моему опыту, использование модели на том же языке, на котором она тренировалась - залог успеха. На других языках уже как повезёт!
gruckz, зависит от схожести звучания языка. Про язык оригинала можно и не говорить, и так понятно, что будет хорошл с большим шансом
ИроничныйЧёрт, https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI https://github.com/voicepaw/so-vits-svc-fork
ИроничныйЧёрт, rvc - это та голосовая модель, которая используется в этом гайде. so vits svc - аналог. отвечая на твой вопрос - именно с нуля синтезировать голос на ней невозможно, насколько мне известно - это не ее профиль. как тебе уже посоветовали, имеет смысл записать самому аудио, а потом переозвучить. ну либо на крайняк, другой моделью озвучить текст, а потом загнать ее сюда.
id451248464, приветствую! Для обучения только harvest, rvmpe там отсутствует. Для использования я лично использую rvmpe, но это нужно пробовать под себя индивидуально.
Здравствуйте! RTX 3070, одна эпоха тренируется раз в 8-9 минут, на 200 эпох это примерно 30 часов, как я могу ускорить процесс?
MegaSa1nt, рад, что вы нашли ответ на свой вопрос. В целом, я бы советовал то же самое, ещё бы посмотрел на ваши настройки. Но если проблема уже решена - рад, что вы справились самостоятельно!
Забавное дополнение: в RVC уже есть программа для изменения голоса в реальном времени, нужно всего лишь запустить go-realtime-gui.bat
MegaSa1nt, спасибо за ваше наблюдение! да, действительно, это так. но на мой личный взгляд, okada будет поудобнее)