Обновленный Google Now для iPhone — прощай, Siri. Аналог "Сири" для "Андроид": обзор голосовых ассистентов

В 2011 году Apple произвела новую революцию - их смартфон заговорил. Появление «Сири» ознаменовало новую эру управления гаджетами. Люди смогли обращаться к своим гаджетам, как к человеку, запрашивая у них важную (и не очень) информацию. Погоду, напоминания и свежую почту теперь можно узнать не переходя от приложения к приложению. Естественно, другие технологические компании и производители смартфонов не могли остаться в стороне и решили показать схожие решения, в разной степени лучше или хуже «Сири». В этом материале поговорим о лучших аналогах Siri для Android, насколько далеко шагнул прогресс и на что эти аналоги способны.

Google Now

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

Google Assistant

«Ассистент» - это новый этап развития Google Now. Это Siri для «Андроид» в лучшем исполнении. Ассистент не просто умнее своего предшественника, но и гораздо функциональнее. С его помощью можно создавать напоминания, события в календаре и отправлять сообщения. Захотели вдарить рока по пути на работу? Попросите «Ассистента» включить вам ТОП лучших треков в жанре и он составит для вас идеальный плейлист.

Не понимаете что за слово написано на вывеске? Попросите «Ассистента» перевести его на ваш язык, ведь он прекрасен в роли лингвиста и знает больше 100 языков.

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

Cortana

Microsoft в последнее время славится своими бесконечными (и неудачными) попытками догнать оппонентов, внедряя похожие функции в свои устройства и гаджеты конкурентов. Не постеснялись Microsoft сделать и некий аналог «Сири» для «Андроид». Зовут ее Cortana (это отсылка к одному из персонажей в игре Halo). По сути, эта помощница почти ничем не отличается от конкурентов. Microsoft предприняли попытку усидеть сразу на двух стульях, посему в интерфейсе есть и умные карточки, подстраивающиеся под конкретного пользователя, и человечная девушка-собеседник, создающая ощущение живого общения.

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

Bixby

Вот уж кто действительно давно должен был скопировать идеи конкурентов, так это Samsung. В 2017 году, вместе с Galaxy S8, корейские инженеры продемонстрировали нам свои собственные разработки в области искусственного интеллекта, которого назвали необычным именем Bixby. Что интересно, Bixby - это не просто аналог «Сири» для «Андроид». Это целый комплекс самообучающихся служб, готовых давать подсказки в течение дня и находить полезную информацию. Функциональность не сильно отличается от «Ассистента Google» и самой Siri, поэтому поговорим о важных отличиях.

Во-первых, Bixby понимает контекст и обладает когнитивной толерантностью. То есть если вы спросили его кто такой Марлон Брандо, а затем, в каких фильмах он снимался, не упоминая имени, то Bixby, проанализировав ваш диалог, сам поймет о ком идет речь. Во-вторых, Bixby умеет искать информацию с камеры. Это значит, что достаточно навести ее на какую-то вещь или объект - и Bixby тут же расскажет вам о нем все, что знает интернет.

«Яндекс. Алиса»

Ну и последний аналог «Сири» для «Андроид» на русском языке - это «Алиса». «Яндекс» уже давно развивал идею искусственного интеллекта и распознавания речи, поэтому было ясно, что рано или поздно подобный проект увидит свет. Алиса умеет все, что умеют другие помощники, но при этом адаптирована под российский рынок и ищет информацию в сервисах Яндекс. Алиса также, как и Bixby, понимает контекст, но только в некоторых темах. В большинстве случаев она способна ответить лишь на один вопрос. Алиса может спеть для вас песню или смешно пошутить, если вам стало скучно, а может искать важную информацию в «Википедии» не заставляя вас переходить к поиску и самой статье. Не обошлось и без ошибок в произношении, но с учетом того, что «Яндекс» все-таки отечественная компания, можно быть уверенным, что все недочеты быстро поправят.

