Озвучивание номера телефона голосовым ботом AimyLogic

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

client_phone = $rawRequest.caller;

то при озвучке робот прочитает 9 миллионов и т.д., что неудобно для восприятия человеком.

Номер нужно разбить на блоки и между каждым блоком поставить символ -, который скажет боту сделать небольшую паузу при произношении. Чтобы это сделать, вставим в синтез речи блок </> код с таким блоком кода на JavaScript:

$client_phone = $rawRequest.caller;
if ($client_phone) {
    $text_client_phone = $client_phone.toString();
    $text_client_phone = $text_client_phone.replace(/(\d{1})(\d{3})(\d{3})(\d{2})(\d{2})/, '$1-$2-$3-$4-$5');
}

Если не проверять $client_phone на null, то при тестировании бота чатом переменная с номером $rawRequest.caller будет неопределена и приложение вывалится по ошибке.

Отмечу, что блок «</> код» можно перетащить мышкой и поставить до блока «Синтез речи» или после. Это важно, поскольку в предыдущем блоке, с которого идет переход, может выполнятся некоторое действие после которого нужно выполнить JavaScript код, чтобы в «Синтезе речи» бот читал уже адаптированную для произнесения голосом переменную.

Регулярное выражение удобно проверять на сайте https://regex101.com/.

Проверка регулярного выражения на сайте https://regex101.com/.

После обработки регулярным выражением номер телефона разбит на блоки цифр, удобные для восприятия на слух. Если АОН некорректно определил номер, либо клиент хочет, чтобы ему перезвонили на другой — нужно узнать у клиента удобный ему телефон. Сначала используем блок из раздела: «Ещё блоки» -> «Продвинутые инструменты» -> «PHONE TO $VAR». Помещаем фразу сказанную клиентом в переменную $client_phone.

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

После блока «PHONE TO $VAR» добавляем «Синтез речи» с фразой о проверке, но в ней будем использовать переменную $text_client_phone.

Давайте проверим. Ваш номер: $text_client_phone.

Перед озвучиванием фразы добавим блок «</> код» в который вставим следующий код:

if ($client_phone) {
    $text_client_phone = $client_phone.toString();
    $text_client_phone = $text_client_phone.replace(/(\d{1})(\d{3})(\d{3})(\d{2})(\d{2})/, '$1-$2-$3-$4-$5');
}

После того как робот Aimylogic произнес адаптированный для озвучивания номер телефона, проверяем, корректно ли бот распознал фразу с номером и по «Интентам» переходим на дальнейшую обработку.

Spread the love
Запись опубликована в рубрике IT рецепты с метками . Добавьте в закладки постоянную ссылку.

Обсуждение закрыто.