Распознавание речи Twilio — это мощное дополнение к голосовым приложениям, работающим на основе глагола TwiML
Мы создадим горячую линию, которая будет предоставлять факты о кошках, числах и Чаке Норрисе, чтобы продемонстрировать возможности этой функции и её полезность в интерактивных голосовых системах (IVR). Если вы лучше усваиваете информацию из видео или хотите увидеть это в действии, полный учебный материал доступен на канале Twilio в YouTube:
Код приложения доступен в этом репозитории на GitHub.
Для создания приложения мы будем использовать Twilio Functions. Если вы новичок в Twilio Functions, вы можете посмотреть это видео-руководство, чтобы понять, как оно работает. Поскольку Twilio Functions работает в среде Twilio Runtime, для этого проекта не требуется ничего, кроме регистрации бесплатной учётной записи Twilio и получения телефонного номера с поддержкой голосовых вызовов.
Схема работы нашего приложения выглядит следующим образом:
Когда пользователь звонит, ему предлагается меню, предоставляемое TwiML, который возвращает функция `/facts`. Пользователь произносит команду, а полученные слова обрабатываются функцией `/fact-commands`. Эта функция перенаправляет звонок на соответствующую функцию в зависимости от типа запрошенного факта. На страницах `/cat-facts`, `/number-facts` или `/chuck-facts` пользователь может либо получить ещё один факт такого же типа, либо вернуться в главное меню. Давайте создадим функцию `/facts`, чтобы начать. Перейдите в раздел Functions в Twilio Runtime и создайте новую функцию, используя шаблон Blank. Установите имя функции «Twilio Facts» и путь `/facts`. Затем добавьте следующий код в раздел кода внизу:
Строка 5 указывает, что тег
Создайте ещё одну новую функцию, используя шаблон Blank. Назовите её «Fact Command» и задайте путь `/fact-command`. В разделе кода добавим код, который просто проверяет работу распознавания речи, чтобы убедиться, что всё работает:
Выделенная строка получает значение SpeechResult из параметра `event` в нижнем регистре и сохраняет его в переменной `command`. Мы приводим команду к нижнему регистру, чтобы упростить сравнение на следующих этапах. Перейдите на страницу настройки вашего телефонного номера Twilio и установите входящий звонок для использования функции «Twilio Facts»:
Позвоните на свой номер и скажите «кошка», «число» или «Чак Норрис» в ответ на приглашение, чтобы убедиться, что всё работает.
Когда основы приложения готовы, обновите функцию `/fact-command`, чтобы перенаправлять звонок на соответствующую функцию фактов в зависимости от того, что сказал звонящий. Замените код в `/fact-command` следующим кодом:
Выделенные строки перенаправляют поток звонка в зависимости от полученного ввода. Если звонящий сказал что-то неожиданное, мы перенаправляем его обратно в главное меню.
Далее реализуем функцию `/cat-facts`. Факты о кошках будут получаться с сайта http://catfact.ninja/fact с использованием библиотеки got (знаете ли вы, что голубоглазые чисто белые кошки часто бывают глухими?). Создайте функцию с названием «Cat Facts» и путём `cat-facts`, затем добавьте следующий код в раздел кода:
Наше приложение сначала проверяет, сказал ли звонящий «меню» после получения факта о кошке, и если да, то перенаправляет его обратно в меню. В противном случае запрашивается новый факт о кошке и предоставляется звонящему. Если при получении факта о кошке возникает ошибка, звонящий перенаправляется в главное меню. Это гарантирует, что мы не разъединим звонок, если catfact.ninja по какой-то причине будет недоступен.
Функции для фактов о числах и Чаке Норрисе практически идентичны, поэтому вы можете реализовать их с помощью следующего кода. Вот код для `/number-facts`:
А вот код для `/chuck-facts`:
После создания и сохранения всех этих функций позвоните на свою горячую линию Twilio Facts и протестируйте её. Вы сможете удивить своих друзей случайными фактами о кошках, интересными фактами о числах или, по крайней мере, всегда иметь наготове шутку о Чаке Норрисе.
Теперь, когда вы знаете, как работает распознавание речи Twilio, попробуйте следующее:
— Используйте partialResultsCallback для доступа к частичным результатам распознавания речи в реальном времени
— Создайте систему заказов, которая сочетает DTMF-сигналы и речь
Что бы вы ни создали, дайте мне знать об этом по адресу @brentschooley.