Вступление

Ранее анонсировал, что меня зацепило и с чем интересно поиграть вот. Сейчас накидаю идей для применения, что можно реализовать. Например разыграть товарищей голосом знаменитости, сделать поздравление любым голосом, свой собственный голосовой рингтон, автоответчик, поменять диктора в аудиокниге, по своему озвучить фильм, поменять свой голос при озвучке видеоролика, спеть песню своим голосом да же если не певец. Применений множество, все ограничивается только фантазией.

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

Инструменты для работы

Извиняйте, но все ПО будет рассмотрено и использовано в виндовс. Все программное обеспечение биплатное. Для комфортной работы понадобится всего четыре:

  • Audacity - мощный редактор аудио с открытым исходным кодом. Скачать и установить одну из версий с эффектами и без, минимальной версии достаточно.

Audacity — это бесплатная, открытая и многофункциональная программа для редактирования аудио. Она широко используется как профессионалами, так и любителями благодаря своей мощности и доступности. Ниже приведены основные характеристики и функции Audacity:

  1. Запись аудио: Audacity позволяет записывать аудио в реальном времени через микрофон или микшер. Программа поддерживает многоканальную запись, что позволяет записывать несколько дорожек одновременно.

  2. Редактирование аудио: Audacity предоставляет множество инструментов для редактирования звука, таких как обрезка, копирование, вставка и удаление фрагментов аудиофайлов. Программа также поддерживает неограниченное количество отмен и возвратов, что облегчает процесс редактирования.

  3. Поддержка различных форматов: Программа поддерживает импорт и экспорт множества аудиоформатов, включая WAV, AIFF, MP3, Ogg Vorbis и многие другие. Для работы с форматами MP3 может потребоваться установка дополнительного кодека (например, LAME).

  4. Эффекты и фильтры: Audacity включает в себя множество встроенных эффектов, таких как нормализация, эквализация, реверберация и шумоподавление. Программа также поддерживает подключаемые модули VST и LADSPA, что позволяет расширить её функционал с помощью сторонних эффектов и фильтров.

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

  6. Многоплатформенность: Audacity доступна для Windows, macOS и Linux, что делает её универсальным инструментом для пользователей различных операционных систем.

  7. Интерфейс пользователя: Интерфейс Audacity интуитивно понятен и позволяет быстро освоить основные функции. Пользователи могут настроить внешний вид программы под свои нужды, включая расположение панелей инструментов и использование горячих клавиш.

  8. Сообщество и поддержка: Благодаря открытости исходного кода и активному сообществу разработчиков и пользователей, Audacity постоянно развивается и улучшается. На официальном сайте и форумах можно найти множество руководств, видеоуроков и ответов на часто задаваемые вопросы.

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

  • Ultimate Vocal Remover - Нейронка для расщепления вокала от музыки. Скачиваем устанавливаем. Там чето про ключ и регистрацию было, но это не сложно. Все биплатно.

Ultimate Vocal Remover — это специализированная программа, предназначенная для извлечения вокала из музыкальных треков или, наоборот, удаления вокала, чтобы получить инструментальные версии песен. Вот основные характеристики и функции Ultimate Vocal Remover:

  1. Извлечение и удаление вокала: Основная функция программы — это высококачественное извлечение вокальных дорожек из смешанных аудиозаписей или удаление вокала, оставляя только инструментальную часть.

  2. Использование технологий машинного обучения: Программа применяет современные алгоритмы и технологии машинного обучения для достижения наилучших результатов. Это позволяет точно отделять вокал от инструментального сопровождения даже в сложных аудиофайлах.

  3. Поддержка различных форматов: Ultimate Vocal Remover поддерживает популярные аудиоформаты, такие как MP3, WAV, FLAC и другие, что позволяет работать с файлами без предварительной конвертации.

  4. Интуитивно понятный интерфейс: Программа обладает простым и удобным интерфейсом, который позволяет легко загружать аудиофайлы и выполнять необходимые операции по извлечению или удалению вокала.

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

  6. Высокое качество обработки: Благодаря использованию передовых алгоритмов, Ultimate Vocal Remover обеспечивает высокое качество обработки звука, минимизируя артефакты и сохраняя целостность оригинальных аудиодорожек.

  7. Многоплатформенность: Программа доступна для различных операционных систем, таких как Windows, macOS и Linux, что делает её доступной для широкой аудитории пользователей.

  8. Применение в различных сценариях: Ultimate Vocal Remover полезен не только для музыкантов и диджеев, но и для преподавателей, студентов и всех, кто работает с аудио в образовательных или профессиональных целях.

