Let The Music Play

обновлено: 11 мая 2025 г.  опубликовано: ⏰ 5

В продолжении темы об использовании ИИ, в прошлой статье “Не все ИИ одинаково полезны?” не стал упоминать про генерацию музыки, хотя некоторое время следил за прогрессом в этом направлении.

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

Предисловие

Интерес к генерации музыки появился, когда возникла необходимость создать треки для одного из проектов. Конечно, можно было бы воспользоваться готовыми треками. Различных саундбанков достаточно много, с огромным выбором, естественно, далеко не всегда бесплатных для коммерческого использования :). К тому же, всё-таки хотелось сделать что-то новое и уникальное, а не копировать публичные работы.

Второй вариант делать самому. Основной тип требуемой музыки был ambient с отсутствующим или минимальным вокалом, который не требует сложных инструментов. Это если про саундтрек с оркестром к Dune 2021 не вспоминать. И в целом-то можно было сделать самому, есть когда-то купленная Arturia MiniLab 3, а Analog Lab даёт большое количество готовых инструментов и семплов для использования. Но всё опять упирается в ограниченность по времени, хотя попробовать было бы довольно интересно.

По этим причинам и начал смотреть в сторону генерации музыки нейронками.

В чём была проблема

В течении предыдущего года качество генерируемой музыки оставляло желать лучшего. Не важно, открытые это были модели или закрытые. Было очень заметно, что они не могут создавать сложные и интересные мелодии, а также структурированные композиции. С голосом в них ещё хуже – поющие роботы :).

Сначала были какие-то попытки генерировать музыку на основе диффузных моделей. Если честно, уже не помню даже, что использовал тогда. По-моему, это был Riffusion для AUTOMATIC1111 / Stable Diffusion web UI, с ограничением по времени и низким качеством.

Облачные сервисы SUNO AI, Udio выдавали результаты не сильно лучше. Немного позже смотрел ещё один сервис Mubert, который выдавал результат получше. Но всё равно было заметно, что это сгенерированные треки.

Как сейчас

Сужу по сервисам вроде SUNO AI, Udio. Качество стало значительно лучше. Есть треки, где уже сложно отличить от настоящих, если не прислушиваться. Ошибки присутствуют, но в целом приемлемо для домашнего использования (ну или как-то так). Например, ранее бесплатный Riffusion явно стал получше, как раз пример будет ниже в статье. Естественно, профессиональные музыканты такое забракуют сразу :)

Некоторые модели даже делают пробные шаги в сторону разделения сгенерированных треков на дорожки (stem), но пока не очень удачно.

Вот с открытыми моделями ситуация всё так же печальная. Недавно был выложен в открытый доступ ACE-Step. Доступен для ComfyUI, если не хочется с Python возиться. В сгенерированных треках сильно заметен синтетический голос и посторонний шум, хотя общая композиция может быть интересной.

Небольшое отступление: с генерации голоса ситуация немного лучше. Например, с Sesame AI (Conversational Speech Model) уже может создавать вполне приличные голосовые сообщения с интонацией, эмоциями и подстраивается под нужный голос. Доступна для локального использования.

Пример (Programmers’ Symphony)

Текст песни о разработчиках, неожиданно, по-быстрому сгенерировал через LLM и сделал небольшие правки.

Programmers’ Symphony

[verse]
In the glow of the screen, we weave our designs,
Python whispers, Java rains in midnight lines.
Silent solvers of mysteries unseen,
In code, we find where magic has been sown.

[chorus]
Programmers, in the code we find our might,
Turning ones and zeros into digital light.
Endless loops but we never tire,
Building castles where imagination fires.

[verse]
Fingers dance fast on keys so cold,
Midnight approaches, yet our resolve is bold.
Through each line, a story unfolds,
In the binary night, we stand tall and bold.

[chorus]
Programmers, in the code we find our might,
Turning ones and zeros into digital light.
Endless loops but we never tire,
Building castles where imagination fires.

[verse]
Debuggers search through lines so thin,
A single bug can make us begin again.
But when it clicks, oh what joy it brings,
In the silence, our triumph sings.

[bridge]
When systems crash and chaos looms,
We rise from ashes, rebuild with room.
No mountain too high, no valley too deep,
In every byte, our spirit we keep.

[chorus]
Programmers, in the code we find our might,
Turning ones and zeros into digital light.
Endless loops but we never tire,
Building castles where imagination fires.

[verse]
From nothingness to something grand,
Our digital footprint spans the land.
In lines of code, our legacy grows,
Programmers' symphony, forever flows.

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

ACE-Step

alternative rock
reggaeton

Riffusion

ByteBeat – reggaeton
The Codemasters – alternative rock
Codefire – reggaeton

Как и говорил ранее, с локальной всё не очень хорошо, возможно в следующих версиях станет получше. Умеет даже петь на разных языках, но с жутким акцентом.

А вот коммерческое решение действительно работает довольно неплохо. Например, ByteBeat. При чём, использовал бесплатную версию с моделью FUZZ 1.0. Возможно в платной с FUZZ 1.0 Pro будет ещё лучше.

Заключение

Поймал себя на мысли, что возможно с точки зрения музыкантов, это выглядит так же как, когда я смотрю на не программистов, которые что-то написали с помощью нейронки и довольны :) Скорее всего там найдётся куча ошибок и недостатков, но для меня лично эти примеры от Riffusion звучат вполне прилично. Учитывая отсутствие музыкального образования, возможность сделать трек под свои потребности уже многого стоит.

А вот изначально нужные треки в стиле ambient, скорее всего, придётся пробовать делать самостоятельно. Не уверен, что получиться объяснить нейросетке, что конкретно нужно и самому хочется попробовать это сделать. Вот ещё интересно, появятся в будущем отдельные обозначения под сделанное вручную – “крафтовая” музыка, “крафтовые” изображения, “крафтовый” код двухлетней выдержки с техдолгом :)

Music Ai Genai