Первый опыт работы с Яндекс Диалогами. Ждем нововведений

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

Хотелось бы поделиться с вами первым опытом и впечатлениями создания навыка на русском языке для Яндекс Алисы (Яндекс Диалогов) после опыта с Alexa Skills Kit и Amazon Lex.

image
Самая простая схема, как работает голосовой помощник.

Все различия между платформами находятся посередине – платформе, которая распознает речь, обрабатывает запросы на входе и выводит ответ пользователю, и в зависимости от ее простоты/сложности, работа разработчика упрощается/усложняется, может быть и вовсе не нужна для очень простого навыка (например, используя Dialogflow).

После открытия Диалогов от Яндекса, меня сразу смутил простой интерфейс, слишком простой — где всё и как этим управлять? Оказалось, это все что на данный момент предлагает Яндекс.

Цели или “Intents”


Первое, что я ожидал увидеть в Диалогах, это «intents», что дословно переводится как «намерения» или «цели». Каждый такой «intent» содержит примеры запросов пользователя. Создание таких наборов даёт понять разработчику, что от него хочет пользователь. Например, мы могли бы создать такие «цели» («intents»):

«ЗаказПельменей» с примерами запросов:
«закажи доставку пельменей»
«я хочу пельмени, сделай заказ»
«пельмени с куриным мясом, побольше сыра»

«Помощь» с примерами запросов:
«я застрял»
«помощь»
«как этим пользоваться»

С помощью таких примеров, нам легко понять пользователя и его ожидания — пользователь сказал «я хочу пельмени, сделай заказ», значит наша «цель» («intent») «ЗаказПельменей», значит работаем в пределах этого запроса. В идеале, платформа должна обучаться и понимать похожие фразы. На данный момент Яндекс не предлагает функции “intents”, хотя я уверен, эта возможность будет добавлена в следующем году.

Сущности или “Entities”


Дальше идут «сущности» (entities (Google) или slots (Amazon)) — ключевые слова или фразы. К счастью, Яндекс Диалоги на данный момент распознают 4 вида сущностей — это дата (включая «завтра», «в следующем году»), числа, гео-данные (на данный момент я активно использую страны и города) и имена. Это значительно упрощает жизнь разработчика, они облегчают и придают гибкости во время разработки навыка.

Если посмотреть на больших братьев — они позволяют разработчику самому создавать «сущности», а также предлагают широкий выбор интегрированных «сущностей», например AMAZON.Food (еда) и AMAZON.Airports (названия аэропортов).

image
Интерфейс Alexa Skills Kit. Еще в прошлом году все менялось в простом текстовом поле, сегодня — это богатый интерфейс с расширенными возможностями, который постоянно обновляется. С нетерпением ждем обновлений Яндекса.

На данный момент я разрабатываю навык, где не помешала бы «сущность» времен года, списка с видами спорта и названиями мероприятий. Чтобы «подобрать» нужные слова, нужно менять код.

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


Здесь все печально. Тест упирается в один чат и окном JSON запроса и вывода. Только клавиатура, без ввода или вывода голосом, а также без возможности тестировать другим пользователям. Проще говоря, инструментов для теста здесь нет.

Русский язык


Стоит упомянуть — создание голосовых навыков на русском языке немного усложняется свойствами языка. Например, если на английском мы говорим «to France», «from France» и «with France», разложив те же слова по падежам на русском звучат «во ФранциЮ», «из ФранциИ» и «с ФранциЕЙ». Решению таких и похожих задач помогут небольшие функции.

Итак


Что хорошо:

  • Интегрированные сущности.
  • Возможность подключить webhook. Как без него.
  • Служба поддержки. Я отправлял запросы на выходных, в понедельник получил ответ.


Что ждём: (диалогам несколько месяцев, поэтому не буду выделять как минусы.)

  • Создание своих сущностей.
  • Больше интегрированных сущностей (название аэропортов, ресторанов и т.д.).
  • Цели (intents) — коллекции фраз.
  • Возможность использования командной строки (CLI).
  • Тестирование голосом и прослушивание вывода.
  • Все что связано с тестированием (бета тесты, возможность добавлять пользователей и т.д.)

Конкуренты


Также как и в мире поисковиков, конкурент один — Google со своим Dialogflow.

На данный момент русский язык в Dialogflow поддерживается только в одну сторону speech-to-text, поэтому Яндекс здесь в лидерах.

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

Ждем нововведений


Во время разработки навыка, в течении нескольких недель, Яндекс не раз вводили изменения в Диалоги, главное, чтобы держали темп. Алиса и ее инструменты еще молоды как и весь мировой рынок голосовых устройств.
  • +13
  • 3,8k
  • 4
Поделиться публикацией

Комментарии 4

    +1
    Тоже малость напрягал Алису.
    Про тест писал в поддержку, что его нет.
    С числами тоже беда, приходится изгаляться чтобы она цифры по одно произнесла, а не одна тысяча двести пятьдесят восемь.
    Еще неплохо бы иметь возможность позвонить Алисе или научить слушать sip.
      +1
      А в идеале иметь АПИ, чтобы свою колонку построить — популярность сервиса среди самодельщков может резко возрасти
        0

        Достаточно бы иметь возможность после команды активации получить распознанный текст обратно

        0
        Модерация навыка заняла часов 36 в моем случае. Из претензий:
        — довольно расплывчатые требования к наименованию и активационному имени навыка.
        — процесс тестирования. Это чистой воды боль. Но, подозреваю, что могло бы быть и хуже.
        — навык обязан отвечать на команды «помощь» и «что ты умеешь». Про «помощь» в формальных требованиях пару слов есть, а вот про «что ты умеешь» — ноль. Это была одна из причин, по которой мой навык не прошел модерацию.

        Из технических нюансов.
        Яндекс, якобы, распознает географические объекты и в документации они об этом с гордостью сообщают, но по факту если еще Москву, Киев или Нью-Йорк Яндекс понимает и размещает в сущности YANDEX.GEO информацию, то вот про Южную Тараву (столица Кирибати), Порт-оф-Спейн (столица Тринидад и Тобаго) или Шри-Джаяварденепура-Котте (столица Шри-Ланки) Яндекс вообще не в курсе. Возвращаясь к тестированию — без полноценной работы с распознованием голоса при тестировании невозможно узнать как Алиса распознает фразы в стиле «Нью-Дели». Какой будет команда? Нью-Дели? Нью Дели? Ньюдели? А в YANDEX.GEO, который должен бы привести фразу к верной форме, про Нью-Дели снова ничего — «ньюдели» не превратится в «нью-дели». Зато «Мск» превратится в «москва», а «спб» в «санкт-петербург».
        По крайней мере так дела обстоят на момент написания этого комментария.

        Строго говоря, я ожидал от Яндекса большего.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое