У популярных методов генерации музыки две основных проблемы:
- Модели на основе LLM (например, Yue и SongGen) отлично справляются с согласованием текста песни, но медленно работают и часто выдают артефакты.
- Диффузионные модели (такие как DiffRhythm) генерируют гораздо быстрее, но уступают в качестве структурной согласованности треков.
Сегодня разберём статью о фундаментальной опенсорс-модели ACE-Step. Её авторы утверждают, что смогли преодолеть все эти проблемы, объединив лучшее из LLM и диффузионных моделей.
Архитектура не нова. Внутри ACE-Step — две модели:
- Энкодер-декодер. Преобразует спектрограмму в латентное представление и обратно, сжимая её при этом в 64 раза.
- Flow-matching. Генерирует аудиозапись в латентном пространстве. Бэкбон этой модели состоит из 24 diffusion-transforme-блоков.
Главный импакт этой статьи — обуславливание моделей на множество разных кондишнингов. Секрет в кросс-аттеншне, который добавили в середину каждого diffusion-transformer-блока.
Чтобы генерировать аудио с нужным контентом, модели нужны три вещи:
1) Тэги, описывающие аудио на натуральном языке. Например, «an energetic pop-rock anthem with distortion guitar».
2) Текст песни, закодированный BPE-токенами.
3) Эмбеддинг спикера, полученный из предобученной биометрической модели.
Для того чтобы хорошо и разнообразно генерировать текст, аккорды, ритм и прочие музыкальные фичи, авторы добавили Semantic Alignment Loss. Аудио пропускали через две SSL-модели:
- МЕRT. По сути BERT, для музыки, который хорошо энкодит гармонию, аккорды и ритм,
- mHuBERT. Тоже специализированный BERT для музыки, но с фокусом на текст.
Потом на эмбеддинги в середине диффузионного трансформера (авторы выбрали восьмой из 24 слоёв) повесили cosine similarity c эмбеддингами SSL-моделей. Это позволяет модели лучше кодировать внутри себя информацию, связанную с гармонией, ритмом и текстом — а значит, лучше генерировать её.
ACE-Step обучали на 100 тысячах часах аудио на 19 разных языках — около 1,8 миллионов музыкальных треков. Для того чтобы разметить этот датасет тегами, использовали Qwen-Omni, Whisper в ASR, детектор BPM и универсальный классификатор для сегментации.
В результате ACE-Step синтезирует до 4 минут музыки всего за 20 секунд на GPU A100 — в 15 раз быстрее, чем базовые LLM-модели. А оценить результаты её работы и изучить код можно на сайте авторов — такое не стыдно добавить в свой плейлист.
Роман Кайль