Написание песен нейросетью: плохой первый автор, хороший второй

Шестьдесят сгенерированных зачинов, три годных, один остался в песне. Где нейросеть в написании песен окупается, а где тихо съедает песню.


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

Три годных из шестидесяти для живого автора звучит как приговор, а для машины это нормальный расклад, потому что шестьдесят строк заняли четыре минуты. Руками я напишу три зачина за вечер, и два из них всё равно окажутся про огни города.

Отсюда позиция, которую я буду защищать до конца текста: нейросеть работает плохим первым автором и очень хорошим вторым. У неё нет вкуса и нет памяти о том, что с вами произошло. Ровно эти две дыры не дают ей выбрать верную строку. Но они никак не мешают ей выдать сорок вариантов, а выбирать из сорока вы умеете и без неё.

Дальше разбираю пять мест, где такой обмен окупается, и одно место, где он тихо съедает песню.

Пустой лист: просите двадцать зачинов, а не песню

Никогда не просите модель написать песню. Просите двадцать первых строк и больше ничего.

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

Оставите две или три. Это правильное число. В удачный день у меня остаётся четыре, а дважды я выбрасывал все двадцать, и стоило это четыре минуты, а не потерянное утро.

Что игнорировать: любую строку, которая на бумаге ложится идеально ровно. Идеальный ритм означает, что модель красуется, и такая строка почти всегда сопротивляется мелодии, потому что мелодии нужна где-нибудь запинка. Ещё выбрасывайте всё, где уже названа эмоция. «Мне одиноко в этом доме» работает не зачином, а пересказом. Подробнее про разницу между сценой и пересказом собрано в разборе, как пишут тексты песен.

Второй куплет, который всегда проседает

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

Рефлекс подсказывает попросить у модели второй куплет. Не просите. Получите пересказ первого, потому что среднее по всем вторым куплетам мира и есть пересказ первого.

Просите задачу, а не текст. Вставьте первый куплет и припев, а следом: «перечисли шесть вещей, которые может сделать второй куплет и которых не сделал первый. Строк не пиши». Ответ почти всегда один и тот же, и почти всегда полезный: сдвинуть время вперёд, сменить говорящего, ввести второе лицо, назвать цену, поспорить с припевом, отъехать камерой. Шесть ходов, из которых один вы в час ночи точно не вспомнили бы.

Дальше куплет пишете вы. Модель выбрала угол, слова ваши. На этом разделении держится весь метод.

Что игнорировать: строки, которые модель подсунет по собственной инициативе, хотя вы просили только углы. Она их подсунет обязательно, и это будет тот самый пересказ.

Строка, переписанная девять раз

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

Дело почти никогда не в смысле. Дело в числе слогов, которое дерётся с мелодией, или в ударении, падающем не на ту долю. Это измеримо, и как раз тут модель действительно сильна.

Задавайте форму, а не настроение: «перепиши эту строку двадцатью способами. Ровно семь слогов. Ударения на первый, третий и пятый. Заканчивай на согласный. Смысл сохрани. Комментариев не пиши». Именно двадцать, не пять. Пять дадут пять самых вероятных переделок, а вероятное здесь и есть враг.

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

Заголовок, который не находится

Название чаще всего уже лежит внутри текста, просто вы перечитали этот текст двести раз и перестали его видеть.

Не просите идеи для названия. Попросите вытащить из готового текста все словосочетания длиной от двух до четырёх слов и отсортировать их по тому, насколько редко такие обороты встречаются в названиях песен. Редкость здесь работает единственным критерием отбора. Если спросить названия напрямую, вернётся «Эхо вчерашнего дня», то есть среднее по всем названиям, а значит худшее из возможных.

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

Версия на втором языке

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

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

Suno промахивается с произношением ровно там, где письменное ударение спорит с мелодическим, и услышать это можно раньше, чем вы потратите кредит. Что выдерживает перенос в другой язык, а что нет, расписано в тексте про песни на других языках.

Что вы при этом теряете

Теперь про обратную сторону, и она настоящая, а не выставленная для красивого опровержения.

Каждая сгенерированная строка складывается как среднее из всего, что написано на эту тему. А песне среднее противопоказано в принципе. Ценность песни держится на том, что один человек заметил одну вещь, мимо которой прошли остальные, а система, которая всего лишь предсказывает следующее вероятное слово, заметить ничего не может: она так устроена. Скормите ей побольше своего черновика, и она обточит песню до формы всех остальных песен про это же чувство. Вы не заметите подмены, потому что обточенное ощущается хорошо. Оно ощущается законченным.

Усредняется и структура, не только строки. Без вмешательства выходят четырёхстрочные строфы, рифмовка ABAB и припев, где название повторяется трижды, потому что туда сходится вся вероятность.

Отсюда два правила, и от них я не отступаю.

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

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

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

Как это работает на сайте от начала до конца

Сразу про границы. Оба инструмента пишут текст и ни один из них не делает звук, никогда. Звук остаётся за Suno, а слова пишем мы.

