Алиса, Google Assistant, Siri, Alexa. Как писать приложения для голосовых ассистентов
Рынок голосовых ассистентов расширяется, особенно для русскоязычных пользователей. 2 недели назад Яндекс рассказала впервые про платформу Яндекс.Диалоги, 2 месяца назад Google представила возможность писать диалоги для Google Assistant на русском языке, 2 года назад со сцены Bill Graham Civic Auditorium Apple выпустила в открытое плавание SiriKit. Фактически, появляется новая отрасль разработки, где должны быть свои проектировщики, архитекторы и разработчики. Идеальный момент, чтобы поговорить про голосовые помощники и api для них.
Первый пункт — поднять бэкэнд
ВНИМАНИЕ! Android разработчик поднимает сервер на node.js. Слабонервным лучше пропустить эту часть.
Сервер нам нужен для хранения информации о пиццах и для дальнейшего взаимодействия с апи ассистентов. Бэкэнд будет написан на node.js вместе с фреймворком express для настройки веб-приложения. Разворачивать будем на платформе Now от компании Zeit. Платформа бесплатна и проста в использовании. Вводим команду «now» в терминале для старта скрипта деплоя и в ответ получаем ссылку на наше веб-приложение.
Для инициализации проекта используем Express Generator. Результатом генерации будет отличный каркас для веб приложений, но здесь много лишнего для простого апи: шаблоны для страниц, страницы ошибок, папки для ресурсов. Оставим только самое необходимое.
Базу данных использовать не будем. Данные у нас статические, достаточно будет одного объекта в js — список пицц с названиями и ингредиентами.
Добавим метод, который по объекту пиццы будет выводить ее состав. Если же пицца не найдена, то ответом будет меню пиццерии.
Яндекс.Алиса. Начнем с простого
Яндекс.Диалоги — базовая комплектация машины, на которой можно ездить. Но все равно не хватает кондиционера. Платформа от Яндекса идеальна для изучения азов: простая, как три копейки, но при этом содержит в себе концепции, на которых построено большинство ассистентов.
Основная единица платформы — диалоги. Диалоги — скиллы, созданные сторонними разработчиками. Добавить новый функционал в основной разговор с ассистентом не получится. Хотелось бы взять фразу «Алиса, закажи мне пиццу», но пиццерий много. Пользователю придется сказать активационную команду: «Алиса, вызови мне ДоРеМи». Тогда сервис понимает, что нужно переключиться на диалог от «ДоРеМи». Мы принимаем власть в свои руки и управляем процессом на своем сервере, через реквесты и респонсы, используя технологию вебхуков.
Вебхук, по своей сути, POST запрос, который отправляется на сервер. Сервер настроен на прием запроса, его обработку и отправление ответа на url, который указал клиент. Клиент при этом не тратит время на ожидание ответа.
Настройки, которые нужно прописать для создания диалога в личном кабинете: название, тематика диалога, активационное имя и url на сервер.
Дальше только настройка сервера на обработку запросов. Принимаем json, отправляем json. А еще проще, если отбросить все шелуху с приемом json, его парсингом, с извлечением данных и обратными действиями в процессе отправки ответа, то мы принимаем текст пользователя и возвращаем текст Алисы. Добро пожаловать в 70-е, во времена текстовых интерфейсов.
У нас есть строка с командой пользователя. Чтобы возвращать состав пиццы по команде пользователя, нам нужно вычленить название пиццы и в ответ прислать фразу. Вычленять будем обычным string.contains(фраза). Чтобы идея сработала, модернизируем наш список пицц, добавив к ним список основ (морфема слова без окончания), которые могут встречаться в запросе.
Немного изменим функцию, которая возвращает состав пиццы по команде пользователя.
Обрабатываем JSON, отправляем корректный ответ и добавляем кнопку, которая перенаправит пользователя на сайт пиццерии. Кнопки в Алисе — единственная возможность привнести разнообразие в обычный текстовый вывод. На кнопку можно назначить реплику пользователя либо открытие браузера по url. Используйте deep linking, чтобы связать ассистент и приложение в один удобный процесс. Например, при заказе пиццы можно настроить переход на экран оплаты в приложении, где уже сохранены платежные данные или есть возможность оплатить через Google/Apple Pay.
С помощью параметра tts(text-to-speach) можно настроить фонотеку голосового ответа Алисы: ударение, произношение и пробелы. В tts лучше передавать транскрипцию вместо орфографически правильного написания. Например, «пажалуста». Так речь Алисы будет естественнее.
Тестировать диалог проще некуда. В личном кабинете можно поговорить через консоль со своим диалогом и почитать json’ы.
На данный момент диалог в стадии черновика. Следующим шагом будет публикация в каталоге Яндекса. Перед публикацией он проходит проверку на соответствие требованиям Яндекса: достоверность информации, грамотность, этичность и остальные формальные качества.
Google Assistant. Новый уровень
Если Диалоги — это базовая комплектация автомобиля, то Actions on Google — комплектация с массажным креслом, автопилотом и персональным водителем, инструкция к которым прилагается на китайском языке. Инструмент от Google сильнее, богаче, но сложнее. И входной порог в технологию выше. У Яндекса гениально лаконичная и простая документация. Про Google сказать такое не могу. Actions on Google построен на тех же аксиомах, что и Диалоги: активационная команда, общение через апи, использование вебхуков, отделение стороннего диалога от основного.
Простота — главное преимущество и проблема Диалогов. Проблема в том, что всю архитектуру нужно строить самому. Простейший алгоритм вычленения частей из текста пользователя, реализованный выше, нельзя расширить на новые команды. Приходиться изобретать велосипеды. В такие моменты понимаешь, почему графический UI до сих рулит. Но Google реализовал продукты, которые освобождают разработчика от скучных скриптуемых процессов: классификация команд пользователя и работа с реквестами и респонсами. Первая задача решается фреймворком DialogFlow aka Api.Ai, вторая — объемной библиотекой под node.js. Нам остается подсоединить апи к Actions через node.js. На первый взгляд, что это лишнее усложнение, но сейчас я покажу, что этот подход выигрывает в проектах, где команд больше, чем одна.
DialogFlow решает типичную задачу машинного обучения — задачу классификации, в нашем случае классификация пользовательских команд по категориям. Для понимания и настройки работы фреймворка разберем два понятия из терминологии DialogFlow. Первое — Entities или сущности. Например, марки машин, города или названия пиццы. В настройках сущности мы указываем примеры сущности и ее синонимы. Алгоритм будет пытаться зацепиться за сущность на уровне основ слов. В случае успеха Google пришлет ее на сервер в качестве аргумента.
Второе понятие — Intents или действия — категории, по которым DialogFlow будет классифицировать команды пользователя. Мы добавляем примеры команд, по которым будет определяться интент. В примерах команд лучше использовать примеры сущностей, которые были добавлены на первом шаге. Так алгоритму будет проще научиться вычленять нужные нам аргументы. Главная фишка DialogFlow — на основе введенных шаблонов нейросети Google тренируются и генерируют новые ключевые фразы. Чем больше шаблонов мы добавим, тем корректнее будет определяться интент. Не забудем добавить идентификационное имя для интента, которым мы будем дальше пользоваться в коде.
У интента есть имя, есть список параметров. Не хватает возвращаемого значения. В настройках можно добавить статические ответы. Динамические ответы — зона ответственности js кода. Далее я буду расхваливать вторую вещь, которая делает подход гугла еще круче — официальная библиотека к node.js. Она лишает радости парсить json и заниматься маршрутизацией интентов через длинные if’ы или switch-case блоки.
Инициализируем объект DialogflowApp, в конструктор передадим request и response. Через метод getArgument() мы получаем сущность из команды, с помощью tell() передаем ответ помощника, через handleRequest() настраиваем маршрутизацию в зависимости от интента.
DialogflowApp сделает всю грязную работу за нас. Нам остается только подготовить данные для вывода. А теперь представьте, как это облегчает работу, когда нам нужно настроить заказ пиццы, вывод меню или статуса заказа, поиск ближайшей пиццерии и еще пару команд. Сколько человеко-часов экономим этой технологией!
Первичное тестирование ответов мы можем провести сразу в личном кабинете.
Для более скрупулезного тестирования есть симулятор или девайс с Google now.
Ответ в Google Assistant может состоять не только из текста, но и разных ui элементов: кнопки, карточки, карусели, списки.
На этом стоит остановиться. Дальнейшие тонкости технологии — материал на несколько статей. Те основы, которые были рассказаны сейчас, уже дают огромную пользу в построении своего приложения для Google Assistant. Закон Парето в действии.
Apple SiriKit. Кратко о том, почему Siri отстает
Если Диалоги — это базовая комплектация автомобиля, а Actions on Google — полная комплектация, то SiriKit — это метро с двумя станциями на всю Москву.
Две особенности, которые делают подход Apple не таким, как все — привязанность к основному приложение и обязательное соответствие одному из сценариев использования, прописанных Apple, то есть полное отсутствие кастомизации разговора. По первому пункту все понятно — без основного приложение на девайсе не будет диалога в Siri. Ваш диалог лишь дополнение к приложению.
Второй пункт является главным недостатком SiriKit. Все диалоги, весь текст уже прописан. Можно только добавить немного синонимов в вокабуляр Siri или сверстать виджет, который появится по запросу. Это единственная свобода, которую дает Apple.
Вам повезло, если вы хотите сделать что-то похожее на команды из скриншота ниже. Нам не повезло.
Если на WWDC 2018 Apple не поменяет кардинально подход к кастомным диалогам, то тогда Siri так и останется внизу топа. Голосовые помощники — это операционные системы будущего. Систему делают крутой приложения. Когда их нельзя нормально сделать, система проигрывает. Именно из-за этого IOS в топе. Именно из-за этого Siri отстает в гонке.
Экспертное мнение. Про Amazon Alexa, продакшн и будущее.
Думаю, что голосовая разработка на нашем рынке в ближайшее время перейдет из развлекательной штуки во что-то серьезное, в продакшн. Точкой отсчета, скорее всего, будет официальный анонс русскоязычного Google Assistant, то есть Google I/O 2018. Надо морально подготовиться и поучиться у западных коллег. Расспросил нашего друга, Максима Кокоша, Team Lead-а из Omnigon. Он работал с Assistant и Alexa.

