После того как голосовой ассистент определил номер телефона позвонившего, либо спросил у клиента, нужно верифицировать распознанные цифры. Если в блок синтез речи поставить фразу:
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/.
После обработки регулярным выражением номер телефона разбит на блоки цифр, удобные для восприятия на слух. Если АОН некорректно определил номер, либо клиент хочет, чтобы ему перезвонили на другой — нужно узнать у клиента удобный ему телефон. Сначала используем блок из раздела: «Ещё блоки» -> «Продвинутые инструменты» -> «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 произнес адаптированный для озвучивания номер телефона, проверяем, корректно ли бот распознал фразу с номером и по «Интентам» переходим на дальнейшую обработку.