В целом, Ultimate Vocal Remover — это мощный инструмент для обработки аудио, который предоставляет пользователям простые в использовании и эффективные решения для извлечения и удаления вокала из музыкальных треков.

  • FFMPEG - Крутой инструмент для работы с мультимедия. Скачать последний релиз для винды, распаковать архив в нужную папку. Прописать path, где находится ffmpeg. PATH - пишется следующим образом: Панель управления\Все элементы панели управления\Система - Дополнительные параметры системы - Переменные среды - Переменные среды пользователя для ****** - выбрать строку Path - нажать изменить - нажать создать - вставить полный путь к папке, где живет ffmpeg, в моем случае я распаковал его сюда B:\sound\ffmpeg\bin. Так же прописать и в - Системные переменные - выбрать Path - нажать изменить - нажать создать - вставить полный путь к папке, где живет ffmpeg.

FFmpeg — это мощный и универсальный набор инструментов для обработки мультимедийных файлов, используемый для записи, конвертации, редактирования и потоковой передачи аудио и видео. Вот основные характеристики и возможности FFmpeg:

  1. Конвертация форматов: FFmpeg поддерживает множество форматов аудио и видео, таких как MP4, AVI, MKV, MP3, WAV, AAC, FLAC и многие другие. Программа позволяет легко конвертировать файлы из одного формата в другой.

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

  3. Редактирование видео: FFmpeg предоставляет инструменты для базового редактирования видео, такие как обрезка, склейка, изменение размера и наложение фильтров. Можно добавлять субтитры, водяные знаки и другие элементы.

  4. Потоковая передача: Программа поддерживает потоковую передачу аудио и видео через Интернет. Это полезно для создания живых трансляций или передачи медиафайлов на другие устройства.

  5. Командная строка: FFmpeg работает через командную строку, что позволяет автоматизировать задачи и интегрировать его в скрипты и приложения. Это делает программу гибкой и мощной для использования в различных рабочих процессах.

  6. Многоплатформенность: FFmpeg доступен для большинства операционных систем, включая Windows, macOS и Linux. Это делает его удобным для использования на разных платформах.

  7. Высокая производительность: Программа оптимизирована для быстрой и эффективной обработки мультимедийных файлов, что особенно важно при работе с большими объемами данных.

  8. Расширяемость: Благодаря своей модульной архитектуре, FFmpeg может быть расширен с помощью различных кодеков, фильтров и других плагинов. Это позволяет настроить его под конкретные задачи и улучшить функциональность.

  9. Сообщество и документация: FFmpeg имеет активное сообщество разработчиков и пользователей, а также обширную документацию. Это облегчает обучение и использование программы, а также получение помощи при возникновении вопросов.

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

  • so-vits-svc-fork - Форк нейронки от основного проекта для замены голоса, который помещен в архив, по непонятным причинам, не развивается. Но здесь есть ряд плюсов, немного усовершенствован вебинтерфейс и главная плюшка замена голоса в реальном времени. Установка для меня ленивого - скачать батник и запустить