И Siri давно стали показателем в войне между Google и Apple, всё потому, что разработка ассистента требует немалых усилий и времени, она показывает опыт компании и её возможности. Плюс ко всему показательна эта битва еще и по причине своей навязчивости. Наверное, каждый из вас хоть раз пробовал ассистента в действии, после чего у вас складывалось определенное мнение относительно системы в целом. Почему в целом? Потому что именно такие вещи составляют полную картину.

Разработка ассистентов интересна тем, что их можно улучшать почти беспрерывно, добавляя в базу новые ответы на те или иные вопросы, другими словами, разработка хорошего ассистента может продлиться десятилетиями, ведь это очень кропотливый труд. Конечно, пройти в офис, где работают над Siri или Google Now, нам никто не позволит, но, вероятно, они (улучшения) происходят именно таким способом. Главное — создать некую основу, базу. Именно поэтому производители почти одновременно представили своих ассистентов, потому что, если немного опоздать, потом уже не догнать.
В этой статье мы остановимся лишь на сравнении двух умов, однако в дальнейшем не стоит исключать присоединения новых виртуальных друзей.
Siri мне, как автору, нравится больше, и сейчас объясню, почему. Всё дело в её правдоподобности, вот, к примеру:

Сказав «Привет», Google Now открывает нам поисковую страницу, говорить об умственных способностях тут не приходится. Реализовать эту функцию не проблема, однако, как мне кажется, Google или хочет идти по другому пути, нежели Siri, или же, несмотря на других, строит свой взгляд на то, каким должен быть Now. Но ведь ассистент должен кроме помощи быть неким товарищем, другом, как бы это странно ни звучало. Может быть у Google cтрах перед развитием виртуального разума? Не думаю.
И это не единственный пример, Siri хоть и понимает пока не все сказанное, но даже сейчас она гораздо более человечнее, живее, чем её конкурент. А в сухом сравнении в виде «Сколько будет 5+5 » и прочих вещах оба ассистента должны вести себя одинаково. Это не должно быть преимуществом того или иного ассистента. Поэтому в этом случае я за Siri, они движутся в правильном направлении.
Между тем сравнение естественных для ассистентов функциональных возможностей мы проведем:

А вот интересный момент. При создании заметки Siri успешно предлагает продиктовать ей заметку, тогда как Google Now никакими действиями не даёт понять, как нужно продиктовать заметку. Если сказать просто «Создай заметку», вам придется вносить её вручную, если же сказать «Создай заметку привет друг», она создастся, но не логично, правда? Нужно, чтобы ассистент направлял и помогал пользователю, а здесь всё запутано — «Думайте сами».
Но это еще не самое интересное. После создания заметки вы не сможете её удалить в обоих случаях, однако если Siri скажет «Мне очень жаль, я не могу пока удалять заметки» и если спросить её «Почему?», в ответ услышим «Интересный вопрос», Google Now в моём случае распознал это как требование создать новую заметку и во второй раз обратился к поиску. Потом верьте тем, кто говорит, что Google Now продвинутая система, — нет и еще раз нет. Суть ведь не в том, умеете ли вы выполнять что-либо или нет (изначально подразумевается возможность ассистентов выполнять все функции в равной степени, в действительности так и выходит), главное — правильно выкрутиться и увильнуть от ответа, сделать себя похожим на человека, ведь ты — ассистент.

Также хотим отметить удобство Siri. В случае с Google Now мы должны перейти в настройки, между тем Siri предлагает напрямую в виде карточки изменить яркость или включить Wi-Fi в самом окне голосового помощника, удобно.
Сравнение футбольных матчей я не проводил, так как не являюсь ярым фанатом данного вида спорта, однако такая возможность имеется, но фактической пользы она не несет тем, кому не важен спорт.
Какие итоги? Спустя несколько лет после старта вектор развития виртуальных ассистентов разделился на две части: создание человекоподобной системы и реализация ассистента, способного производить лишь определенные действия и не рассчитанного на сторонние вопросы. Называть в таком случае Google Now ассистентом язык не повернется, это просто голосовой поиск, отчасти помощник в виде включения Wi-Fi и прочих элементарных вещей.
Хотелось бы услышать и вашу точку зрения, которая, конечно, может и наверняка будет не совпадать с моей.

