DevStory: Ассистент на русском

:

Первый блин комом. Идея мобильного ассистента, который упростит «жизнь» типичного пользователя смартфона и освободит его от ежедневной рутины, будоражит умы подразделения i-Free Innovations уже более двух лет.

Первое воплощение мобильный ассистент от i-Free получил в апреле 2011 года. Тогда на Android вышло приложение «Карманная блондинка». В нем сочетались 2 вещи: набор базовых «сервисов на каждый день» (погода, будильник, вики и т.д.), и персонификация ассистента  – визуальным и логическим центром приложения стала 3D-девушка, с вполне себе 3D-формами. Всё взаимодействие с сервисами происходило в режиме диалога с «блондинкой».

Однако, в своей гипотезе, что «каждый-андроид-юзер-желает-личного-ассистента» мы несколько просчитались. Девушка–ассистент – столь яркий персонаж, что она решала лишь одну задачу – привлечение аудитории. Увлеченные 3D девушкой, пользователи забывали об основном функционале приложения, и «Карманная блондинка» очень быстро превратилась в говорящую куклу, но никак не в личного помощника.

В 2011 году на рынке появился первый полноценный продуктивити ассистент – мобильная помощница Siri, которая перевернула представление о голосовых ассистентах для смартфона. Первыми всю мощь Siri ощутили англоговорящие пользователи в США, т.к. набор базовых сервисов предназначался именно для них. Весь мир с трепетом ждал появления локализаций Siri, в том числе российские пользователи. Но время шло, а новостей из Купертино все не было. В этот момент началась волна создания пародий, продуктов-шуток, скорее мифических, нежели полезных ассистентов, которые подливали еще больше масла в уже разгоревшееся пламя недовольства.

И вот в июле 2012 мы решились на повторный штурм вершины – сделать продуктивити-ассистента. В качестве базовой платформы была выбрана платформа Android, которая больше близка нам по духу и где мы можем реализовать свои самые смелые фантазии. Вопросов типа «на какой язык ориентироваться при создании приложения?» даже не возникало. Только на русском и только для русскоговорящих пользователей.

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

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

И началась работа...

Достижение цели

Задачей для дизайнеров стал минималистичный интерфейс без ущерба для навигации и управления. Первые скетчи рисовались в тетрадочке от руки. Структура основного экрана была найдена быстро – практически весь экран был оставлен для вывода диалога с ассистентом.

По  нижнему краю расположился микрофон, настройки и фотокамера... «Для чего нужна иконка фотокамеры в интерфейсе ассистента?» -  этот вопрос задавал себе, наверно, каждый наш пользователь.  Этот «третий глаз» (как назвал его один из наших разработчиков) появился с целью задействовать камеру для изучения объектов вокруг и получения информации о них, но пока что эта функциональность так и не реализована.

DevStory: Ассистент на русском DevStory: Ассистент на русском

А дальше начались муки творчества. Как оформить баблы?

DevStory: Ассистент на русском

Как отображать напоминания.

DevStory: Ассистент на русском

Какую анимацию добавить при удалении карточки сервиса / напоминания.

DevStory: Ассистент на русском

Как  визуализировать переключение между карточками сервисов? Была даже идея использовать  крутящийся куб как у HTC Sense, SPB Software и т.д.

И самое главное, как изобразить поле для активации микрофона при голосовом вводе команды и визуализировать его готовность принять запрос?

DevStory: Ассистент на русском

В итоговом варианте:

DevStory: Ассистент на русском

 

Как пройти в библиотеку?

Одним из немаловажных факторов в успехе продукта стало качество распознавания русского языка. Как многие знают, в приложении используется движок распознавания речи от Google. В нем есть множество недостатков – распознавание основано на статистических данных из голосовых поисковых запросов, при которых пользователи часто не корректируют ошибку и коверкают произношение. Так же, в тупик ASR от Google ставит любая нестандартная фамилия. Но главный его плюс, перевешивающий все минусы – он бесплатен для приложений на платформе Android. Мы уже имели опыт публикации на этой платформе, и знали, что если делать приложение изначально платным, оно не принесет ни денег, ни доброй славы.

Поэтому мы решили доработать качество на своей стороне. Физически распознать речь (перевести ее в строку) – это лишь половина пути. Вторая половина не менее сложна – необходимо понять, а что же действительно хотел пользователь. Для решения этой задачи нам пришлось приложить всю мощь наших разработческих умов. Мы создали свой механизм, который быстро анализирует фразу, делит ее на блоки, выделяет основные речевые конструкции и формирует релевантный ответ. Мы научились не просто реагировать на простейшие односложные команды («погода на завтра» или «поставь будильник»), но и анализировать естественную речь – «где я могу перекусить в центре Москвы» или «как проехать к ближайшему парку».

В рамках сервиса «Звонки» и «Отправка СМС» был создан специальный блок нечеткого поиска, который позволял хитроумно находить контакты из адресной книги пользователя не только по прямому имени, но и в транслите, и даже по уменьшительно-ласкательным синонимам имени.

Россия, ты такая большая, а контент лишь в двух городах...

Параллельно с разработкой движка искусственного интеллекта велась работа над базовыми сервисами. Эту работу мы разделили на 2 ветки:

  • сервисы «внутри телефона» (набор номера, отправка смс, создание заметки, установка времени будильника и т.д.)

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

  • внешний контент  (погода, спорт, кино, поисковые запросы и т.д.).

