Pull to refresh

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

Reading time4 min
Views12K
Яндекс Алиса

В этой статье речь пойдёт о голосовых интерфейсах (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 опубликована: "Алиса в стране Битрикс".

Заключение


На сегодня всё. Другие материалы следуют. Кому подобное читать интересно — подписывайтесь на уведомления о новых публикациях. Подписаться можно на этом сайте (кнопка Подписаться внизу), или на Telegram-канал IT Туториал Захар, или на одноимённое сообщество в VK, или Twitter @mikezaharov.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 12: ↑8 and ↓4+4
Comments3

Articles