Реклама

Флоу — это не число слогов: как я учил языковую модель писать рэп в такт бита

#Флоу #Первая #Ниже #Читать

Я сделал страницу, на которую загружаешь бит и пишешь, о чём трек, а получаешь куплеты и припев, разложенные по тактам этого бита: строка на такт. Первая версия выдавала школьные стихи под музыку. Ниже о том, почему так вышло, где языковая модель надёжна, а где нет, и что пришлось посчитать самому. Всё это на сервере с двумя ядрами и без видеокарты. Читать далее

Я попытался сделать веб приложение, которое позволяет написать текст под бит. Механика следующая: загружаешь бит, задаешь характеристики текста - основная тема, настроение, форма рифмы и др - получаешь куплеты и припев, разложенные по тактам этого бита: строка на такт. Первая версия выдавала мягко говоря плохой результат. Ниже расскажу о том, что получилось докрутить, чтобы получить приемлемый результат.

Сначала бит, потом слова

Модель не слышит аудио, и я ей его не отправляю. Отправляю только числа: темп, где стоят такты, какие части у бита и как бьют барабаны в каждой шестнадцатой. Всё это считается на сервере обычной обработкой сигнала, без нейросетей, меньше чем за секунду.

Темп считается так же, как в любом определителе BPM, но с одной поправкой: я сворачиваю его в диапазон 70–140. Хай-хэты восьмыми делают 90 и 180 одинаково периодичными, и по сигналу их не различить. А куплет читают на медленном счёте, поэтому выбирается он. Если два числа расходятся, страница показывает оба.