Максим Кокош, Team Lead Omnigon
Расскажи в общих словах, что ты разрабатывал?
Я занимался доработкой одного скилла для Alexa и портированием другого c Alexa на Actions on Google при использовании DialogFlow. Причем в очень сжатые сроки, неделя была на портирование, неделя на доработку Alexa скила.
Про Амазоновский проект мы ничего не знаем.
Вот ты в статье написал про Алису, Siri, Google Assistant, а про Alexa нет. Это как сравнивать Android и Symbian и забыть про iOS.
Alexa — главный конкурент Google. Как показывает продакшн, пользователей у нее значительно больше. Комьюнити сильно больше. Документации больше. Да и самих скиллов тоже заметно больше.
Кстати, я бы не стал подход Алисы называть автомобилем. Двухколесная повозка на ослиной тяге, это максимум. По сравнению с Google Actions и Alexa, там все совсем плохо. Парсить руками string’и в 2018 году звучит как дикость.
Как ты думаешь, почему аудитория у Alexa намного больше?
Мне кажется, это из-за того, что Google позже вступил в игру. Очень мало вкладывается в рекламу. Хотя судя по тому, что ассистент есть или может быть установлен почти на каждом Android устройстве, они могли бы стать популярней.
В чем особенности Alexa?
В Alexа удобно работать с состоянием в рамках сессии. Например, ты просишь включить свет в ванной. Получается Intent «Включить свет», а entity — ванная. Затем ты говоришь: «Выключить». И вот тут нам пригодится контекст внутри сессии. Во время обработки интента мы можем выставить состояние «bathroom» и использовать его при получении следующих интентов. У Google есть Follow-up интенты, отвечающие аналогичным целям, но они не такие гибкие.
У Alexa явно говорится, как установить скиллы. Это знакомый пользователю подход — магазин скиллов. У Google скилы ставятся автоматически.
Review процесс очень строгий на обеих платформах. Ревьюверы следят, чтобы каждый response заканчивался точкой, чтобы взаимодействие с пользователем выглядело натурально, для этого у каждой платформы есть свои гайдлайны, чтобы не было грамматических ошибок, даже в описании, а текста там очень много. Ревью от Amazon обычно занимало 2-3 дня, в Google справились за 1 день.
Сама разработка Google Actions показалось более простой: захостил на Firebase action, подключил его в 2 клика, и вот у тебя уже все готово к разработке. Если ты хочешь делать запросы наружу, нужно платить. Если будешь обращаться только к сервисам Google, то можно и бесплатно. AWS, ввиду большей загруженности, выглядит запутанней.
У Google можно ботов делать при помощи Google таблиц, функциональность весьма ограничена, однако позволяет писать ботов без скилов программирования и подойдет для мелких задач.
DialogFlow также в теории позволяет в один клик подключать твоих ботов к слаку, Telegram, Cortana и тому подобному. Там куча интеграций, правда коллаборация с Alexa не работает.
В принципе, имея знания об Actions on Google, можешь работать с Alexa.
Мы с тобой люди из мобильной сферы. Отличаются ли бизнес-процессы мобильной и голосовой разработки?
На мой вкус, процесс весьма похож, интенты можно рассматривать как экраны, entity — как данные в них, также есть система состояний. С точки зрения тестирования тоже все похоже: требуется корректная обработка случаев с потерей интернета, неожиданных респонсов от API и т.д.
Может ли разработка диалогов стать такой же популярной, как сейчас мобильная разработка?
Мне кажется, ассистенты не смогут достичь популярности мобильных приложений, ибо не все сценарии можно переложить на устное взаимодействие + с экрана информация воспринимается намного быстрее, чем на слух. Также не всегда у пользователя есть возможность устно вести диалог с ассистентом, особенно когда это касается sensitive данных. Голосовые ассистенты могут быть достаточно утилитарны, например, «закажи такси» или «закажи пиццу», но надолго увлечь пользователя вряд ли удастся. Это, скорее, эффектное дополнение к дому или автомобилю.
Какое будущее у голосовых ассистентов?
Голосовые ассистенты займут свою нишу и достаточно большую. И станут таким же обычным делом, как Android Auto и CarPlay среди машин. Уже продано 20 миллионов Amazon Echo девайсов и 4.6 миллиона Google Home девайсов. Не стоит забывать, что множество Android-телефонов оборудованы Google Assistant.
Макс, спасибо большое за подробные ответы.
Надеюсь, они хоть как-то помогут. 🙂
Что нас ждет впереди
Всем диалоговым платформам есть куда расти, потолок еще далеко. Давно не было интриги в битве за наш голос.
Что такое Google Ассистент и что он может делать
В мире, полном виртуальных помощников, Вы, вероятно, знаете про Google Ассистент. На рынке полно устройств, которые поддерживают его, но что это такое, для чего он нужен и стоит ли его использовать?
Краткая история
У Google Ассистента было очень скромное начало. Он появился в мае 2016 года в составе нового приложения Google для обмена сообщениями Allo и оригинальной колонки Google Home. В колонке впервые проявились способности Ассистента. Люди могли просто использовать свой голос, чтобы получить доступ к обширной базе знаний Google.
Вскоре после первого выпуска Google Ассистент был запущен как встроенная функция в оригинальные смартфоны Google Pixel. Через несколько месяцев он начал появляться и на других смартфонах Android и умных часах Wear OS. К 2017 году Google Ассистент был запущен как приложение для iPhone и iPad.
Google Ассистент теперь является преемником предыдущего виртуального помощника компании, Google Now. В то время как Google Now ориентирован в первую очередь на отображение информации без Вашего участия, Ассистент добавил важную возможность двустороннего общения.
Виртуальный помощник был доступен в основном только на смартфонах и умных колонках в течение первых нескольких лет. Но в 2018 году Google Ассистент распространился на другие устройства. Google Ассистент теперь можно найти в телефонах, колонках, автомобилях, часах, домашних устройствах и многом другом.
Что умеет Google Ассистент
У Google Ассистента есть длинный список функций и возможностей. На самом базовом уровне он отвечает на вопросы. Вы можете спросить простые вещи, например: «Какая столица России?» или «Сколько лет Майклу Джордану?» Когда Вы выполняете поиск в Google на своем компьютере или телефоне, Вы часто видите поле вверху результатов — именно здесь Google Ассистент получает ответы.
Google Ассистент еще более полезен, когда дело касается личных результатов. Если Вы разрешите ему доступ к Вашей учетной записи Google и другим сервисам, он сможет предоставить больше, чем просто общую информацию. Например, Вы можете спросить, есть ли в Вашем календаре какие-либо события, узнать прогноз погоды, отправить сообщения и многое другое.
Google Ассистент также невероятно полезен с устройствами умного дома. Он может взаимодействовать с рядом популярных брендов умного дома, включая Philips Hue, SmartThings, Nest, Ring, WeMo и многие другие. Просто найдите логотип «Работает с Google Ассистентом» или «Работает с Google Assistant».
Конечно, он также соединяется с другими продуктами Google, такими как Chromecast.
После подключения любого из этих устройств Вы сможете управлять ими через Google Ассистента. Это означает, что Вы можете сказать «Окей, Google, выключи свет».
Еще одна вещь, которая поставляется с интеграцией умного дома, — это приложение Google Home (Android/iPhone/iPad), которое становится Вашим центральным узлом для всех устройств.
Google Ассистент на русском
Макс Любин
Сбылось всё то, о чем мы так долго мечтали, нет, что-то слишком пафосно… В общем, Google Ассистент наконец заговорил на русском языке. Покривлю душой, если скажу, что все ждали этого с нетерпением. На самом деле, это событие оказалось интересным в первую очередь энтузиастам технологий и гикам, доля которых среди основной массы пользователей устройств на базе Android исчезающе мала. Может быть, для кого-то это окажется неожиданностью, но многие рядовые пользователи устройств на базе Android даже не подозревают что в их смартфонах есть какой-то там Ассистент. Несмотря на это, новость всё равно важная и заслуживает того, чтобы рассказать о ней подробнее.
Итак, несколько дней назад пользователи начали отписываться в комментариях в Play Market о том, что ассистент заговорил на русском языке. Изменилось и название приложения, и первое время выглядело это забавно — «Google Ассистента«. Да, именно так, с буквой «а» в конце. Качество локализации на недосягаемом для конкурентов уровне. 🙂
Буквально на следующий день это поправили, и приложение стало носить гордое имя «Google Ассистент». После установки в списке приложений вы увидите значок с подписью «Ассистент», без всяких «Google» в конце либо в начале.
Само приложение весит сущие пустяки — меньше мегабайта — и скачивается моментально.
После установки запускается в виде всплывающего окна, предлагая сразу озвучить голосовую команду, ненавязчиво подсказывая задать вопрос о том, что он умеет, при этом внимательно вас слушая, о чем говорят волнообразно колеблющиеся цветные точки в нижней части экрана.
Собственно, ассистент уже готов к работе. Можно начинать терроризировать его в меру умными и не очень вопросами.
Но это позже, а для начала давайте пробежимся по основным настройкам программы, которые, к слову, не изменились по сравнению с временами, когда Ассистент не знал русского языка.
В нижней части экрана находятся три иконки, это:
Окно программы можно развернуть на весь экран, если потянуть его вверх за верхний край. После этого вы попадете в расширенную историю ваших обращений к Ассистенту, а также к горизонтальному списку популярных запросов из сети.
Если тапнуть на синюю иконку в правом верхнем углу окна, то перед вами откроется обзор основных функций ассистента с поисковой строкой, в которой можно найти эти самые функции. Эдакая рекурсия — поиск по поиску. 🙂
Ниже в списке будут разделенные по блокам популярные запросы к ассистенту от других пользователей, а также возможность просмотреть эти запросы по разным категориям и развернуть историю ваших действий. Собственно, ничего примечательного, кроме того, что чтение чужих запросов иногда может вызвать улыбку.
В развернутом состоянии синий значок в правом верхнем углу сменится на три точки контекстного меню. в котором можно просмотреть информацию о своем аккаунте, а также настроить программу. Кстати, настройки зачастую оказываются перекрестными, и попасть в один и тот же пункт можно разными путями.
Вместо перечисления имеющихся настроек предлагаю вашему вниманию скриншоты, на которых всё видно. Подробнее остановимся только на части настроек.
Одна из таких настроек — возможность записать транслитерацией псевдоним, которым программа будут обращаться к вам. Необычная функция.
Также хотелось бы отметить один неприятный для меня момент — в разделе выбора основного музыкального сервиса, с которым может взаимодействовать Ассистент, нельзя выбрать, например, любимый мной Spotify, несмотря на то, что пункт выбора стороннего приложения есть. При нажатии на пункт ничего не происходит, и выбор так и остается ограничен Google Play Музыкой и YouTube.
Может быть, это у меня кривые руки и телефон? Напишите в комментариях, получилось ли у вас выбрать сторонний музыкальный сервис.
В разделе «Персональная настройка» есть один любопытный пункт, который на данный момент, увы, недоступен на русском языке, — «Продолжение разговора». Это тот самый пункт, который позволяет приложению услышать и выполнить ваши уточняющие вопросы, которые можно задать после ответа на основной вопрос.
Нечто подобное Google Поиск умел и ранее, однако для контекстного ответа нужно было активировать поиск вручную. Тут же подразумевается, что Ассистент продолжит слушать вопросы после ответа. Остается только ждать, когда функция станет доступна на русском.
В разделе «Телефон» нас неожиданно поджидают все настройки, связанные с голосовым вводом.
При нажатии на часть настроек приложение перебрасывает нас в браузер, в раздел настроек аккаунта.
Теперь перейдем к тому, ради чего мы здесь собрались, — к тестированию функций, которые можно выполнить с помощью голосовых команд на русском языке.
Кроме выполнения разнообразных голосовых команд, Ассистент, как и Google Now, умеет разблокировать устройство, даже когда экран телефона выключен. Кстати, при установке Ассистент заменяет собой этот самый Google Now.
Как человек, впечатленный рекламной презентацией Google, в которой нам показали, как Ассистент записывает своего хозяина к парикмахеру, я тоже срочно решил подстричься (не то чтобы сильно оброс, просто впечатлительный и легко попадаю под влияние маркетологов).
Увы, похоже, что ассистент считает мою нынешнюю прическу хорошей, так как отказался записывать меня на стрижку. Единственное, чего удалось от него добиться, это несколько ссылок на смешные видео, связанные со стрижкой. Ну, ничего, первая неудача меня не сломила, и я решил снова попытать счастья и сделать так, «чтобы как в рекламе».
Просим Ассистента купить мне билеты в кино… Ага, название кино нашлось, а вот билеты не очень. Похоже, что русскоговорящий Ассистент пока еще только учится, чтобы стать таким же полезным, как его заокеанский собрат, говорящий на диалекте языка Байрона и Шекспира. Что ж, мы люди не гордые — подождем.
К слову, традиционные задачи, такие, как узнать погоду, проложить маршрут до определенного места, написать сообщение и даже позвонить кому-то, не вызывают у Ассистента трудностей и получаются легко и непринужденно. Но это скорее заслуга предыдущего сервиса (Google Now), преемником и идейным продолжателем которого стал Ассистент.
Но это всё банальщина и скучные прикладные функции, которые большинству не особо-то и нужны. 🙂
Попробуем то, зачем большинство качает Ассистента, — поболтать с электронным другом на свободные темы и выяснить, кто же лучше умеет «в разговоры», Алиса, Siri или Ассистент.
Эх, если бы работала функция продолжения разговора…
А так ответы бездушной машины на неожиданные вопросы оказались такими же бездушными. Ну, сами посудите, экая невидаль, ответить клише на вопрос про конкурента.
В процессе всего этого безобразия был только один момент, когда появилось легкое ощущение того, что машина тоже умеет шутить, — когда после моей подначки Ассистент сначала ответил что-то про перерывы у муравьёв, и при следующем запросе пошевелил шариками и ничего не открыл — неужели и правда обиделся? Может, просто совпадение и команда не сработала, но получилось интересно.
А в целом, с точки зрения «просто поболтать», Ассистент намного скучнее, чем та же Алиса и даже чем Siri. Его юмора и «свободы мышления» хватает на несколько банальных шуток и заранее записанных ответов, без изюминки. Так что это в первую очередь инструмент и лишь самую малость развлечение.
Заключение
Первое словосочетание, которое появляется в голове после знакомства с русскоязычным Ассистентом, — завышенные ожидания.
Во время прошедшей ранее презентации новых функций англоязычного Ассистента всё выглядело настолько впечатляюще, что заставляло российскую часть журналистов и простых зрителей сидеть с открытым ртом и буквально жаждать запуска этих чудес на русском языке. Однако сегодня для русскоязычного пользователя большинство этих технологических чудес остаются всё еще недоступными. Причем недоступными остаются самые интересные и ожидаемые функции, например, при наборе текста сообщения Ассистент все еще не умеет расставлять знаки препинания. По факту, запуск Ассистента на русском языке оказался громким только на бумаге, и российский пользователь не получил ровным счетом ничего нового, чего бы не умел Google Now. Остается надеяться, что в Google всё же видят в российском рынке перспективы для запуска полноценных версий своих сервисов и в ближайшем времени добавят поддержку всех вау-инструментов на русском языке.
































