JAICP

Нераспознанная речь


Если бот работает в телефонном канале, то каждый запрос от клиента перед тем, как он сможет быть обработан в сценарии, проходит автоматическое распознавание речи — процесс преобразования речевого сигнала в текст.

Сценарий должен учитывать ситуации, когда сервис распознавания речи не справляется с полученным запросом. Если в течение 5 секунд запрос клиента невозможно распознать или на распознавание не поступило речевого ввода, в сценарии возникает событие speechNotRecognized.

Возможны несколько стратегий обработки данного события.


Запрос на повтор

Если клиент озвучил запрос неразборчиво, можно попросить его повторить. Этот случай можно совместить с обработкой события noMatch, когда текст запроса был распознан, но не обработан ни в одном стейте:

state: CatchAll
    event!: speechNotRecognized
    event!: noMatch
    random:
        a: Извините, я не расслышала. Повторите, пожалуйста.
        a: Не совсем поняла. Можете повторить, пожалуйста?
        a: Повторите, пожалуйста. Вас плохо слышно.

Автоответчик

При запуске обзвонов есть вероятность, что вместо клиента бот попадет на автоответчик. Такие звонки заведомо нерезультативны, однако расходуют минуты телефонии.

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

state: NoInput || noContext = true
    event!: speechNotRecognized
    script:
        $session.noInputCounter = $session.noInputCounter || 0;
        $session.noInputCounter++;
    if: $session.noInputCounter >= 3
        a: Кажется, проблемы со связью.
        script:
            $dialer.hangUp();
    else:
        a: Вас плохо слышно. Повторите, пожалуйста!