so-vits-svc-fork — это модификация и расширение оригинальной программы so-vits-svc, предназначенной для изменения вокала в аудиофайлах с использованием методов преобразования голоса на основе нейронных сетей. Вот основные характеристики и возможности программы so-vits-svc-fork:

  1. Преобразование голоса: Основная функция so-vits-svc-fork — это изменение одного вокала на другой. Это может включать изменение голоса певца в музыкальном треке или преобразование речи одного человека в голос другого.

  2. Использование нейронных сетей: Программа использует современные методы машинного обучения и нейронные сети, в частности вариационные автокодировщики (Variational Autoencoders, VAE) и модели преобразования голоса (Speech-to-Voice Conversion, SVC), для высококачественного преобразования голоса.

  3. Поддержка различных моделей: so-vits-svc-fork поддерживает работу с различными моделями преобразования голоса, что позволяет пользователям выбирать оптимальные модели для своих нужд или даже обучать собственные модели на базе своих данных.

  4. Гибкость и настраиваемость: Программа предоставляет множество параметров и опций для настройки процесса преобразования голоса, что позволяет добиваться наиболее качественных и естественных результатов.

  5. Многоплатформенность: so-vits-svc-fork доступна для различных операционных систем, включая Windows, macOS и Linux, что делает её доступной для широкого круга пользователей.

  6. Командная строка и интеграция: Программа работает через командную строку, что позволяет её интегрировать в различные рабочие процессы и автоматизировать задачи преобразования голоса. Это особенно полезно для разработчиков и пользователей, создающих комплексные аудиопроекты.

  7. Активное сообщество и поддержка: so-vits-svc-fork имеет активное сообщество разработчиков и пользователей, что способствует её постоянному развитию и улучшению. Пользователи могут находить помощь, делиться опытом и вносить свой вклад в проект.

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

В целом, so-vits-svc-fork — это мощный и гибкий инструмент для преобразования голоса, который сочетает в себе современные технологии нейронных сетей и высокую настраиваемость, что позволяет добиваться качественных и реалистичных результатов в различных аудиопроектах.

Разделить вокал и музыку

Для начала нужно вырезать голос из композиции и сделать, как говорят профи минусовку песни. Для этого предназначена нейронка Ultimate Vocal Remover

Для порядка создать создать папки для исходников и результата работы нейронки UVR. Буду приводить пример, как сделано у меня, у каждого могут быть свои предпочтения.

B:\sound\UVR\input (исходники)
B:\sound\UVR\otput (результаты)

Запустить UVR откроется окно:

Рабочее окно UVR

  1. Выбрать файл mp3 или wav (для примера взята песня “Три белых коня” из к.ф. “Чародеи” B:\sound\UVR\input\tri-belyh-konya\tri-belyh-konya.mp3) Можно просто перенести файл в строку, так же можно добавить несколько файлов.

  2. Выбрать папку куда будут помещены результаты B:\sound\UVR\otput\tri-belyh-konya будет создана папка в которой разместятся результаты обработки каждой выбранной модели. А в выбранной папке будет замиксован результат выбранных моделей обработки.

  3. Формат в котором будет сохранен результат, обязательно wav потому что нейронка преобразования голоса работает только с этим форматом.

  4. Выбрать метод обработки Ensemble mode чтобы не прогонять результат работы каждой модели по нескольку раз, это для наилучшего результата.

  5. Выбрать Vocal/Instrumental на выходе получим по два файла каждой модели и суммирующий результат так же два файла tri-belyh-konya_(Vocals).wav - только голос без музыки, tri-belyh-konya_(Instrumental).wav - музыку она же минусовка.

  6. Степень микширования моделей вокала и музыки Average/Average средний/средний есть и другие варианты, можно поэкспериментировать первое значение вокал,второе музыка. В подсказке рекомендуют выставлять Max Spec/Min Spec

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

  8. Обязательно ставим галку на GPU

  • GPU Conversion - тогда будут использоваться мощности видеокарты, в противном случае вся нагрузка ляжет на процессор.
  • Vocal only - Будет сохранен только вокал
  • Instrumental Only - Будет сохранен только минус
  • Sample Mode (30s) - Пробник на 30 секунд.
  1. Выбор моделей для обработки файла. Тут однозначного ответа, что выбирать у меня нет. Все достигается экспериментальным путем или доверится другим людям, которые рекомендуют свои миксы из моделей. В моем варианте я знаю, что получается очень высококачественная минусовка, а вот голос пока еще не подобрал, что лучше. Тут как говорится у кого какое восприятие и опять же нужно много времени для понимания, что к чему.

