Определение конца фразы
EOU (End-of-Utterance, "конец высказывания") — признак конца фразы в потоковом распознавании. В процессе потокового распознавания сервер SpeechKit возвращает не всю фразу целиком, а результаты распознавания частей фразы:
Промежуточные — ответы с флагом partial, часть фразы может измениться.
Окончательные — ответы с флагом final, часть фразы зафиксирована.
SpeechKit возвращает законченную фразу только после определения EOU. Точное определение EOU позволяет, не перебивая, дослушать и распознать речь говорящего, а также сделать реакцию голосового помощника (ответ или уточнение) более естественной.
EOU наступает в следующих случаях:
1. Завершилась gRPC-сессия.
2. Была распознана тишина в последнем фрагменте речи. Тишину можно передать с помощью одного из двух параметров:
chunk — звук, который распознается как тишина.
silence_chunk — длительность тишины в миллисекундах. Параметр позволяет уменьшить размер пакета с аудио и не передавать в нем тишину, которую не нужно распознавать.
Чтобы повлиять на определение EOU, настройте использование API v3:
1. Задайте параметр max_pause_between_words_hint_ms, который управляет ожидаемой длительностью пауз между словами в рамках одной фразы (в миллисекундах). С помощью этого параметра можно избежать ложного определения EOU при медленной диктовке цифр или настроить быстроту реакции голосового помощника на остановку речи.
2. Задайте параметр type в классификаторе eou_classifier_options=default_classifier, который задает чувствительность метода обнаружения EOU:
DEFAULT — метод по умолчанию.
HIGH — по сравнению с DEFAULT, быстрее обнаруживает EOU (время ответа от сервера меньше), но возможны ложные срабатывания (точность определения ниже).
Вы также можете определять EOU самостоятельно по данным от SpeechKit (части фразы, статистика распознавания и т. д.):
1. В запросе API, инициирующем сессию распознавания, укажите параметр eou_classifier_options=external_classifier.
2. При обнаружении EOU в рамках сессии добавьте в запрос к серверу SpeechKit параметр eou (не заполняется).
SpeechKit использует это как указатель на EOU и вернет законченную фразу в ответе