Рынок голосовых ассистентов расширяется, особенно для русскоязычных пользователей. 2 недели назад Яндекс рассказала впервые про платформу Яндекс.Диалоги, 2 месяца назад Google представила возможность писать диалоги для Google Assistant на русском языке, 2 года назад со сцены Bill Graham Civic Auditorium Apple выпустила в открытое плавание SiriKit. Фактически, появляется новая отрасль разработки, где должны быть свои проектировщики, архитекторы и разработчики. Идеальный момент, чтобы поговорить про голосовые помощники и api для них.

В этой статье не будет подробных туториалов. Это статья об идеях и интересных технических деталях, на которых построены инструменты для сторонних разработчиков основных игроков рынка: Apple Siri, Google Assistant и Алисы от Яндекса.

Теорию без практики изучать скучно. Представим, что перед нами стоит задача от только что придуманной пиццерии «ДоРеМи». Руководство компании хочет, чтобы покупатель имел возможность узнать меню пиццерии и заказать пиццу голосом. Заказ еды оставим на вторую итерацию, а сейчас займемся меню. Добавим команду «Что входит в состав <Название пиццы>?». Если пользователь вводит некорректную команду, то вывод будет состоять из списка пицц. Задача простая. Идеально подходит, чтобы изучить технологию и подготовиться к дальнейшему расширению.

Первый пункт - поднять бэкэнд

ВНИМАНИЕ! Android разработчик поднимает сервер на node.js. Слабонервным лучше пропустить эту часть.

Сервер нам нужен для хранения информации о пиццах и для дальнейшего взаимодействия с апи ассистентов. Бэкэнд будет написан на node.js вместе с фреймворком express для настройки веб-приложения. Разворачивать будем на платформе Now от компании Zeit . Платформа бесплатна и проста в использовании. Вводим команду «now» в терминале для старта скрипта деплоя и в ответ получаем ссылку на наше веб-приложение.

Для инициализации проекта используем Express Generator. Результатом генерации будет отличный каркас для веб приложений, но здесь много лишнего для простого апи: шаблоны для страниц, страницы ошибок, папки для ресурсов. Оставим только самое необходимое.

Базу данных использовать не будем. Данные у нас статические, достаточно будет одного объекта в js - список пицц с названиями и ингредиентами.

Const pizzas = [ { name: "Маргарита", ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Томаты", "Базилик"] }, { name: "Пепперони", ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Пепперони"] }, { name: "Вегетарианская", ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Грибы", "Маслины", "Зеленый перец", "Сыр Фета", "Томаты", "Орегано"] }, { name: "Четыре сыра", ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Сыр пармезан", "Сыр Чеддер", "Сыр Блючиз"] }, { name: "Гавайская", ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Куриное филе", "Ананасы"] }, ];
Добавим метод, который по объекту пиццы будет выводить ее состав. Если же пицца не найдена, то ответом будет меню пиццерии.

Const pizzaInfo = { getPizzaInfoByPizzaName: function (pizza) { const wrapName = name => `"${name}"` if (!pizza) { const pizzaNames = pizzas.map(pizza => wrapName(pizza.name)).join(", ") return `В ассортимент пиццерии "ДоРеМи" входят пиццы ${pizzaNames}. Могу рассказать состав каждой пиццы.` } const ingredients = pizza.ingredients.map(ingredient => ingredient.toLowerCase()).join(", ") return `В пиццу ${wrapName(pizza.name)} входят ${ingredients}.` }, };

Яндекс.Алиса. Начнем с простого

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

Основная единица платформы - диалоги. Диалоги - скиллы, созданные сторонними разработчиками. Добавить новый функционал в основной разговор с ассистентом не получится. Хотелось бы взять фразу «Алиса, закажи мне пиццу», но пиццерий много. Пользователю придется сказать активационную команду: «Алиса, вызови мне ДоРеМи». Тогда сервис понимает, что нужно переключиться на диалог от «ДоРеМи». Мы принимаем власть в свои руки и управляем процессом на своем сервере, через реквесты и респонсы, используя технологию вебхуков.

Что такое вебхуки?

Вебхук, по своей сути, POST запрос, который отправляется на сервер. Сервер настроен на прием запроса, его обработку и отправление ответа на url, который указал клиент. Клиент при этом не тратит время на ожидание ответа.

Работает примерно так.

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


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

Дальше только настройка сервера на обработку запросов. Принимаем json, отправляем json. А еще проще, если отбросить все шелуху с приемом json, его парсингом, с извлечением данных и обратными действиями в процессе отправки ответа, то мы принимаем текст пользователя и возвращаем текст Алисы. Добро пожаловать в 70-е, во времена текстовых интерфейсов.

У нас есть строка с командой пользователя. Чтобы возвращать состав пиццы по команде пользователя, нам нужно вычленить название пиццы и в ответ прислать фразу. Вычленять будем обычным string.contains(фраза). Чтобы идея сработала, модернизируем наш список пицц, добавив к ним список основ (морфема слова без окончания), которые могут встречаться в запросе.

Const pizzas = [ { name: "Маргарита", base_name: ["маргарит"], ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Томаты", "Базилик"] }, { name: "Пепперони", base_name: ["пепперони", "пеперони", "пепирони"], ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Пепперони"] }, { name: "Вегетарианская", base_name: ["вегетариан"], ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Грибы", "Маслины", "Зеленый перец", "Сыр Фета", "Томаты", "Орегано"] }, { name: "Четыре сыра", base_name: ["четыр", "сыр"], ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Сыр пармезан", "Сыр Чеддер", "Сыр Блючиз"] }, { name: "Гавайская", base_name: ["гавай"], ingredients: ["Тесто", "Томатный соус", "Сыр Моцарелла", "Куриное филе", "Ананасы"] }, ];
Немного изменим функцию, которая возвращает состав пиццы по команде пользователя.