Мой вариант использует три модели, которые выделены на скриншоте

  • MDX-NET-UVR-MDX-NET Inst HQ4
  • MDX-NET-UVR-MDX-NET Inst Main
  • Demucs:v4 | htdemucs_ft

Если указанных моделей нет в списке их необходимо загрузить (10)

Оно и понятно почему музыка лучше вырезается, из названия моделей видно Inst инструменты(музыкальные). В процессе экспериментов с моделями можно подобрать и для вокала набор моделей. И тогда уже разделять все в два этапа ставя галку для вокала (8) и набор моделей для него. А потом галку на инструменты (8) с другим набором моделей.

  1. Настройки

В выпадающем окне на данный момент интерес представляет третья вкладка загрузка моделей:

Настройки UVR

Те модели, которые не загружены из указанных выше нужно загрузить. Ставя галку например (1) и выбрать из списка нужную модель, потом нажать (4) загрузить. Все автоматически скачается куда надо. Проделать так же с пунктами (2) и (3)

Пункт (5) для ручного скачивания, где можно указать папку в которую нужно скачать модель или просто загрузить ее.

Редактирование вырезанного голоса

В любом случае после работы нейронки UVR могут быть артефакты в виде кусков аккомпанемента. Удалять их без потери протяженности по времени следующим образом. Запустить Audacity перетащить в рабочее пространство файл tri-belyh-konya_(Vocals).wav. Включить проигрывание и запомнить, где выскакивали аномальные звуки. Выделить эти участки и заменить тишиной. Пустые пространства желательно то же заменить тишиной, еле слышно могут быть шумы.

Программа Audacity

Выделение производится при помощи курсора мыши, выделенная область окрашивается в белый цвет. Нажать Ctrl+L произойдет заполнение тишиной без сдвига по времени или нажать иконку (1).

Audacity экспорт файла

Сохранить результат Ctrl+Shift+E или Файл - Экспорт аудио. Назвать файл например tri-belyh-konya_(Vocals)-cut, нажать - Экспорт

Замена голоса

Для изменения оригинала песни нужна модель голоса которым будет исполняться произведение. Можно обучить нейронку голосу, который сам выберешь, но хочется уже здесь и сейчас. Поскольку моя модель еще учиться, про обучение напишу чуть позже. Нашел готовую модель голоса солиста группы “Ленинград” Сергея Шнурова.

Создать папку для готовых моделей и распаковать туда скачанную модель голоса Шнура B:\sound\model\sergryShnoorovSoVits_v10 там будут нужные два файла: G_10000.pth - модель голоса config.json - конфигурационный файл

В других готовых моделях может быть множество папок, даже с возможностью дальнейшего обучения, но нужны всего два файла с расширением pth имя начинается на G цифры означают эпохи и файл конфигурации config.json. Будет удобнее разместить вместе в одной папке.

Настало время запустить нейронку по замене голоса so-vits-svc-fork. Откроется два окна с CMD командная строка с много много букаф ,цифирь и сама оболочка so-vits-svc-fork.

so-vits-svc-fork оболочка

Указываем пути расположения необходимых файлов нажав кнопку Browse:

  1. B:\sound\model\sergryShnoorovSoVits_v10\G_10000.pth - ранее скачанная или обученная модель.

  2. B:\sound\model\sergryShnoorovSoVits_v10\config.json - конфигурация модели.

  3. B:\sound\UVR\otput\tri-belyh-konya\tri-belyh-konya_(Vocals)-cut.wav - очищенный вручную вырезанный голос нейронкой UVR

  4. Автоматически пропишется путь и имя файла в котором будет результат работы нейронки по умолчанию будет расположен там же, где и исходник, добавиться в название out B:\sound\UVR\otput\tri-belyh-konya\tri-belyh-konya_(Vocals)-cut.out.wav

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

  6. Выбор метода хюзю что такое, но говорят crepe лучше, пока не знаю.

  7. Галку авто воспроизведения лучше убрать сразу после запуска процесса (9), а то будет по окончании работы зациклено играть, останавливать удавалось только закрытием окна с прогой.

  8. Галка должна стоять, что бы всю работу взяла на себя видюха.

  9. Запуск infer

