Баннер мобильный (1) Пройти тест

Спроси Незнайку: как студенты Skillfactory разработали голосового помощника для «Эксмо-АСТ»

От чтения книг Николая Носова до презентации готового решения на выставке Non-Fiction

Кейс

18 марта 2024

Поделиться

Скопировано
Спроси Незнайку: как студенты Skillfactory разработали голосового помощника для «Эксмо-АСТ»

Содержание

    Искусственный интеллект может решать серьезные проблемы в медицине и промышленности, а может организовать вам беседу с любимым книжным персонажем из детства. Предел использования технологии — только наша креативность. Проявить ее, проверить свои навыки и создать проект для крупного издательства смогли студенты Skillfactory на совместном хакатоне с «Эксмо-АСТ».

    Задача на хакатон

    В 2023 году исполнилось 115 лет со дня рождения писателя Николая Носова и 70 лет с первой публикации его книги «Приключения Незнайки и его друзей». Издательская группа «Эксмо-АСТ» посвятила часть своей экспозиции на выставке Non-Fiction юбилею Носова, а для создания интерактивного стенда организовала совместный хакатон со Skillfactory.

    Участникам было нужно создать виртуального Незнайку, который бы отвечал на вопросы посетителей стенда. Студенты разрабатывали интерактивное приложение, которое распознает речь человека, генерирует и озвучивает ответ в стиле Незнайки.

    Свои решения показали три команды из дизайнеров, разработчиков и дата-сайентистов. Жюри выбрали команду-победителя, проект которой развернули на выставке Non-Fiction.

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

    Александр Касьяненко,
    куратор AI-проектов в издательстве «Эксмо-АСТ»

    Как разрабатывали проект победители

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

    Стартовая страница приложения «Спроси Незнайку»
    Стартовая страница приложения. Дизайнеры стремились максимально сохранить стиль оригинала

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

    Страница общения с голосовым помощником в приложении «Спроси Незнайку»
    Пример чата с Незнайкой

    Участники почти каждый день общались в чатах в Telegram, созванивались разными составами. Раз в неделю проходили онлайн-встречи с менторами. Задачи распределяли в трекере Asana.

    Чтобы выбрать оптимальные модели машинного обучения, участники пересмотрели много вариантов. Для распознавания речи в итоге выбрали Faster Whisper, она показывала наиболее достойные результаты на тестах. Много времени ушло на то, чтобы научить существующие русскоязычные модели говорить в стиле Незнайки. Студенты создали большой датасет формата «вопрос-ответ». 

    Пример: «Незнайка, чего ты больше всего боишься? — Ой, я ужасно боюсь касторки! Только не говорите Пилюлькину!»

    Мне кажется, я никогда в жизни так не смеялась, как во время тестирования моделей. Каких только ответов мы не получали, например рекомендацию приготовить борщ из конфет. Однажды Незнайку заклинило и он раз пять выдал: “Мне весело! Мне весело!”. Мы тестировали, среди прочего, языковые модели gpt2 и llama, но остановились на mistral. Она хорошо обучалась и креативила. Сложнее было с генерацией речи, так как открытых моделей с русским языком оказалось меньше, чем мы ожидали. Мы использовали XTTS, но, к сожалению, запись голоса диктора для Незнайки попала к нам незадолго до выставки. Мы не успели уделить достаточно внимания этой части работы. Это то, что нам хотелось бы сделать лучше.

    Асият Щамхалова,
    студентка направления Data Science и лид команды

    Среди вопросов для тестов модели были как нейтральные («Как приготовить хачапури?»), так и провокационные. Незнайка должен был не только отвечать весело и в своем индивидуальном стиле, но и уходить от вопросов на недетские темы. Разработчики научили его говорить: «Я слишком маленький для таких тем!».

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

    Мой основной фреймворк Django, но для проекта хотелось что-то более легковесное. Я выбрал FastAPI. Из-за ресурсоемкости не получалось запускать проект на личном компьютере. Для презентации MVP мы нашли изящное решение: запускали ДС прямо в Google Colab и прокидывали тоннели через сервис ngrok.

    Александр Курчин,
    студент курса по backend-разработке Skillfactory

    Незнайка на Non-Fiction

    Пожалуй, самый волнительный экспириенс для команды — это презентовать свое решение на реальном мероприятии. На выставке Non-Fiction, как и на любом массовом мероприятии, были проблемы с интернетом. Чтобы приложение работало корректно, нужно было локальное решение. 

    По совету DevOps-специалиста разработчики решили контейнизировать приложение и развернуть на локальном оборудовании издательства на выставке. 

    Сутки перед выставкой — это мой курс молодого бойца Docker. Мы, по сути, впервые собирали наше приложение, которое улучшали до последнего дня. По ходу развертывания мы находили и исправляли непредвиденные ошибки, дорабатывали обработку текстового ответа. Не обошлось без фейлов. Для работы голосовых команд все-таки был необходим интернет: на фронтенде Незнайка слушал и распознавал через Google Cloud Speech-to-Text API. Это мы внедрили на заре проекта, когда еще не было четкого понимания технических требований. Спас ситуацию USB-модем.

    Александр Курчин,
    студент курса по backend-разработке Skillfactory
    Команда проекта "Спроси Незнайку"
    А вот и команда мечты со своим творением. Фото предоставили спикеры

    Остроумные ответы и интуитивный интерфейс «Спроси Незнайку» привлекли к стенду посетителей выставки. Пожалуй, главный итог — детям понравилось! 

    Кейс

    Поделиться

    Скопировано
    0 комментариев
    Комментарии