GetPizzaInfoByUserCommand: function (command) { command = command.toLowerCase(); const pizza = pizzas.find(pizza => (pizza.base_name.some(base => (command.indexOf(base) !== -1)))) return this.getPizzaInfoByPizzaName(pizza) },
Обрабатываем JSON, отправляем корректный ответ и добавляем кнопку, которая перенаправит пользователя на сайт пиццерии. Кнопки в Алисе - единственная возможность привнести разнообразие в обычный текстовый вывод. На кнопку можно назначить реплику пользователя либо открытие браузера по url. Используйте deep linking, чтобы связать ассистент и приложение в один удобный процесс. Например, при заказе пиццы можно настроить переход на экран оплаты в приложении, где уже сохранены платежные данные или есть возможность оплатить через Google/Apple Pay.

Var express = require("express"); var pizzaInfo = require("../pizza/pizza_info.js"); var router = express.Router(); /* GET home page. */ router.use("/", function (req, res, next) { const body = req.body; const commandText = body.request.command; const answer = pizzaInfo.getPizzaInfoByUserCommand(commandText); res.json({ "response": { "text": answer, "buttons": [{ "title": "Заказать", "url": "https://doremi.fake/" } ], "end_session": false }, "session": { "session_id": body.session.session_id, "message_id": body.session.message_id, "user_id": body.session.user_id }, "version": body.version }) });
С помощью параметра 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() настраиваем маршрутизацию в зависимости от интента.

Const express = require("express"); const Assistant = require("actions-on-google").DialogflowApp; const pizzaInfo = require("../pizza/pizza_info.js"); const app = express.Router(); // запрос на обработку вебхуков app.use("/", function (req, res, next) { // Инициализируем API.AI assistant объект. const assistant = new Assistant({request: req, response: res}); const ASK_INGREDIENTS_ACTION = "listOfIngredients"; // Название интента const PIZZA_PARAMETER = "pizza"; // Название сущности function getIngredients(assistant) { let pizzaName = assistant.getArgument(PIZZA_PARAMETER); // Respond to the user with the current temperature. assistant.tell(pizzaInfo.getPizzaInfoByUserCommand(pizzaName)); } // Настраиваем маршрутизацию let actionRouter = new Map(); actionRouter.set(ASK_INGREDIENTS_ACTION, getIngredients); assistant.handleRequest(actionRouter); }); module.exports = app;
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, ввиду большей загруженности, выглядит запутанней.