Наблюдаем за папкой B:\sound\UVR\otput\tri-belyh-konya\ там должен появится результат, ну или когда закончат мелькать непонятные символы в командной строке.

Микширование голоса и минусовки

Остался самый простой этап склеить все вместе. Открыть Audacity рабочее пространство должно быть чистым, если нет то Ctrl+W или Файл - Закрыть.

Перетащить файл с сгенерированным голосом и минусовку: tri-belyh-konya_(Vocals)-cut.out.wav tri-belyh-konya_(Instrumental).wav

Создать папку для окончательных результатов B:\sound\otput_ai

Нажать Ctrl+Shift+E или Файл - Экспорт аудио. Дать имя файлу tri-belyh-konya_(Vocals)sergryShnoorov.mp3. Папка B:\sound\otput_ai. Выбрать формат mp3. Диапазон экспорта - Весь проект - чтоб стояла галка. И наконец нажать Экспорт

Результат

Подготовка к обучению нейронки so-vits-svc-fork

Выбрать исполнителя голосу которого будем тренировать нейронку. Для примера “Сектор Газа”.

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

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

Создать папки:

  • B:\sound\proekt здесь будут находится все модели для обучения.
  • B:\sound\proekt\sektor-gaza - все что связано с обучением данного проекта
  • B:\sound\proekt\sektor-gaza\temp - здесь будет творится всякая подготовительная дичь
  • B:\sound\proekt\sektor-gaza\dataset_raw\sektor-gaza входящие данные, будут лежать нарезка файлов по 10 секунд. Название папки будет передано, как название обученной модели.
  • B:\sound\UVR\input\sektor-gaza - входящие данные для обработки UVR
  • B:\sound\UVR\otput\sektor-gaza - результаты работы моделей UVR

Скопировать песни в папку B:\sound\UVR\input\sektor-gaza

Вырезать голос из песен

Запустить UVR

UVR вокал

Указать входящую папку B:\sound\UVR\input\sektor-gaza исходящую B:\sound\UVR\otput\sektor-gaza все файлы которые во вложенных папках будут то же добавлены.

Сделать установки, как на скрине. Решил попробовать микс из моделей:

  • VR Arc: 4_HP-Vocal-UVR
  • MDX-Net: Kim Vocal 2
  • MDX-NET-UVR-MDX-NET Inst Main

Поскольку для обучения нужен только голос поставить обязательно флаг на Vocal Only

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

Редактирование аудио вырезанного голоса

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

Запустить Audacity

И подвергнуть редактированию каждый файл из папки B:\sound\UVR\otput\sektor-gaza результаты сохранить в B:\sound\proekt\sektor-gaza\temp

Про то, как редактировать писать не буду, мануалы есть, да и бывают чисто индивидуальные заморочки.

Для простоты редактирования можно объединить все wav файлы в один.

Данный скрипт запустить в PowerShell. Он сделает все вышеописанное. Переименует все файлы в папке по порядку, что бы не было проблем с FFMPEG, объединит все в один файл, который поместит в указанную директорию.

# Указание пути к директории, где нужно выполнить переименование
$directoryPath = "B:\sound\UVR\otput\sektor-gaza"
$outputDirectory = "B:\sound\proekt\sektor-gaza\temp"

# Установка начального значения счетчика
$global:counter = 1

# Функция для формата имен
function Format-Counter {
    param (
        [int]$counter
    )
    return "{0:D3}" -f $counter
}

# Функция для переименования файлов в одной папке
function Rename-ItemsInDirectory {
    param (
        [string]$Path
    )

    # Получаем все элементы в указанном пути
    $items = Get-ChildItem -Path $Path | Sort-Object FullName -Descending

    foreach ($item in $items) {
        $newName = Format-Counter -counter $global:counter
        
        if (-not $item.PSIsContainer) {
            # Если элемент - это файл, переименовываем его
            $newFileName = "{0}{1}" -f $newName, $item.Extension
            $newFilePath = Join-Path -Path $Path -ChildPath $newFileName
            Rename-Item -Path $item.FullName -NewName $newFilePath
        }
        $global:counter++
    }
}

