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