От идеи до релиза - сплошной ИИ

У моей аудио-энциклопедии для детишек скоро важный день - релиз! 30+ невыдуманных историй, приложение на Flutter, ни строчки не написано руками.
Сегодня рассказываю про процесс создания историй.

ДТФеры увидели полотно текста
ДТФеры увидели полотно текста

Что за проект?

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

Без видео, прослушивание оффлайн когда не работает мобильный интернет (привет, Москва), семейный доступ с единой подпиской для несколько устройств, несколько языков, ну короче много всего.

Почему ИИ?

Писать код ИИшкой уже стало абсолютно нормальной практикой. Но истории для детей-то зачем?

Ответ простой: ИИ не заскучает и не будет срезать углы.

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

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

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

Всё на сербском, ты угораешь?
Всё на сербском, ты угораешь?

Шаг 1 - Генерация идей

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

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

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

...и так далее.

Шаг 2 - План

Для каждой из историй ИИ-агент составляет краткое содержание, с указанием фактов, событий, дат и действующих лиц. Что-то вроде оглавления.

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

План пишется с расчетом на то, чтобы история получилась примерно на 3000 слов.

Шаг 3 - Текст истории

Имея на руках план, новый агент пишет непосредственно текст истории. Здесь я задаю планку в 3500 слов, чтобы не загонять ИИшку в узкие рамки и дать простор для словоблудия.

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

Но к счастью, на этом этапе я не останавливаюсь, здесь начинается наиболее важная часть.

Почти 6 часов аудио уже, а мы ещё даже не запустились
Почти 6 часов аудио уже, а мы ещё даже не запустились

Шаг 4 - Редактура

Надо отдать должное нейросеткам - они отлично умеют редактировать текст если им дать внятные инструкции. А ещё они отлично умеют находить в тексте то, что тебе нужно - опять же, при наличии хороших инструкций.

Поэтому я сделал следующее: создал детальную инструкцию по тому, что конкретно не так с ИИ-текстами. Бесконечные повторы, "деревянные" словесные конструкции, типовые фразы типа "давай честно" и так далее и тому подобное - всё это попало в гайд. А ещё там есть правила для выставления оценки тексту от 0 до 100 баллов.

С этой инструкцией и черновым текстом мой агент идёт к другой нейросети (не той, которая писала текст) - и просит оценить. Нейронка выдаёт оценку и какие-то свои комментарии что можно улучшить и как. Агент переписывает - и снова отправляет на оценку. И так по кругу до тех пор, пока текст не будет вылизан до блеска.

Для некоторых историй оказывается достаточно 2-3 итераций, для иных - до 20. Каждый поход на ревью стоит денег, вызовы идут через платный API, каждая буква в итоге стоит копеечку. А буков, кстати, становится заметно меньше - изначальная история в процессе ревью "высыхает" на 20-30%.

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

Шаг 5 - Локализация

Готовый вылизанный текст нужно перевести на несколько языков - в данный момент это английский (США) и сербский. Перевод тоже делает агент, но с важной оговоркой: не просто перевод, но и локализацию.

Надо понимать, что целевая аудитория приложения - это дети 5-10 лет. Они не говорят на иностранных языках, знают только свою культуру и не умеют в уме переводить килограммы в фунты. Поэтому фразочка вроде "Мы ели борщ на скорости 150 км/ч по дороге из Москвы в Петербург" для ребёнка из Оклахомы не имеет никакого смысла, даже будучи переведённой на английский.

Поэтому агент не просто переводит текст слово в слово, но и заменяет не влияющие на смысл названия и понятия на схожие по смыслу аналоги, понятные носителю языка. "150 км/ч" превращаются "90 mph", вместо борща подают бургеры, а поезд едет из Вашингтона в Нью-Йорк. Маленький житель Оклахомы не почует подвоха.

Само собой, замена делается только там, где это уместно - Наполеон не будет захватывать Париж вместо Москвы просто потому что текст переводится на французский. А вот перелёт от Москвы до Владивостока в заметке о самолётах может без проблем превратиться в путешествие от Вашингтона до Лос-Анджелеса.

Инглиш мф, ду ю спик ит?
Инглиш мф, ду ю спик ит?

Конвертация в аудио

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

В скором времени мы будем готовы начать тестирование на мобильных устройствах - как только мне одобрят аккаунт в Google Play и App Store :) Следите за новостями в телеграме.

5
7 комментариев