Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

PromptBeats: генерация музыки из текста в браузере с помощью ИИ

PromptBeats: генерация музыки из текста в браузере с помощью ИИ

Музыкальное веб-приложение PromptBeats позволяет создавать, редактировать и развивать композиции прямо в браузере при помощи искусственного интеллекта. Проект разрабатывался для внутреннего хакатона и поддерживает интеграцию с популярными языковыми моделями через API.

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

PromptBeats: генерация музыки из текста в браузере с помощью ИИ
PromptBeats: генерация музыки из текста в браузере с помощью ИИ — изображение 9
PromptBeats: генерация музыки из текста в браузере с помощью ИИ — изображение 10
PromptBeats: генерация музыки из текста в браузере с помощью ИИ — изображение 11
PromptBeats: генерация музыки из текста в браузере с помощью ИИ — изображение 12
PromptBeats: генерация музыки из текста в браузере с помощью ИИ — изображение 13
PromptBeats: генерация музыки из текста в браузере с помощью ИИ — изображение 14

Как выглядит интерфейс PromptBeats

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

Реклама
Библиотека треков в приложении PromptBeats
Окно встроенной библиотеки с результатами тестирования

Рабочая область чата и библиотека

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

Для ознакомления с уже созданными композициями предусмотрена специальная библиотека треков, открывающаяся кликом по иконке с изображением ноты.

Редактор дорожек и инструментов в PromptBeats
Встроенный редактор музыкальных дорожек и звуков

Инструменты и метаданные композиции

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

Как родилась идея проекта

Концепция инструмента возникла из практических трудностей при записи репетиций музыкальной группы. Полноценная цифровая звуковая рабочая станция (DAW) представляет собой слишком масштабную задачу для разработки в рамках одного хакатона, поэтому авторы сузили функционал до формата упрощенного браузерного лупера, напоминающего классические программы для создания демок.

Базовый набор звуков и инструментов в PromptBeats
Базовый набор звуков и инструментов в интерфейсе редактора

Развитие мелодии и текстовые промпты

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

Особенности взаимодействия с моделью

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

Реклама

Архитектура и техническая реализация

Проект написан преимущественно на JavaScript и функционирует как кроссплатформенное браузерное решение. В качестве основы для воспроизведения звука была выбрана библиотека Tone.js, предоставляющая встроенные инструменты и возможности расширения.

Метаданные трека и Song JSON в PromptBeats
Панель метаданных и структуры Song JSON текущего трека

Согласование компонентов и стандарт Song JSON

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

Особенности интеграции с ИИ и затраты

Бэкенд приложения взаимодействует с LLM через специальный шлюз, поддерживающий модели от OpenAI, Anthropic и Gemini. Провайдер и учетные данные задаются в файловой системе окружения.

Экономичность текстового формата

Тестирование показало высокую эффективность выбранного подхода: стандартный бюджет тестового API-ключа позволил полноценно осуществлять генерацию на протяжении всего дня со значительным запасом. Структура Song JSON расходует токены экономно, хотя для крупных композиций потребовалось скорректировать лимиты длины ответа модели.

Планы по развитию и нереализованные функции

В рамках подготовки минимально жизнеспособного продукта (MVP) часть масштабных задумок осталась за пределами первой версии. Авторы планировали добавить полноценную многодорожечную аудиозапись для наложения инструментов на готовую WAV-основу, а также интеграцию VST-плагинов, однако последнее превращает браузерный проект в тяжеловесную DAW.

Структура Song JSON для создания и редактирования треков
Пример JSON-структуры композиции

Среди потенциальных улучшений также рассматривались виртуальная клавиатура по типу piano roll для наглядного выбора нот и расширенный блок аудиоэффектов, включающий дилей, реверберацию и частотные фильтры.

Демонстрация работы интерфейса и эффектов в PromptBeats
Анимация интерфейса и звуковых возможностей приложения
01.