22 октября в «Большом Физтехе» мы участвовали в хакатоне «Новые города». Эксперты, школьники и студенты с нуля придумывали посёлок будущего. Сами решали, как в нём будут жить люди, и тут же собирали свои проекты на GPTunneL. Весь хакатон шёл в прямом эфире.
С руководителем курорта «Мрия» Самвелом Саруханяном мы обсуждали, где устроить фестиваль, чтобы жители могли выспаться. С Полиной Албек из ГК «Дирижабль» — для чего посёлку могут пригодиться пассажирские дирижабли. Школьники Физтеха и студенты Лидерской академии в это время проектировали кампус, в котором сами хотели бы жить.
На Физтехе мы впервые запустили в прямом эфире голосового ассистента на базе модели GROM. Пока мы за столом обсуждали с ним идеи, Никита Степанов из студии YŪGA VISION собирал ролик — писал промпты, генерировал сцены и монтировал их. Наша команда в это же время делала сайт посёлка.

Участникам предстояло за три часа придумать один день из жизни жителя посёлка в 2030 году и снять об этом минутный ролик. GPTunneL отвечала за ИИ-инструменты для всех команд.
Я Климент Викулов, сооснователь GPTunneL. В начале 2023 года мы в ScriptHeads сделали для себя инструмент, в котором собрали ChatGPT, Midjourney и другие доступные тогда нейросети. Потом открыли его для всех. За три с половиной года проект несколько раз повотился и сегодня мало похож на свою первоначальную версию. Сейчас в команде GPTunneL 53 человека. Мы обучаем собственные модели GROM для работы с текстом, изображениями, видео и музыкой. Ещё мы сделали сервис озвучки и редактор Workflow, в котором Никита собрал ролик. В апреле я писал на Хабре, зачем мы взялись за свою языковую модель.
Когда GROM давали слово
О голосе для GROM мы думали давно. Чтобы задать модели вопрос посреди встречи, кому-то одному приходится открыть чат, пересказать разговор и потом прочитать всем ответ. На Физтехе любой за столом мог спросить GROM вслух. Остальные слышали ответ и могли сразу что-то уточнить.
На прогоне GROM сам вступал в разговор. Люди ещё обсуждали одну идею, а он уже предлагал другую. К эфиру решили, что отвечать он будет, только если его позовут.
Wake-word не делали: распознавали речь с микрофона, проверяли первое слово реплики. Если она начиналась с «Гром», отправляли текст в модель. Для озвучки ответов использовали голос Филиппа из сервиса синтеза речи. Этот голос мы тоже разработали. Иногда GROM отвечал так быстро, что ведущий сам выдерживал паузу. Инженер следил за техникой. Ответы GROM сразу шли в эфир, их никто не редактировал.
За три часа ведущие дважды просили GROM подвести промежуточные итоги. К нему обращались и за идеями для ролика. Например, он предложил сцену, в которой студент и эксперт вместе решают задачу.
Большую часть времени люди говорили друг с другом. Чтобы GROM знал, до чего они договорились, мы отдельно обрабатывали звук всего эфира. vMix каждые пять минут сохранял видеофайл. Resilio передавал файлы на второй компьютер, где локальный Whisper расшифровывал речь.
Claude Sonnet получал свежую расшифровку вместе с предыдущим конспектом и обновлял его. В нём оставалось главное — кто что предложил, о чём договорились и что ещё предстоит решить. После обработки очередного фрагмента подставляли обновлённый конспект в системную инструкцию GROM. Для пилота выбрали Sonnet, потому что уже много раз проверили качество его конспектов. На тех же записях мы проверим как будут справляться и наши компоненты на таких задачах в будущем.
Почему GROM опять заговорил про бороду
Главным героем ролика выбрали наставника. Спросили GROM, кому студенты скорее поверят — наставнику с бородой или без. GROM высказался за бороду - потому что, по его мнению, человек с бородой вызывает больше доверия. Человека с бородой и оставили.
Через девять минут у него спрашивают, может ли человек прожить меньше, если ему не хватает общения. «В таком случае борода может сработать как дополнительный…» — начинает GROM. Тут его перебили. Этот момент в записи, 55:03.
Про бороду спорили долго, и этот диалог забил контекст GROM, хотя люди уже сменили тему. Инженер прямо в эфире очистил историю диалога. Решение о внешности героя сохранилось в отдельном конспекте. GROM по-прежнему знал, как выглядит наставник, и больше к бороде, в разговоре с людьми, не возвращался.
Куда делись пятнадцать минут
Инженер заметил, что после восьмого обработанного файла идёт двенадцатый. На диске лежали все. Когда несколько файлов приходили разом, обработчик брал самый свежий. Очереди у него не было. Фрагменты с девятого по одиннадцатый пришлось обработать вручную.
Список имён и названий мы Whisper заранее не передали, поэтому в расшифровке GPTunneL местами превратился в GPTanal. С участниками было сложнее. В каждом файле нумерация начиналась заново. Под меткой «Спикер 1» в соседних фрагментах могли оказаться два разных человека. Разбирались вручную, кто что сказал.
На записи эфира хотим проверить, можно ли сопоставлять реплики одного человека по голосовым эмбеддингам — числовым представлениям голоса. Попробуем сохранять их для каждого спикера и учитывать соседние реплики. Результат сравним с ручной разметкой.
Что получилось к концу эфира
С Владимиром Петровым, основателем дизайн-студии Buro 3.14, и Егором Евланниковым из «Эквимум» и ГК LH47 обсуждали утро нашего героя. Прогулка у воды, спорт, время для себя. Потом вспомнили про детей. Их кто в школу повезёт? В итоге школу-пансион разместили в семи минутах ходьбы от дома.
Школьникам и студентам хотелось жить у воды, но они боялись, что в посёлке будет скучно. Поэтому в проекте появились спорт и фестивали. Площадку для фестивалей вынесли подальше от домов, а пассажирские дирижабли оставили на будущее.

