Спів алфавіту мав би бути найпростішим завданням для ШІ-голосу. A-B-C-D-E-F-G. Сім окремих звуків, знайомих кожній дитині на планеті. Проте кожен, хто експериментував із генерацією ШІ-музики, знає, що реальність набагато складніша. Попросіть модель заспівати алфавіт, і літери L, M, N, O та P часто зливаються в один розмитий склад. "Elemmennopee" — це не літера. Це симптом.
Це проблема LMNOP, і вона виходить далеко за межі дитячих пісеньок. Дні тижня, нумеровані інструкції та будь-які впорядковані списки виявляють ту саму слабкість. Розробник нещодавно перевірив це на практиці, згенерувавши вісім пісень за допомогою ШІ-пайплайну та вимірявши результат за допомогою mlx-whisper — інструменту автоматичного розпізнавання мовлення. Замість того, щоб покладатися на суб'єктивне прослуховування, він дозволив програмному забезпеченню для транскрибації точно повідомити те, що наспівав ШІ. Результати були вражаючими. Перерахування збиває синтетичних співаків так, як це не трапляється у звичайній мові.
Чому списки ламають ШІ-голоси
Розмовна мова містить контекст. Якщо хтось бурмоче: "I'm taking the dog to the park", і ви пропустите слово "dog", речення все одно матиме сенс. Оточуючі слова заповнюють прогалини. Списки ж не мають такої страховочної сітки. Кожен пункт існує окремо. Якщо модель розмиває різницю між "B" та "D", слухач не отримує часткового значення. Він отримує шум.
У пісні про алфавіт кластер LMNOP є найбільш очевидним місцем збою. Мовна модель сприймає цю послідовність як єдину фонетичну масу, а не як п'ять окремих літер. Без контекстуальних підказок, що закріплюють кожен звук, синтезатор намагається вгадати переходи між приголосними. І зазвичай він помиляється. Те саме стається з днями тижня або пронумерованими кроками. Модель пролітає крізь послідовність, стискаючи окремі елементи в нерозбірливу кашу.
Вимірювання шкоди
Щоб вивчити це об'єктивно, розробник згенерував вісім пісень і пропустив їх через mlx-whisper, щоб оцінити точність тексту. Процес був простим: написати промпт, згенерувати аудіо, транскрибувати результат і порівняти транскрибований текст із запланованим текстом пісні.
Для стандартних розповідних текстів результат був досить точним. Слова з'являлися там, де слід. Але коли промпти містили списки, алфавіти або перерахування, mlx-whisper видавав нісенітницю. Літери зникали або зливалися. Числа перетворювалися на нерозбірливі склади. Експеримент підтвердив, що тексти з великою кількістю списків мають значно гіршу розбірливість, ніж звичайна проза.
Архітектура промптів, що допомагає
Не можна покладатися на постобробку, щоб виправити спотворений список. Виправлення має відбутися ще до того, як буде зіграна перша нота. Ретельно побудований перший промпт може змусити модель до чіткішої дикції. Ці корективи нічого не коштують, але вони змінюють те, як модель дихає та робить паузи.
Розбивайте довгі послідовності на менші групи. Замість A-B-C-D-E структуруйте рядок як A-B-C-D та E-F-G. Коротка пауза між групами дає моделі шанс чітко вимовити правильні приголосні, а не розмазувати їх.
Прописуйте числа словами. Використовуйте "thirty" замість "30". Цифри — це абстрактні символи; модель іноді стискає їх у короткий, безголосий шум. Повне англійське слово забезпечує фонетичну змістовність.
Додавайте візуальні пробіли навколо літер. Пишіть "A - B - C" за допомогою дефісів або пробілів, а не "ABC". Візуальне розділення сигналізує моделі, що це окремі елементи, а не єдина абревіатура чи слово.
Фіксуйте кількість складів. Тримайте кожен рядок у межах від шести до десяти складів. Сильні коливання змушують модель поспішати на коротких рядках і розтягувати довгі. Списки й так потребують точності; нерівномірний ритм робить точне виконання майже неможливим.
Вилучайте слово "and" зі списків. У природній мові "and" виступає сполучником. У співаному списку він додає м'який склад, який часто поглинає чіткий кінець попереднього елемента. "Monday, Tuesday, Wednesday" звучить чіткіше, ніж "Monday, Tuesday, and Wednesday".
Пастка регенерації
Саме тут людська інтуїція дає збій. Звичайними текстами можна працювати ітеративно: якщо ви чуєте невдалу фразу, ви змінюєте формулювання і генеруєте знову. Наступна версія звучить краще. Тест показав, що цей підхід працює для пісень без перерахувань. Але для пісень, що містять списки, переписування промпту робило результат ще важчим для розуміння.
Дані були однозначними. Пісні без списків покращилися після виправлення промптів. Пісні з перерахуваннями — погіршилися.
Винуватцем є акустичний seed. У моделях перетворення тексту на пісню зміна промпту не просто редагує наявне аудіо. Вона повністю перетасовує всю генеративну основу. Модель перебудовує виконання з нуля. Для наративного тексту новий «кидок кубиків» може дати чіткіший дубль. Для списків ви зазвичай ризикуєте отримати ще гіршу нерозбірливість. Ви можете виправити таймінг однієї літери лише для того, щоб у наступній спробі модель «закопала» «J», «K» та «L». Оригінальний дубль був недосконалим, але правка часто замінювала один фонетичний безлад іншим.
Розумніший робочий процес для текстів із великою кількістю списків
Оскільки регенерація несе ризик втрати чіткості, ваш процес має змінитися. Припиніть гонитися за ідеальним переписуванням. Замість цього ставтеся до першого промпту як до кастингу.
Генеруйте кілька версій за допомогою того самого промпту, використовуючи різні випадкові seed. Не чіпайте текст. Залиште слова незмінними та дозвольте моделі варіювати виконання. Ви проводите прослуховування, а не сесію редагування.
Потім оцініть кожного кандидата. Пропустіть кожну версію через mlx-whisper або подібний інструмент транскрипції та визначте, який дубль найбільш точно відповідає вашому промпту. Обирайте переможця на основі точності тексту, навіть якщо інструментал або вокальний тон дещо менш відшліфовані. Для контенту з великою кількістю списків розбірливість важливіша за вайб.
Найголовніше — впроваджуйте виправлення заздалегідь. Застосовуйте правила інтервалів, обмеження на кількість складів і групування ще до того, як натиснете «генерувати». Не пишіть пісню про алфавіт звичайною англійською, щоб потім намагатися її «залатати». Модель менш терпима до ретроактивних правок, коли йдеться про списки. A
