Привет всем увлеченным искусственным интеллектом, нейронными сетями, музыкой или тем, кто хочет вникнуть в технологии. В этой статье я бы хотел познакомить вас с «Бесконечным нейронным радио», углубиться в то, как все работает изнутри и как вы сможете самостоятельно создавать музыкальные композиции, при помощи искусственного интеллекта.
Бесконечное, потому что lofi музыка и подкасты могут генерироваться нейронными сетями бесконечно.
Вдохновением для этого проекта послужило для меня разочарование в моем любимом музыкальном приложении. Поскольку со временем приложение стало не удобным для меня, я почувствовал потребность создать что-то свое с лофи-музыкой — жанра, который помогает сосредоточиться во время программирования или просто служит расслабляющим фоном в вечернее время. Приложение содержит цитаты, сгенерированные нейронными сетями, в сопровождении GIF-анимации в пиксельном стиле, которая тоже частино сгенерировано нейронными сетями. Если подкасты вам не по душе, вы можете их отключить и выбрать только нейронную музыку или даже настроиться на радиостанцию, которая уже делается людьми.
Технические детали:
Бэкенд: Разработанный на Go, он служит двум основным целям:
(а) Предоставляет уникальный, постоянно меняющийся список музыки и подкастов lofi при каждом обновлении страницы и (б) отслеживает подключение различных радиостанций, позволяя пользователям переключаться между музыкой, созданной нейронными сетями, и традиционными радио точками.
Внешний интерфейс: Созданный с использованием JavaScript, он взаимодействует с серверной частью через запросы AJAX. Я также интегрировал в проект прогрессивные веб-приложения (PWA). Такой подход, позволил сделать так, чтобы пользователь мог устанавливать приложение прямо с веб-сайта и беспрепятственно использовать его в фоновом режиме как музыкальный плеер. Хотите посмотреть, какой код в бэкенде и фронтенде? Весь код проекта открыт на GitHub.
Создание музыки: Я использовал проект Audiocraft с открытым исходным кодом для создания треков lofi. Основываясь на текстовых подсказках, которые определяют настроение музыки — будь то работа, дождь или отдых в вечернее время — я использовал demo/musicgen_app.py и большую модель для генерации музыки по текстовым запросам.
Небольшое отступление. Как вам сделать музыкальные композции самостоятельно? Вам нужно скачать проекта Audiocraft и по инструкции установить зависимости и ffmpeg. Как установить ffmpeg, вы можете найти в этом видео на 16 секунде. Далее установить pip install jupyterlab и после установки включить jupyter lab. У вас откроется меню с Notebook, в котором вам необходимо открыть musicgen_demo.ipynb для генерации музыки или audiogen_demo.ipynb для генерации аудио эффектов, например аплодисменты или звук машин. Из всего, что вам остается сделать это выбрать модель от маленький до большой get_pretrained(‘facebook/model’) и задать текстовой запрос, какую вы хотите музыкальную композицию (в том числе с изменением текстового запроса по таймкодам). Вы можете создавать музыку с нуля, либо изменять уже существующие композиции, например сделать так, чтобы ваша любимая мелодия была не на гитаре, а на пианино. Вернемся к бесконечному радио.
Создание подкастов. Здесь сыграли важную роль два open-source проекта:
- Wunjo AI для преобразования текста в речь и синтеза дипфейк видео. Я обучил модель, используя образцы своего голоса. Как обучить модель и подготовить данные для обучения в Wunjo AI на голосе, я снял видео на своем YouTube канале. Вдруг вы захотите оцифровать свой голос, соседа, либо любимого актера!
- Проект text-generation-webui в сочетании с моделью Llama для создания забавных новостных статей, сохраняющих ауру достоверности. Используя базовую модель Llama 33B из huggingface, я дополнительно обучил Lora для модели на юмористическом новостном контенте, что из этого вышло, судите сами на radio.wladradchenko.ru или английская версия.
Цитаты занимают еще одно место в приложении. В то время как английские цитаты происходят полностью из ChatGPT, русские цитаты представляют собой смесь — одни из ChatGPT, другие из фильмов и мемов, а некоторые — подлинные цитаты известных личностей. Кроме того, я создал несколько пиксельных GIF-изображений с помощью AUTOMATIC1111 Stable Diffusion, получив необходимые модели с CivitAI.
Вот и получается, что это радио создается нейронными сетями.
Я надеюсь, вам было интересно и статья пробудит в вас интерес к бесконечному нейронному радио, либо вдохновит на создание чего-то большего. До скорого!