После недавнего появления в публичном доступе «Алисы» — ассистента от Яндекс, русскоязычные пользователи дружно бросились сравнивать наше чудо технической мысли c западной коллегой и конкуренткой – «Siri» от Apple.

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

Зачем вообще нужен голосовой помощник?

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

Где взять это чудо?

Чтобы свой помощник был и у вас, следует установить на смартфон приложение Яндекс.Алиса , поддерживаются операционные системы Android и iOS. Персональные компьютеры на базе Windows так же не остались обделенными, но на этой платформе еще продолжается бета-тестирование ассистента.


Чем отличается Сири от Алисы?

Алиса смотрится заведомо выигрышнее при взаимодействии с приложениями за авторством Яндекса, но в ближайшем будущем эта нейросеть освоит продукты других компаний и расширит на них свой функционал — некоторые социальные сети (в частности ВК) доступны уже сейчас.

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

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

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

Тестирование запросов

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

Информационные запросы в целом оказались по силам обеим дамам.

Если вас интересует личное мнение ассистента, то Алиса тут имеет преимущество – у нее оно есть, Сири же способна только предоставить мнение из интернета.

В качестве навигатора Алиса так же выглядит предпочтительнее, но это не удивительно – общий родитель с Яндекс.Картами явно уделил этому аспекту немало внимания.

Алиса умеет самостоятельно пересказывать новости, мы видим результаты деятельности нейросети, Сири традиционно сбрасывает нам статью из интернета.
В общем, несмотря на отсутствие возможности выполнения базовых функций, с которыми справляется Сири, Алисе все же есть чем удивить и порадовать. Так же не забывайте, что Алису можете обучать лично вы, а потому не ленитесь проголосовать за качество ответа, когда сервис вас попросит.

Промежуточные итоги

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

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

Если Вы это читаете, значит Вам было интересно, поэтому пожалуйста подпишитесь на наш канал на , ну и за одно поставьте лайк (палец вверх) за труды. Спасибо!
Подписывайтесь на наш Телеграм @mxsmart .

Apple продолжает совершенствовать голосовой помощник Siri. В операционной системе iOS 8 персональный ассистент стал лучше понимать голосовые запросы и точнее в своих ответах, говорят сотрудники Stone Temple Consulting, которые провели сравнение функции с Google Now. Тем не менее конкурент от компании Google лучше справляется с ответами на поставленные вопросы.

В тестировании участвовали три ассистента – Siri, Google Now и Cortana. В Microsoft, напомним, позиционируют свою технологию как специфический микс из функций, ранее реализованных Apple и Google. Здесь есть полноценная поддержка естественного языка и, по словам разработчиков, в отличие от «яблочного» продукта сервис подстраивается персонально под нужды каждого пользователя.

Суть теста заключалась в том, что всем трем участникам задавали одни и те же вопросы. Siri, Google Now и Cortana пришлось ответить на 3086 вопросов. Cortana и Google Now принимают как письменные, так и устные запросы. Тем не менее для чистоты эксперимента вопросы озвучивались. Среди них были как простые - «Высота Эйфелевой башни», так и более сложные - «Что такое любовь?», «Кто изображен на купюре в 5 долларов?», «Что говорит лиса?»

Победу в соревновании одержал Google Now. Это связали с тем, что Google, в отличие от Apple, специализируется на поисковой выдаче. Из 3086 вопросов сервису удалось более или менее точно ответить на 1795 - это 58%. Siri удалось верно обработать 908 вопросов (29%), а Cortana - только 630 (20%).

Авторы эксперимента отдельно вычислили, как часто помощник выдает абсолютно точную информацию. Например, данный на вопрос «Сколько лет Великой китайской стене?» ответ «Она была закончена в 206 году до н.э.», а не конкретный возраст, считался неправильным. Здесь Google Now вновь победил с большим отрывом - 88% точных ответов против 53% и 40% у решений Apple и Microsoft.

В Stone Temple Consulting отметили, что, несмотря на объективность, исследование не является глубоко научным, поэтому относится к нему нужно с изрядной долей иронии.