Нейросети в роли музыканта или как Google Magenta RealTime 2 генерирует звук на лету
Знакомая история: вы пытаетесь использовать современную звуковую нейросеть, но она генерирует короткий отрывок за пару минут, пожирая всю видеопамять. Сочинять музыку вместе с таким инструментом в реальном времени не получится — задержка убивает любой творческий порыв. Ребята из Google DeepMind решили эту проблему, выпустив Magenta RealTime 2. Это не просто очередная модель для генерации аудио, а полноценный движок, который умеет создавать музыку быстрее, чем она звучит.
Что это такое
Magenta RealTime 2 (MRT2) — это проект с открытыми весами, предназначенный для потоковой генерации музыки. Главная фишка здесь в слове «streaming». Модель выдает аудио не целиком после долгого раздумья, а кусочками, с минимальной задержкой. В репозитории лежит всё необходимое: сама модель, Python-библиотека для экспериментов и C++ движок для тех, кто хочет встроить это в реальный софт.
Интересно, что проект максимально заточен под железо Apple. Модели работают на JAX и MLX, эффективно используя объединенную память макбуков. Для тех, у кого нет Mac, предусмотрена работа через классический Python на видеокартах NVIDIA, но настоящая магия «реального времени» во всей красе раскрывается именно на чипах M-серии.
Что внутри репозитория
Разработчики не стали ограничиваться одной библиотекой и насыпали гору полезного кода:
- Core-движок на C++. Это сердце проекта, которое обеспечивает ту самую бесшовную генерацию.
- Готовые приложения. В папке
examplesлежат полноценные плагины формата AUv3 для DAW (например, Logic Pro или Ableton) и десктопные приложения для macOS. - Инструменты управления. Есть
Jamдля контроля нот иColliderдля поиска нужного звучания через текстовые промпты.
Кстати, в репозитории две версии модели. mrt2_small на 230 миллионов параметров «летает» даже на базовых MacBook Air. Если же у вас чип уровня Max, можно замахнуться на mrt2_base с 2.4 миллиардами параметров — звук там на порядок чище и сложнее.
Как запустить и пощупать
Для начала работы понадобится Python 3.12 и менеджер пакетов uv (авторы проекта явно следят за трендами, так как uv сейчас объективно быстрее стандартного pip).
Быстрый старт выглядит так:
# Устанавливаем библиотеку с поддержкой MLX
uv pip install "magenta-rt[mlx]"
# Инициализируем модели
mrt models init
mrt models download
# Генерируем тестовый фрагмент
mrt mlx generate --prompt "disco funk" --duration 4.0 --model=mrt2_base
Если вы занимаетесь системной разработкой, можно собрать CLI-утилиту на C++. Это отличный пример того, как интегрировать тяжелые нейронки в нативный код без огромного оверхеда.
cmake . -B build
cmake --build build --target hello_mrt2 -j10
./build/examples/hello_mrt2/hello_mrt2 \
~/path/to/model \
~/path/to/resources \
100 \
--prompt "ambient pads with sub bass"
Почему это важно для разработчиков
Во-первых, это открытые веса. Google не просто показал красивое демо, а отдал рабочую технологию, которую можно дообучать под свои задачи (авторы обещают скоро добавить поддержку supervised fine-tuning).
Во-вторых, это архитектурный пример. Если вы когда-нибудь ломали голову над тем, как организовать инференс модели так, чтобы звук не заикался при нагрузке на процессор, исходники в папке core/ станут отличным учебником. Там наглядно показано взаимодействие высокоуровневого управления и низкоуровневой обработки сигналов.
Практические кейсы
Для кого этот проект станет находкой:
- Разработчики музыкального софта. Можно создать бесконечный генератор фоновой музыки или умного помощника для композитора, который дописывает партии в реальном времени.
- Геймдев. Динамический саундтрек, который меняется в зависимости от действий игрока, теперь реализовать проще.
- Исследователи звука. Проект позволяет контролировать «пространство промптов», превращая текстовое описание в музыкальную структуру.
Magenta RealTime 2 — это редкий пример того, как академические наработки Google превращаются в осязаемый инструмент для разработчиков. Проект требователен к железу (Apple Silicon в приоритете), но результат того стоит. Если вы занимаетесь аудио или просто любите копаться в том, как устроены современные генеративные модели, этот репозиторий определенно заслуживает места в ваших закладках.
Начать изучение советую с ноутбуков в папке notebooks/ — там можно быстро прогнать модель через Python API и понять, подходит ли вам такое звучание, прежде чем погружаться в дебри C++.