# Убедиться, что выходная директория существует
if (-not (Test-Path -Path $outputDirectory)) {
    New-Item -ItemType Directory -Path $outputDirectory
}

# Запуск функции для переименования
Rename-ItemsInDirectory -Path $directoryPath

# Создание файла со списком всех WAV файлов
$outfile = Join-Path -Path $directoryPath -ChildPath "filelist.txt"
$wavFiles = Get-ChildItem -Path $directoryPath -Filter *.wav
Remove-Item -Path $outfile -ErrorAction Ignore
foreach ($file in $wavFiles) {
    Add-Content -Path $outfile -Value "file '$($file.FullName)'"
}

# Имя выходного файла
$outputFile = Join-Path -Path $outputDirectory -ChildPath "output.wav"

# Аргументы для ffmpeg
$ffmpegArgs = @("-f", "concat", "-safe", "0", "-i", $outfile, "-c", "copy", $outputFile)

# Выполнить команду ffmpeg
ffmpeg @ffmpegArgs

# Уведомление о завершении
Write-Output "All WAV files have been merged into $outputFile"

После редактирования файла сохранить его B:\sound\proekt\sektor-gaza\temp\output-sektor-gaza-audacity.wav

Нарезка файла по 10 секунд каждый

Следуя рекомендациям поделим отредактированный файл output-sektor-gaza-audacity.wav на более маленькие продолжительностью по 10 секунд

Запустить CMD

  • b: Поменять диск
  • cd B:\sound\proekt\sektor-gaza\temp Перейти в нужную директорию
  • ffmpeg -i output-sektor-gaza-audacity.wav -f segment -segment_time 10 -c copy %03d.wav Разделит большой файл на файлы по 10 секунд

Перенести полученные файлы в папку B:\sound\proekt\sektor-gaza\dataset_raw\sektor-gaza

Обучение нейронки so-vits-svc-fork

Запустить скрипт активации там же в CMD

C:\Users\BlackMAMbA\AppData\Roaming\so-vits-svc-fork\venv\scripts\activate

Генерация необходимых файлов нейронке будет создана папка dataset\44k с нарезкой необходимых файлов из исходников, которые живут в B:\sound\proekt\sektor-gaza\dataset_raw\

svc pre-resample -i B:\sound\proekt\sektor-gaza\dataset_raw\ -o B:\sound\proekt\sektor-gaza\dataset\44k

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

svc pre-config -i B:\sound\proekt\sektor-gaza\dataset\44k -f B:\sound\proekt\sektor-gaza\filelists\44k -c B:\sound\proekt\sektor-gaza\configs\44k\config.json

В файле B:\sound\proekt\sektor-gaza\configs\44k\config.json сразу поменять значение batch_size": 16, на batch_size": 6, иначе моя видяха не потянет, памяти маловато.

Произвести непонятные, но нужные манипуляции

svc pre-hubert -i B:\sound\proekt\sektor-gaza\dataset\44k -c B:\sound\proekt\sektor-gaza\configs\44k\config.json

Описание настроек в файле config.json

Конфигурационный файл для so_vits_svc_fork содержит различные параметры, которые управляют обучением, обработкой данных и архитектурой модели. Вот основные изменения, которые вносят перечисленные переменные:

