Официальная реализация RAVE: вариационный автокодировщик для быстрого и высококачественного нейронного синтеза звука (ссылка на статью) Антуана Кайона и Филиппа Эслинга.
Если вы используете RAVE как часть музыкального выступления или инсталляции, обязательно цитируйте этот репозиторий или статью!
Если вы хотите поделиться/обсудить/спросить что-нибудь о RAVE, вы можете сделать это на нашем сервере Discord!
Пожалуйста, проверьте FAQ, прежде чем публиковать сообщение о проблеме!
RAVE VST RAVE VST для Windows, Mac и Linux доступен в виде бета-версии на соответствующей веб-странице форума IRCAM. В случае возникновения проблем, пожалуйста, напишите вопрос здесь или на странице обсуждения форума IRCAM.
Учебные пособия : новые учебные пособия доступны на веб-странице форума IRCAM, скоро появятся видеоверсии!
Исходную реализацию модели RAVE можно восстановить с помощью
git checkout v1
Установите RAVE, используя
pip install acids-rave
Предупреждение. Настоятельно рекомендуется установить torch
и torchaudio
до acids-rave
, чтобы вы могли выбрать подходящую версию torch на веб-сайте библиотеки. Для будущей совместимости с новыми устройствами (и современными средами Python) rave-acids
больше не применяет torch==1.13.
Вам понадобится ffmpeg на вашем компьютере. Вы можете установить его локально в своей виртуальной среде, используя
conda install ffmpeg
Благодаря hexorcismos теперь доступен колаб для обучения RAVEv2!
Обучение модели RAVE обычно включает в себя 3 отдельных этапа, а именно подготовку набора данных , обучение и экспорт .
Вы можете подготовить набор данных двумя методами: обычным и ленивым. Ленивая предварительная обработка позволяет обучать RAVE непосредственно на необработанных файлах (например, mp3, ogg), без их предварительного преобразования. Предупреждение : отложенная загрузка набора данных значительно увеличит нагрузку на ЦП во время обучения, особенно в Windows. Однако это может быть полезно при обучении на большом аудиокорпусе, который в несжатом виде не помещается на жесткий диск. В любом случае подготовьте набор данных, используя
rave preprocess --input_path /audio/folder --output_path /dataset/path --channels X (--lazy)
RAVEv2 имеет множество различных конфигураций. Улучшенная версия v1 называется v2
, и поэтому ее можно обучать с помощью
rave train --config v2 --db_path /dataset/path --out_path /model/out --name give_a_name --channels X
Мы также предоставляем дискретную конфигурацию, аналогичную SoundStream или EnCodec.
rave train --config discrete ...
По умолчанию RAVE построен с использованием непричинных сверток. Если вы хотите сделать модель причинно-следственной (следовательно, снизить общую задержку модели), вы можете использовать причинно-следственный режим.
rave train --config discrete --config causal ...
В версии 2.3 также доступны дополнения данных для улучшения обобщения модели в режимах с низким объемом данных. Вы можете добавить увеличение данных, добавив файлы конфигурации расширения с ключевым словом --augment
rave train --config v2 --augment mute --augment compress
Многие другие файлы конфигурации доступны в rave/configs
и могут быть объединены. Вот список всех доступных конфигураций и дополнений:
Тип | Имя | Описание |
---|---|---|
Архитектура | v1 | Исходная непрерывная модель (минимальная память графического процессора: 8Go) |
v2 | Улучшенная непрерывная модель (быстрее и качественнее) (минимальная память графического процессора: 16 ГБ) | |
v2_small | v2 с меньшим рецептивным полем, адаптированной состязательной тренировкой и генератором шума, адаптированным для передачи тембра стационарных сигналов (минимальная память графического процессора: 8Go) | |
v2_nopqmf | (экспериментальный) v2 без pqmf в генераторе (более эффективен для целей гибки) (минимальная память графического процессора: 16Go) | |
v3 | v2 с активацией Snake, дискриминатором дескриптов и адаптивной нормализацией экземпляров для передачи реального стиля (минимальная память графического процессора: 32Go) | |
дискретный | Дискретная модель (аналогично SoundStream или EnCodec) (минимальная память графического процессора: 18Go) | |
onnx | Бесшумная конфигурация v1 для использования onnx (минимальная память графического процессора: 6Go) | |
малина | Облегченная конфигурация, совместимая с выводом RaspberryPi 4 в реальном времени (минимальная память графического процессора: 5Go) | |
Регуляризация (только v2) | по умолчанию | Объектив вариационного автоматического энкодера (ELBO) |
Вассерштейн | Объектив автоматического кодировщика Вассерштейна (MMD) | |
сферический | Сферический объектив автоматического энкодера | |
Дискриминатор | спектральный_дискриминатор | Используйте дискриминатор MultiScale от EnCodec. |
Другие | причинный | Используйте причинно-следственные связи |
шум | Включает синтезатор шума V2. | |
гибридный | Включить ввод мел-спектрограммы | |
Аугментации | немой | Случайным образом отключает пакеты данных (проблема по умолчанию: 0,1). Заставляет модель учиться тишине |
компресс | Произвольное сжатие формы сигнала (эквивалент легкого нелинейного усиления пакетов) | |
прирост | Применяет случайное усиление к форме сигнала (диапазон по умолчанию: [-6, 3]) |
После обучения экспортируйте свою модель в файл torchscript, используя
rave export --run /path/to/your/run (--streaming)
Установка флага --streaming
включит кэшированные свертки, что сделает модель совместимой с обработкой в реальном времени. Если вы забудете использовать потоковый режим и попытаетесь загрузить модель в Максе, вы услышите артефакты щелчков.
Для дискретных моделей мы перенаправляем пользователя в библиотеку msprior
здесь. Однако, поскольку эта библиотека все еще является экспериментальной, предыдущая версия 1.x была повторно интегрирована в версию 2.3.
Чтобы предварительно обучить предварительно обученную модель RAVE:
rave train_prior --model /path/to/your/run --db_path /path/to/your_preprocessed_data --out_path /path/to/output
это будет предварительно обучаться по скрытому предварительно обученному path/to/your/run
и сохранять журналы модели и тензорной доски в папку /path/to/output
.
Чтобы создать сценарий априора вместе с моделью RAVE, экспортируйте свою модель, указав ключевое слово --prior
для вашего предварительно обученного априора:
rave export --run /path/to/your/run --prior /path/to/your/prior (--streaming)
Здесь доступны несколько предварительно обученных моделей потоковой передачи. Мы будем обновлять список новыми моделями.
В этом разделе показано, как RAVE можно загрузить в nn~
чтобы использовать в реальном времени с Max/MSP или PureData.
Предварительно обученную модель RAVE с именем darbouka.gin
доступную на вашем компьютере, можно загрузить внутри nn~
, используя следующий синтаксис, где по умолчанию установлен метод пересылки (т. е. кодирование, а затем декодирование).
Это делает то же самое, что и следующий патч, но немного быстрее.
Наличие явного доступа к скрытому представлению, предоставляемому RAVE, позволяет нам взаимодействовать с представлением, используя инструменты обработки сигналов Max/MSP или PureData:
По умолчанию RAVE можно использовать в качестве инструмента переноса стилей, благодаря большой степени сжатия модели. Недавно мы добавили метод, вдохновленный StyleGAN, для включения адаптивной нормализации экземпляров в процесс реконструкции, что позволяет эффективно определять исходные и целевые стили непосредственно внутри Max/MSP или PureData, используя систему атрибутов nn~
.
Другие атрибуты, такие как enable
или gpu
могут включать/отключать вычисления или использовать графический процессор для ускорения работы (все еще экспериментально).
В версии 2.3 был выпущен скрипт пакетной генерации, позволяющий преобразовывать большое количество файлов.
rave generate model_path path_1 path_2 --out out_path
где model_path
— это путь к вашей обученной модели (исходной или скриптовой), path_X
список аудиофайлов или каталогов, а out_path
исходящий каталог поколений.
Если у вас есть вопросы, вы хотите поделиться своим опытом работы с RAVE или поделиться музыкальными произведениями, созданными с помощью модели, вы можете использовать вкладку «Обсуждение»!
Демонстрация того, что можно сделать с помощью RAVE и внешнего nn~ для maxmsp!
Используя nn~ для чистых данных, RAVE можно использовать в реальном времени на встроенных платформах!
Вопрос : моя предварительная обработка зависла, отображается 0it[00:00, ?it/s]
Ответ : Это означает, что аудиофайлы в вашем наборе данных слишком коротки, чтобы обеспечить достаточную временную область для RAVE. Попробуйте уменьшить окно сигнала с помощью --num_signal XXX(samples)
с помощью preprocess
, не забывая впоследствии добавить --n_signal XXX(samples)
с помощью train
Вопрос : Во время обучения я получил исключение, похожее на ValueError: n_components=128 must be between 0 and min(n_samples, n_features)=64 with svd_solver='full'
Ответ : Это означает, что в вашем наборе данных недостаточно пакетов данных для расчета внутреннего скрытого PCA, для которого требуется как минимум 128 примеров (затем пакетов).
Эта работа проводится в IRCAM и финансируется следующими проектами.