Генеральным продюсером хакатона был Ираклий Цезаров. В AI-продакшене участвовал Денис Мищенко из SKILLOUT и VidMK. А Никита Степанов, AI-креатор, по ходу обсуждения превращал наши идеи в сценарий.
Сначала Никита зафиксировал внешность наставника, чтобы в каждой сцене зритель узнавал того же человека. Затем подобрал референсы локаций, с помощью GROM сгенерировал сцены, а в Workflow свёл их с голосом диктора и музыкой. Надпись на дирижабле сгенерировать не получилось — её добавили на монтаже. Готовый ролик в записи эфира, 2:48:16.

Посёлок назвали «Полдень». На его сайте можно пролистать день жителя от шести утра до одиннадцати вечера. По просьбе ведущих прямо во время эфира добавили голосование для зрителей. А в конце страницы можно рассказать о себе и получить свой вариант дня в посёлке. Сайт «Полдня».
Что дальше
Уже в ноябре мы планируем снова использовать голосового GROM на офлайн-мероприятиях. К этому времени добавим очередь для файлов, подготовим словарь имён и проверим, как система сопоставляет реплики одного человека в соседних фрагментах.
Голосовой GROM на устройствах — отдельное направление, которое мы хотим развивать. Нам предстоит понять, на каких устройствах он сможет работать и в каких ситуациях людям будет удобно обращаться к нему голосом.
Для этого нужны не только деньги, но и видеокарты, другие вычислительные ресурсы и сами устройства, на которых мы будем тестировать ассистента. Сейчас обсуждаем это с инвесторами.
И еще в GPTunneL мы хотим связать голосового ассистента с Workflow. На хакатоне Никита вручную переносил наши решения в сценарий. Хочу, чтобы в следующий раз он мог открыть проект и сказать: «Гром, переделай вечернюю сцену». А ассистент уже знал бы из нашего разговора за столом, куда мы решили перенести фестиваль и почему.
На Хабре пишу нечасто: на статьи уходит много времени, а его вечно не хватает. О разработке наших продуктов чаще рассказываю в своём Telegram-канале.