Алиса приобретает навык

  • Tutorial
Яндекс Алиса

В этой статье речь пойдёт о голосовых интерфейсах (Voice User Interface — VUI), а также будет показано, как на Node.js можно создать приложение (навык — в терминологии платформы Яндекс.Диалоги) для голосового помощника Алисы. С помощью стороннего API наше приложение будет получать цитаты известных людей и передавать Алисе, а та, в свою очередь, зачитывать их пользователям. Также рассмотрим и один из немногих способов монетизации таких приложений — создание кнопки донации (donation — пожертвование). В общем, все должны остаться довольными.

Итак, чем же по своей сути являются голосовые интерфейсы? Дело в том, что несколько лет назад технологии достигли такого уровня развития, при котором стало возможным массовое использование самого естественного, природного способа взаимодействия человека с компьютером — посредством голоса. Целый ряд крупных IT-компаний предоставил возможность разработки «голосовых приложений» для сторонних разработчиков, создав у себя соответствующие платформы: Alexa (Amazon), Action on Google, Bixby (Samsung), Алиса (Яндекс). Теперь данные платформы генерируют мощный импульс для повсеместного распространения голосовых интерфейсов — от компьютеров и смартфонов, до бытовой техники. Похоже, что в ближайшие несколько лет произойдёт кардинальная смена привычной парадигмы взаимодействия человека с машиной: вместо кнопок и тумблеров все эти холодильники, кофеварки, СВЧ-печи и утюги будут управляться человеческим голосом.

Сегодня мы остановимся на Алисе, изначально ориентированной на поддержку русского языка, и уже имеющую весьма качественный синтезатор человеческого голоса. Алису можно вызывать из: Яндекс.Браузера; мобильного приложения Яндекс с Алисой для Android и iOS; мобильного приложения Яндекс.Навигатор для Android и iOS; Яндекс.Станции. Для навыков Алиса имеет специальный каталог, где независимые разработчики, такие как вы, могут публиковать свои приложения. И знаете, несмотря на то, что платформа находится ещё в весьма детском возрасте — Алисы уже достаточно много. Она буквально на глазах становится вездесущей! Например, скачиваний приложения Яндекс с Алисой для Android превысило 100 миллионов, а согласно данным StatCounter, в июле 2019 г. доля Яндекс.Браузер на российском рынке составила более 13%. И это только пара примеров для наглядности.

Статистика доли Яндекс.Браузер на рынке РФ

Поэтому для программистов, держащих руку на пульсе инноваций, настало время разрабатывать для голосовых интерфейсов! Давайте начнём и мы — сделаем навык, который будет слать запросы в API forismatic.com, извлекать из ответа цитаты-высказывания и имена их авторов, форматировать всё это в подобающий вид, и отправлять Алисе. Последняя, в свою очередь, (и уже без нашего участия) будет произносить и показывать эти высказывания своей аудитории. Кроме того, мы попросим Алису, чтобы тем пользователям, у кого на устройствах есть экран показывать ещё и кнопку "Поддержи проект", при нажатии на которую пользователь будет перенаправлен на страницу Я.Соберу от сервиса Яндекс.Деньги. Таким образом, люди, имеющие доброе сердце и немного денег, смогут помогать развитию вашего проекта.

Для начала, у вас на компьютере должен быть установлен Node.js с npm, а также (опционально, только для тестирования) ngrok (также см. ниже спойлер Об ngrok), и/или необходимо иметь бесплатный или платный аккаунт на ZEIT (для тестирования и развёртывания; необходимо также установить Now CLI).

Об ngrok
ngrok «пробивает тоннель» от вашего компьютера в Интернет, поэтому на время тестирования локальный компьютер становится сервером во всемирной паутине — в этом основное удобство и предназначение ngrok. Чтобы установить ngrok: на сайте ngrok.com создаём бесплатный аккаунт, скачиваем zip-архив и распаковываем его на локальной машине, например, в C:\Program Files\ngrok и прописываем в переменной среды path путь к этой папке. В командной строке или терминале выполняем команду ngrok -v чтобы убедиться что всё работает. Затем, чтобы связать локальную машину с вашим аккаунтом в ngrok, один раз выполняем команду: ngrok authtoken YOUR_TOKEN где YOUR_TOKEN — ваш уникальный токен, который вы найдёте в своём ngrok-аккаунте.

Затем на GitHub склонируйте (или скачайте, а затем распакуйте) репозиторий alice-tutorial-skill, который является неотъемлемой частью данной статьи. Код с подробными комментариями находится в файле /api/index.js — можете читать его словно музыкант ноты.

После этого выполните вход в каталог: cd alice-tutorial-skill и установите необходимые пакеты: npm install

Чтобы протестировать с помощью ngrok:

  • В командной строке или терминале, в каталоге alice-tutorial-skill выполните команду: npm start
  • В другом экземпляре командной строки или терминала выполните команду: ngrok http 3000
  • Скопируйте URL с протоколом https, который сгенерировал ngrok, как показано на скриншоте ниже.

Терминал ngrok

Чтобы развернуть или протестировать на ZEIT: в командной строке или терминале, в каталоге alice-tutorial-skill выполните команду: now
Подождите несколько секунд пока код выгрузится на сервер, а затем скопируйте URL в консоли ZEIT, и добавьте в конец этого URL путь к каталогу api (/api/).

Теперь зайдите в свой аккаунт Яндекс, перейдите в консоль Яндекс.Диалоги, нажмите плитку "Создать диалог", и в всплывающем окне выберите плитку "Навык в Алисе", как показано на скриншоте:

Создание нового навыка в Алисе

На вкладке "Настройки" заполните все необходимые поля, причём в поле "Webhook URL" вставьте URL сгенерированный ngrok (показано в примере ниже), или URL, полученный в консоли ZEIT (с добавленным в конце /api/):

Вебхук

Теперь перейдите на вкладку "Тестирование", где вы должны увидеть нечто подобное:

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

Вот, собственно, и всё! Именно так сделан и работает опубликованный в каталоге Алисы навык Умные Мысли, который вы можете попробовать. На смартфоне это будет выглядеть примерно так:

Умные Мысли

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

Обновление от 14.10.2019. Статья об интеграции Алисы с CRM Битрикс24 опубликована: "Алиса в стране Битрикс".

Донаты


Донат
Support the author
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 3

    +4
    Спасибо уже давно сделал Delete Яндекс, не поверите все работает и все хватает.
      +3
      В моих планах написать на эту тему ещё ряд статей, и следующей будет статья об интеграции Алисы с CRM Битрикс24, что позволит создавать коммерческие навыки по оформлению заказов с помощью голоса.

      Если вы параноик, это ещё не значит, что маленькая сестра не следит за вами. Репутация в мире большого брата выходит на первый план. Одного намёка на то что хвост Алисы тянется до Лубянки достаточно, чтобы использовать менее ангажированный патронат. И дело не в том, что американский большой брат менее любопытен, а в том, что российский большой Ух торгует родиной и её секретами налево и направо
      Государство хочет управлять персональными данными россиян, что приводит к одному «сливу» за другим

      я к тому, что абсолютно безответственно собирать данные своих соотечественников, зная что их придётся передать тем, которые их с удовольствием продадут любым желающим.
        0

        А в чём состоит польза от наличия Алисы для ФСБ/МВД в квартире подозреваемого/свидетеля? Действительно ли эта польза для МВД стоит тех денег, которые подозреваемый тратит на устройство с Алисой? Достаточно ли Алиса удобна для ведения доследственных/следственных дел?

        Only users with full accounts can post comments. Log in, please.