Шаг первый, без случайностей. Генератор промптов моделью не является. Вы отмечаете нужные поля, и на один и тот же набор он возвращает один и тот же рецепт: строку Style, каркас для текста, блок про вокал и теги для Exclude. Последнее важнее, чем кажется. Suno читает запрет как пожелание, поэтому фраза «без автотюна» в поле Style срабатывает примерно через раз. Генератор переводит каждое «не надо» в положительный тег, который попадает в Exclude, где он и вправду соблюдается. Повторяемость тут и есть смысл: если трек вышел кривым, вы меняете одно поле и точно знаете, от чего именно изменился звук.

Шаг второй, слова. Генератор песен пишет название и полный текст по короткому заданию. Задание сознательно узкое. Свободное поле ровно одно, theme, не длиннее 300 символов, дальше идёт выбор из готового: лицо повествования (первое, второе, третье, коллективное, рассказчик), язык песни из девяти, возраст аудитории сплошной полосой не шире трёх диапазонов, структура (классическая, без бриджа, с двойным припевом, сюжетная, петля, баллада), направление хука (строка-название, вопрос, контраст, признание, речёвка), вокал (не задан, женский, мужской), один из 53 корневых стилей и от одной до трёх эмоций.

Дуэта в списке нет, и это решение, а не пробел. Suno редко делит строки там, где вы просили, поэтому дуэтное задание возвращается одним голосом, читающим обе партии.

Возраст задаётся именно полосой, а не набором галочек. Полоса «от 18 до 34» соберётся, «дети и пенсионеры» нет, потому что текст, написанный сразу для тех и других, не написан ни для кого.

Разберу на живом задании: тема последняя смена на работе, с которой я мысленно уже ушёл, первое лицо, русский, аудитория от 25 до 44, структура сюжетная, хук через признание, мужской вокал, корневой стиль Americana, эмоции longing и defiance. Возвращается название и целиком собранный текст, уже разложенный по тегам [Verse], [Chorus] и [Bridge], то есть ровно в том виде, какой ждёт поле Lyrics в Suno. Один такой запуск стоит 20 кредитов, а при курсе 100 кредитов за доллар это 0,20 доллара за песню, но сверьтесь с актуальными ценами, а не с цифрой из статьи.

Шаг третий. Текст кладёте в поле Lyrics, строку Style в поле Style. И прогоните по тексту оба правила до генерации, а не после, потому что плохая строка от того, что её спели, лучше не становится. Какие теги внутри поля Lyrics Suno действительно слушает, а какие пропускает мимо, разобрано в справочнике по метатегам.

Можно ли это продавать

Если коротко, то зависит от условий использования вашего инструмента и от того, сколько в готовом результате вашей собственной работы. Кто отвечает на этот вопрос коротким «да» или коротким «нет», тот вам что-то продаёт.

Юридического вывода тут не будет, будут два практических действия. Прочитайте условия каждого сервиса в цепочке по отдельности, потому что у текстового инструмента, у музыкального и у дистрибьютора они свои, и расходятся эти документы чаще, чем хотелось бы. И храните черновики с датами, чтобы правки рукой было видно. Если вопрос когда-нибудь зададут всерьёз, папка с девятью версиями одной строки отвечает на него убедительнее любых рассуждений. Где именно проходит граница, разобрано в материале про продажу песен из Suno.

Вопросы и ответы

Слышно ли слушателю, что текст писали с нейросетью? Помощь не слышна, слышна усреднённость. Модель никто не опознаёт, а вот банальность считывают мгновенно и описывают её словами «звучит как всё остальное». Если конкретные детали остались на месте, вопрос просто не возникает.

Генерировать весь текст или писать самому? Генерируйте целиком, когда черновика нет и нужен разгон, но относитесь к результату как к сырью и закладывайте переписывание половины. Пишите сами, когда песня про то, что случилось с вами, а модель подключайте только на втором куплете и на застрявшей строке. Второй режим даёт песни лучше. Первый даёт песни вообще, что в иные недели важнее.

Сколько вариантов запрашивать? Двадцать для строк, шесть для углов, один для структуры. Число тут решает многое: первые три ответа всегда самые вероятные, то есть самые затёртые. Интересное начинается примерно с восьмой позиции.

Стоит ли платить за приложение, если уже есть чат-бот? Текст вам напишет и чат-бот. Только он не отдаст его сразу разложенным по [Verse] и [Chorus], в заказанной структуре и с хуком, нацеленным ровно туда, куда вы просили. И он не повторит одну и ту же строку Style дважды на один и тот же запрос. Любите возиться с формулировками, значит бота достаточно. Хотите во вторник получить тот же результат, что в понедельник, значит покупаете вы повторяемость.

Генератор песен делает музыку? Нет, он пишет только название и текст, а звук делает Suno. Ни один инструмент на сайте не отдаёт аудиофайл.

Что делать, если все строки на выходе непригодны? Значит, поле theme недорабатывает. «Любовь» даёт среднее, потому что это категория, а не ситуация. «Последнее сообщение, которое я не отправил» даёт результат, потому что внутри есть время, предмет и решение. В запасе 300 символов, а тратят обычно девять.

Годится ли это для рэпа, где важна не мелодия, а поток? Годится, и приём с подгонкой слогов из раздела про застрявшую строку там весит больше, а не меньше. Задавайте число слогов и позиции ударений явно, а рифмы, которые модель предлагает сама, пропускайте: она держится за те же четыре созвучия, от которых любой пишущий отказался ещё в юности.

Читать дальше