Созданием голосовых навыков я начал заниматься в начале 2017 года — устройства Echo от Amazon с ассистентом Alexa (Алекса). На тот момент инструменты для разработчиков были доступны уже полтора года, хотя не шли в сравнение с тем, что предлагают Amazon и Google сегодня. Открыв панель Яндекс Диалогов, я как раз вспомнил то начало и насколько все изменилось до сегодняшнего дня.
Хотелось бы поделиться с вами первым опытом и впечатлениями создания навыка на русском языке для Яндекс Алисы (Яндекс Диалогов) после опыта с Alexa Skills Kit и Amazon Lex.

Самая простая схема, как работает голосовой помощник.
Все различия между платформами находятся посередине – платформе, которая распознает речь, обрабатывает запросы на входе и выводит ответ пользователю, и в зависимости от ее простоты/сложности, работа разработчика упрощается/усложняется, может быть и вовсе не нужна для очень простого навыка (например, используя Dialogflow).
После открытия Диалогов от Яндекса, меня сразу смутил простой интерфейс, слишком простой — где всё и как этим управлять? Оказалось, это все что на данный момент предлагает Яндекс.
Первое, что я ожидал увидеть в Диалогах, это «intents», что дословно переводится как «намерения» или «цели». Каждый такой «intent» содержит примеры запросов пользователя. Создание таких наборов даёт понять разработчик��, что от него хочет пользователь. Например, мы могли бы создать такие «цели» («intents»):
«ЗаказПельменей» с примерами запросов:
«закажи доставку пельменей»
«я хочу пельмени, сделай заказ»
«пельмени с куриным мясом, побольше сыра»
«Помощь» с примерами запросов:
«я застрял»
«помощь»
«как этим пользоваться»
С помощью таких примеров, нам легко понять пользователя и его ожидания — пользователь сказал «я хочу пельмени, сделай заказ», значит наша «цель» («intent») «ЗаказПельменей», значит работаем в пределах этого запроса. В идеале, платформа должна обучаться и понимать похожие фразы. На данный момент Яндекс не предлагает функции “intents”, хотя я уверен, эта возможность будет добавлена в следующем году.
Дальше идут «сущности» (entities (Google) или slots (Amazon)) — ключевые слова или фразы. К счастью, Яндекс Диалоги на данный момент распознают 4 вида сущностей — это дата (включая «завтра», «в следующем году»), числа, гео-данные (на данный момент я активно использую страны и города) и имена. Это значительно упрощает жизнь разработчика, они облегчают и придают гибкости во время разработки навыка.
Если посмотреть на больших братьев — они позволяют разработчику самому создавать «сущности», а также предлагают широкий выбор интегрированных «сущностей», например AMAZON.Food (еда) и AMAZON.Airports (названия аэропортов).

Интерфейс Alexa Skills Kit. Еще в прошлом году все менялось в простом текстовом поле, сегодня — это богатый интерфейс с расширенными возможностями, который постоянно обновляется. С нетерпением ждем обновлений Яндекса.
На данный момент я разрабатываю навык, где не помешала бы «сущность» времен года, списка с видами спорта и названиями мероприятий. Чтобы «подобрать» нужные слова, нужно менять код.
Здесь все печально. Тест упирается в один чат и окном JSON запроса и вывода. Только клавиатура, без ввода или вывода голосом, а также без возможности тестировать другим пользователям. Проще говоря, инструментов для теста здесь нет.
Стоит упомянуть — создание голосовых навыков на русском языке немного усложняется свойствами языка. Например, если на английском мы говорим «to France», «from France» и «with France», разложив те же слова по падежам на русском звучат «во ФранциЮ», «из ФранциИ» и «с ФранциЕЙ». Решению таких и похожих задач помогут небольшие функции.
Что хорошо:
Что ждём: (диалогам несколько месяцев, поэтому не буду выделять как минусы.)
Также как и в мире поисковиков, конкурент один — Google со своим Dialogflow.
На данный момент русский язык в Dialogflow поддерживается только в одну сторону speech-to-text, поэтому Яндекс здесь в лидерах.
Приятно также то, что разобравшись с одной платформой, разработчик сможет без труда освоить все остальные.
Во время разработки навыка, в течении нескольких недель, Яндекс не раз вводили изменения в Диалоги, главное, чтобы держали темп. Алиса и ее инструменты еще молоды как и весь мировой рынок голосовых устройств.
Хотелось бы поделиться с вами первым опытом и впечатлениями создания навыка на русском языке для Яндекс Алисы (Яндекс Диалогов) после опыта с Alexa Skills Kit и Amazon Lex.