При подборе внешнего контента мы столкнулись с первой серьезной проблемой –  где его брать  так, чтобы всей стране было полезно? Казалось бы, в апреле Рунет отметил 19 лет, но даже в сети большинство известных сервисов следит за жизнью лишь в Москве и Петербурге, а регионы – каждый сам по себе.

Первая удача – договоренности с ресурсами «Кинопоиск» и «Чемпионат.com», которые раньше других поверили в наш проект. Сегодня такие сервисы, как кино и спорт полностью строятся на предоставленной ими информации. За что нашим партнерам отдельное спасибо.

DevStory: Ассистент на русском DevStory: Ассистент на русском

 

Дело техники

Быстродействие – одна из самых важных задач, которую мы перед собой ставили. Однако, ни для кого не секрет, что модельный ряд Android девайсов огромен. Производители не ленятся придумывать «уникальные» разрешения экрана, начинка аппаратов пугает различными наборами конфигураций. Поэтому, сделать так, чтобы приложение одинаково хорошо работало и на бюджетном аппарате за 4 000 руб., и на флагмане за 30 000 руб.  – задача для прожжённых энтузиастов.

Именно поэтому работа по оптимизации алгоритмов продолжается до сих пор. Если в первой версии нам поступали жалобы от пользователей простых смартфонов по скорости отображения ответа, то в версии «Ассистента на русском» 2.0 жалоб на скорость стало намного меньше. Ключевым изменением стал механизм, при котором распознавание смысла фразы, сказанной пользователем, происходит прямо на девайсе, без отправки информации на сервер.

 

А давайте покажем людям…

После опыта с «Блондинкой» у нас была масса сомнений. И мы задумались, где мы можем собрать фидбек от целевой, прокаченной, хардкорной аудитории Android-пользователей? Подумали и решили стартовать на форуме 4pda. 1 ноября 2012 года мы создали ветку, которая на сегодняшний день имеет более 120 страниц обсуждений. Интерес к продукту и полезная обратная связь превзошли все наши ожидания.

Через неделю мы выложили сборку «Ассистент на русском» в Google Play. За первые 3 месяца на чистом органическом трафике продукт получил 300 000 загрузок и оценку 4,8*.

Надо сказать, мы сильно работали над SEO, благо в Google Play, в отличие от Apple AppStore, индексируются и поле названия, и целиком текст описания. В частности, название было выбрано не случайно – большинство ассистентов, присутствующих на российском рынке являются локализацией, AI движки в них разрабатывались под английский язык. Мы же делали приложение специально  для русскоязычной аудитории, и открыто заявили это в название.

Команда хотела придумать продукту какое-то броское имя, типа «СтарПом», «Сириус», «Скайлер» и другие, гораздо более радикальные, но маркетинг категорически настоял, чтобы в названии было определено ключевое преимущество, что дало дополнительный органический трафик (когда пользователь сам находит приложение по поисковому запросу) и как следствие – аудиторию.

Также мы должны признать, что никаких усилий для платного продвижения продукта до сих пор нам прикладывать не приходилось. Продукт пошел на такой волне, что его заметили обозреватели таких ресурсов как Lifehacker.ru, HT.ua и мы даже появились в видеообзоре AppleInsider: «Что не хватает iOS?».

Даты выходов обзоров и влияние на график загрузок отмечены на графике:

DevStory: Ассистент на русском

А что ж такого в вашем ассистенте примечательного…

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

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

В-третьих, нашим архитектором была предложена идея так называемых альтернатив, когда на один ответ пользователю показывается несколько «карточек». К примеру, в сервисах «Кино» и «Спорт». Основная мысль состояла в том, чтобы дать выбор пользователю и показать варианты ответов, если система не уверена в однозначности смысла запроса на 100%.

DevStory: Ассистент на русском

Ассистент на русском 2.0

В январе 2013 года мы начали работу над новой версией «Ассистента на русском». Дело в том, что программная часть первой версии была не идеальна и ограничивала возможность добавления новых фич.

Мы переписали с нуля движок распознавания текста, обновили архитектуру, плюс, добавили новую функциональность. Например, голосовую озвучку ответов и возможность активации приложения через гарнитуру, что потребовало кропотливой работы – на текущей день в Android есть много внутренних проблем по работе с гарнитурами, особенно Bluetooth.

Сразу после появления на рынке версии 2.0 и выхода обзора на 4pda, мы получали по 8-9 тысяч загрузок приложения в сутки, что позволило ему подняться до 3 места в категории Productivity и войти в TOP 100 Overall в 10 странах мира. Сейчас, в своей категории “Ассистент на русском” занимает 5 место.

DevStory: Ассистент на русском

Залог успеха – работа с аудиторией

Резюмируя, хотелось бы сказать, что «Ассистент на русском» - проект, успех которого обеспечивает наша тесная работа с пользователями. Если бы не вы, то такой популярности у приложения не было бы. За это мы очень благодарны 4pda и его пользователям!

Что очень важно, пользователи писали нам в отзывых не “зачетная штука” или “забавно, можно поиграться”, а давали развернутые, по несколько абзацев, комментарии.

 

Только вперед

Многие из новых фич, которые появляются в приложении, это идеи тех, кто ежедневно пользуется нашим продуктом, прошедшие через сито отбора. Сегодня мы продолжаем работу над «Ассистентом на русском», стараемся развивать его функционал как вглубь (увеличение числа способов запуска приложения – голосом, с помощью сенсоров телефона и т.д.), так и вширь (добавление новых сервисов, развитие текущих).

Если вы еще не пользовались «Ассистентом на русском», вы всегда сможете скачать его по этой ссылке - http://goo.gl/tKHrC