Распознавание

Служит для распознавания голосового ответа и записи его в переменную. Используйте данный блок, когда необходимо распознать ответ абонента и передать его на сервер при помощи HTTP-запроса, а также для дальнейшей обработки логикой сценария.
Свойства данного блока включают настройку времени ожидания ответа (2 секунды по умолчанию) и поле для выбора переменной, в которую будет сохранен результат распознавания.
Выход из данного блока осуществляется по прошествии времени ожидания ответа, заданного в настройках, либо в момент, когда система определит окончание речи абонента, если установлен переключатель «Детекция тишины» (детектирование происходит приблизительно через 2−3 секунды).

Настройки распознавания по умолчанию
При выборе этого блока вы можете отключить «Настройки распознавания по умолчанию» и открыть новые блоки настроек.

После выбора провайдера будет доступен новый блок «Язык«. При нажатии на него открывается всплывающий список, который содержит все доступные языки.
Ниже поля выбора переменной расположена настройка “Дополнительная обработка”.
Для ее активации нажмите на “Требуется” и в выпадающем списке выберите тип контента, который необходимо выделить из речи абонента для сохранения в переменную.

На выходе из блока Распознавание при этом появятся два якоря:
- «Обработано». Для продолжения сценария, когда результат распознавания успешен, система возвращает код проверки qc=0 или 1, которые используются только при распознавании Адреса и Телефона (что означает: «распознан уверенно»);
- «Не обработано». Для продолжения сценария в случае, если по каким-то причинам распознавание и запись в переменную не произошли.

Система поддерживает выделение из речи абонента следующие виды данных:
- Число;
- Последовательность цифр;
- Дата или период;
- Адрес;
- Телефон;
- Госномер авто;
- Денежная сумма;
- Объем жидкости;
- Имя;
- Вопрос.
Число

Выделяет из фразы абонента как целые, так и вещественные числа и записывает их в переменную в виде числа.
Например, абонент произносит: Я думаю, что это один, сейчас сейчас, два, три, четыре
Результат выделения будет записан в переменную как: 1234
Последовательность цифр

Находит цифры в том, что сказал абонент и сохраняет их в переменную в виде последовательности, разделяя цифры пробелом.
Предположим абонент произносит: Скорее всего триста двадцать пять
Результат распознавания будет сохранен в переменную как: 3 2 5
Дата или период

Для записи даты в нужном формате нужно заполнить шаблон, в каком представление необходимо ее записывать.
В шаблоне указывается дата/время в формате:
- dd — день;
- MM — месяц;
- yyyy — год;
- HH — часы;
- ss — секунды;
- mm — минуты.

Выявляет из сказанного абонентом информацию о дате, времени, периоде времени и преобразует в числовое представление даты и времени.
Первый вариант распознает период даты, которую произносит абонент:
Абонент говорит: с первого октября тысяча девятьсот восьмидесятого по двадцатое ноября тысяча девятьсот восемьдесят пятого года
После выявления результат распознавания будет сохранен как: 01.10.1980 и 20.11.1985
Результат записи сказанного:
{
"dateTimeFrom": "01.10.1980",
"dateTimeTo": "20.11.1985",
"type": "PERIOD"
}
Второй вариант распознавания, когда человек произносит «через ‘число’ дней/месяцев/год(-а)»:
I. Первый пример, через ‘количество’ дней:
Абонент произносит: Хотелось бы прийти, но буду свободен только через пять дней в пятнадцать ноль ноль (к примеру, абонент сказал это 01.01.2024)
Результат распознавания будет: 06.01.2024 15:00
{
"dateTimeFrom": "06.01.2024 15:00",
"dateTimeTo": "06.01.2024 15:00",
"type": "FIXED"
}
Если абонент произносит просто дату, не период, то сказанная дата записывается в обе переменные dateTimeFrom и dateTimeTo.
II. Второй пример, через ‘количество’ месяцев:
Абонент произносит: Примерно через три месяца (к примеру, абонент сказал это 08.04.2024).
Результат распознается как: 08.07.2024 00:00
{
"dateTimeFrom": "08.07.2024 00:00",
"dateTimeTo": "14.07.2024 23:59",
"type": "PERIOD"
}
Распознан период в одну неделю через три месяца.
Аналогично будет и если абонент произнесет период в год, к примеру, «через 2 года», только период будет в месяц:
{
"dateTimeFrom": "01.04.2026 00:00",
"dateTimeTo": "30.04.2026 23:59",
"type": "PERIOD"
}
Пример:
said = Дата у нас 1 июля 2024 года вот такая вот дата
Результат:
extraction = {"dateTimeFrom":"01.07.2024","dateTimeTo":"01.07.2024","type":"PERIOD"}
Извлечение вложенного обьекта dateTimeFrom из var1
Результат:
var = 01.07.2024

