Как использовать распознавание речи Twilio

Автор: | 09.08.2026

Распознавание речи Twilio — это мощное дополнение к голосовым приложениям, работающим на основе глагола TwiML . Вместо того чтобы принимать только DTMF-сигналы, вы можете использовать всю выразительность устной речи на различных языках.

Мы создадим горячую линию, которая будет предоставлять факты о кошках, числах и Чаке Норрисе, чтобы продемонстрировать возможности этой функции и её полезность в интерактивных голосовых системах (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 указывает, что тег использует только метод ввода `speech`. Если вы хотите также принимать DTMF-сигналы, можно указать `dtmf speech`, но мы будем использовать только речь. Строка 7 содержит набор подсказок, разделённых запятыми, которые инструктируют механизм распознавания речи о словах, которые мы ожидаем получить в качестве ввода. Эти интенты повышают точность приложения. Мы закончили с функцией `/facts`, поэтому сохраните её перед продолжением.

Создайте ещё одну новую функцию, используя шаблон 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.