Самая простая схема, как работает голосовой помощник.
Все различия между платформами находятся посередине – платформе, которая распознает речь, обрабатывает запросы на входе и выводит ответ пользователю, и в зависимости от ее простоты/сложности, работа разработчика упрощается/усложняется, может быть и вовсе не нужна для очень простого навыка (например, используя Dialogflow).
После открытия Диалогов от Яндекса, меня сразу смутил простой интерфейс, слишком простой — где всё и как этим управлять? Оказалось, это все что на данный момент предлагает Яндекс.
Цели или “Intents”
Первое, что я ожидал увидеть в Диалогах, это «intents», что дословно переводится как «намерения» или «цели». Каждый такой «intent» содержит примеры запросов пользователя. Создание таких наборов даёт понять разработчик��, что от него хочет пользователь. Например, мы могли бы создать такие «цели» («intents»):
«ЗаказПельменей» с примерами запросов:
«закажи доставку пельменей»
«я хочу пельмени, сделай заказ»
«пельмени с куриным мясом, побольше сыра»
«Помощь» с примерами запросов:
«я застрял»
«помощь»
«как этим пользоваться»
С помощью таких примеров, нам легко понять пользователя и его ожидания — пользователь сказал «я хочу пельмени, сделай заказ», значит наша «цель» («intent») «ЗаказПельменей», значит работаем в пределах этого запроса. В идеале, платформа должна обучаться и понимать похожие фразы. На данный момент Яндекс не предлагает функции “intents”, хотя я уверен, эта возможность будет добавлена в следующем году.
Сущности или “Entities”
Дальше идут «сущности» (entities (Google) или slots (Amazon)) — ключевые слова или фразы. К счастью, Яндекс Диалоги на данный момент распознают 4 вида сущностей — это дата (включая «завтра», «в следующем году»), числа, гео-данные (на данный момент я активно использую страны и города) и имена. Это значительно упрощает жизнь разработчика, они облегчают и придают гибкости во время разработки навыка.
Если посмотреть на больших братьев — они позволяют разработчику самому создавать «сущности», а также предлагают широкий выбор интегрированных «сущностей», например AMAZON.Food (еда) и AMAZON.Airports (названия аэропортов).

Интерфейс Alexa Skills Kit. Еще в прошлом году все менялось в простом текстовом поле, сегодня — это богатый интерфейс с расширенными возможностями, который постоянно обновляется. С нетерпением ждем обновлений Яндекса.
На данный момент я разрабатываю навык, где не помешала бы «сущность» времен года, списка с видами спорта и названиями мероприятий. Чтобы «подобрать» нужные слова, нужно менять код.
Тестирование
Здесь все печально. Тест упирается в один чат и окном JSON запроса и вывода. Только клавиатура, без ввода или вывода голосом, а также без возможности тестировать другим пользователям. Проще говоря, инструментов для теста здесь нет.
Русский язык
Стоит упомянуть — создание голосовых навыков на русском языке немного усложняется свойствами языка. Например, если на английском мы говорим «to France», «from France» и «with France», разложив те же слова по падежам на русском звучат «во ФранциЮ», «из ФранциИ» и «с ФранциЕЙ». Решению таких и похожих задач помогут небольшие функции.
Итак
Что хорошо:
- Интегрированные сущности.
- Возможность подключить webhook. Как без него.
- Служба поддержки. Я отправлял запросы на выходных, в понедельник получил ответ.
Что ждём: (диалогам несколько месяцев, поэтому не буду выделять как минусы.)
- Создание своих сущностей.
- Больше интегрированных сущностей (название аэропортов, ресторанов и т.д.).
- Цели (intents) — коллекции фраз.
- Возможность использования командной строки (CLI).
- Тестирование голосом и прослушивание вывода.
- Все что связано с тестированием (бета тесты, возможность добавлять пользователей и т.д.)
Конкуренты
Также как и в мире поисковиков, конкурент один — Google со своим Dialogflow.
На данный момент русский язык в Dialogflow поддерживается только в одну сторону speech-to-text, поэтому Яндекс здесь в лидерах.
Приятно также то, что разобравшись с одной платформой, разработчик сможет без труда освоить все остальные.
Ждем нововведений
Во время разработки навыка, в течении нескольких недель, Яндекс не раз вводили изменения в Диалоги, главное, чтобы держали темп. Алиса и ее инструменты еще молоды как и весь мировой рынок голосовых устройств.