Адрес
В роботизированных сценариях встречаются ситуации, когда от абонента требуется произнести адрес. Для того, чтобы быть уверенными в том, что произнесенный клиентом адрес реально существует, и что система произвела распознавание корректно используйте функцию Выделить из сказанного — Адрес.

Данная функция извлекает из всей фразы абонента только адрес, преобразует результат распознавания в стандарт КЛАДРа (Классификатор адресов Российской Федерации), проверяет адрес на существование, и если адрес распознан корректно и найден в базе ФИАСа (Федеральная Информационная Адресная Система), записывает результат в переменную.
Предположим, что абонент произносит: Город Уфа, Улица Пушкина, дом двадцать пять, квартира три
Система автоматически распознает ответ клиента и сохранит в переменную результат в виде: г Уфа, ул Пушкина, д 25, кв 3
Обратите внимание, что функция распознавания с выделением адреса будет работать только в том случае, если в начале запроса будет указан город.
В различных ситуациях может быть так, что абонент начнет произносить адрес не с названия города, а сразу с улицы и, как следствие, такой адрес не будет корректно обработан и записан в переменную.
Для избежания этого воспользуйтесь полем “уточняющая информация”, указав в нем название города.
Допустим, вы создаете сценарий, где заранее известно, что все абоненты — это жители одного города, например из Москвы. Тогда, вписав в поле уточняющая информация Москва, вы получите функцию, при которой к результату распознания всегда будет подставляться «г Москва» и система обработает такой запрос корректно.

Для случаев, когда мы имеем дело с ответами, в которых адреса могут заведомо относиться к разным городам (например, абоненты из разных городов), необходимо спроектировать сценарий так, чтобы до того момента, как клиент назовет адрес, робот заранее уточнил у абонента, о каком городе идет речь, и сохранил этот ответ в отдельной переменной. После чего использовать данную переменную в поле “Уточняющая информация” в настройках блока с распознаванием адреса.
Телефон

По принципу работы напоминает функцию Адрес. Выделяет из фразы абонента номер телефона, преобразует его в международный формат набора номера и сверяет с Телефонным планом нумерации России. После чего сохраняет номер телефона в переменную.
Допустим, клиент произносит: Девятьсот семнадцать, двадцать, семьдесят пять, пятьсот пятьдесят пять
Система обработает данный ответ и запишет в переменную номер в правильном формате: +7 917 207-55-55
Госномер авто

Извлекает из высказывания абонента государственный номер транспортного средства и сохраняет его в переменную в виде сказанной последовательности.
К примеру, абонент произносит: номер у 103 м м 102
Результат, выделенный в результате распознавания, будет сохранен как: у103мм102
Денежная сумма

Выделяет из речи абонента цифры и валюту (р — рубли, д — доллары, е — евро) и сохраняет их в переменную в виде последовательности сказанного.
Абонент произносит: Восемьсот рублей шестьдесят копеек
Результат распознавания будет записан в переменную как: 800.6
Чтобы озвучить сказанную абонентом сумму денег с единицей измерения, необходимо использовать функцию, которая описана в «NLP-функции» .
Объем жидкости

Идентифицирует числовые значения, упомянутые абонентом, и сохраняет их в переменной в форме последовательности, представленной в высказывании.
Предположим, абонент произносит: Десять литров семьсот пятьдесят миллилитров
Результат распознавания будет сохранен в переменную как: 10.75
Если необходимо озвучить число с единицей измерения можно воспользоваться функцией, описанной в «NLP-функции» .
Имя
При использовании блока ‘Распознавание’ можно указать конкретные параметры для извлечения информации из предложенного списка, позволяющие выделить нужные элементы из высказывания абонента, такие как:
- ФИО;
- Имя отчество;
- Фамилия имя;
- Фамилия;
- Имя.

Выделяет из фразы абонента только то, что было выбрано в ‘Уточняющей информации’. Если было выбрано «ФИО», то распознанное будет записано в переменную в виде фразы.
Например, абонент произносит: Да, я Иванов Иван Иванович
Результат выделения будет записан в переменную как: Иванов Иван Иванович
Вопрос
Выделить «Вопрос» из переменной работает не на 100%.

Извлекает вопрос из фразы, сохраняя его в переменной в виде предложения.
Например, если абонент говорит: Добрый день. Можете подсказать, где находится ближайшая аптека?
Результат извлечения будет сохранен в переменной как: Можете подсказать, где находится ближайшая аптека?