Раздел train

  • log_interval: Частота, с которой выводятся логи обучения (каждые 100 шагов).
  • eval_interval: Частота, с которой выполняется валидация модели (каждые 200 шагов).
  • seed: Начальное значение для генерации случайных чисел, обеспечивающее воспроизводимость.
  • epochs: Общее количество эпох для обучения модели (10,000).
  • learning_rate: Скорость обучения, влияющая на обновление весов модели (0.0001).
  • betas: Параметры для адаптивного алгоритма оптимизации (Adam) (0.8 и 0.99).
  • eps: Малое значение для избежания деления на ноль в оптимизаторе (1e-09).
  • batch_size: Размер батча при обучении (6).
  • fp16_run и bf16_run: Использование 16-битной или 32-битной точности для ускорения обучения (false).
  • lr_decay: Скорость уменьшения скорости обучения (0.999875).
  • segment_size: Длина сегмента для обработки данных (10240).
  • init_lr_ratio: Начальное соотношение скорости обучения (1).
  • warmup_epochs: Количество эпох для разогрева обучения (0).
  • c_mel и c_kl: Параметры, влияющие на модель и её обучение (количество мел-корреляций и вес Kullback-Leibler дивергенции).
  • use_sr: Использование суперразрешения (true).
  • max_speclen: Максимальная длина спектрограммы (512).
  • port: Порт для сервиса (8001).
  • keep_ckpts: Количество сохраняемых контрольных точек (3).
  • num_workers: Количество потоков для загрузки данных (4).
  • log_version: Версия логирования (0).
  • ckpt_name_by_step: Использование имени контрольной точки по шагам (false).
  • accumulate_grad_batches: Количество батчей для накопления градиентов (1).

Раздел data

  • training_files и validation_files: Путь к файлам для обучения и валидации.
  • max_wav_value: Максимальное значение для нормализации звуковых данных (32768.0).
  • sampling_rate: Частота дискретизации аудиофайлов (44100 Гц).
  • filter_length: Длина фильтра для спектрограммы (2048).
  • hop_length: Параметр для перекрытия между окнами (512).
  • win_length: Длина окна для анализа (2048).
  • n_mel_channels: Количество мел-каналов в спектрограмме (80).
  • mel_fmin и mel_fmax: Минимальная и максимальная частота в мел-шкале (0.0 и 22050).
  • contentvec_final_proj: Использование финальной проекции в векторе контента (false).

Раздел model

  • inter_channels: Количество промежуточных каналов в модели (192).
  • hidden_channels: Количество скрытых каналов (192).
  • filter_channels: Количество фильтров (768).
  • n_heads: Число голов в многоголовом внимании (2).
  • n_layers: Количество слоев модели (6).
  • kernel_size: Размер ядра свертки (3).
  • p_dropout: Вероятность дропаут (0.1).
  • resblock: Используемый тип остаточного блока (1).
  • resblock_kernel_sizes: Размеры ядер для остаточных блоков (3, 7, 11).
  • resblock_dilation_sizes: Дилатации для остаточных блоков.
  • upsample_rates: Темпы увеличения размерности (8, 8, 2, 2, 2).
  • upsample_initial_channel: Начальное количество каналов при увеличении размерности (512).
  • upsample_kernel_sizes: Размеры ядер для увеличения размерности.
  • n_layers_q: Количество слоев для декодирования (3).
  • use_spectral_norm: Использование спектральной нормализации (false).
  • gin_channels: Число каналов для GIN (256).
  • ssl_dim: Размерность для SSL (768).
  • n_speakers: Число говорящих (200).
  • type_: Тип модели (hifi-gan).
  • pretrained: Ссылки на предобученные веса модели.

Раздел spk

  • sektor-gaza: Индекс для конкретного говорящего (0).

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

ЗЫ за точность не отвечаю чат ГаПоТа сгенерировал про конфиг.

Запуск остановка повторный запуск обучения so-vits-svc-fork

Запустить обучение

Ключ -t означает запуск вебсервера, автоматически откроется окно браузера со страницей непонятных графиков

svc train -c B:\sound\proekt\sektor-gaza\configs\44k\config.json -m B:\sound\proekt\sektor-gaza\logs\44k -t

Остановить обучение

Просто нажать комбинацию Ctrl+C

Продолжить прерванное обучение

Повторно набрать команду

svc train -c B:\sound\proekt\sektor-gaza\configs\44k\config.json -m B:\sound\proekt\sektor-gaza\logs\44k -t

Естественно после запуска скрипта активации, если окно CMD было закрыто.