Минимизация зависаний
Этот гид рассматривает два распространенных источника зависаний в плагине RuntimeSpeechRecognizer и предлагает практические решения для снижения воздействия на производительность.
Захватываемая звуковая волна
При запуске захватываемой звуковой волны с помощью функции StartCapture
вы можете столкнуться с кратковременной задержкой, которая специфична для движка и в данный момент неизбежна без изменения кода конкретного движка. Продолжительность этой задержки варьируется на разных платформах, так как она связана с выполнением специфичного для платформы кода для извлечения аудиоданных с входного устройства (микрофон). Эта задержка была замечена на таких платформах, как Windows, Mac, Android и iOS, и может быть актуальна и для других.
Чтобы минимизировать это подергивание, подумайте о начале захвата, вызвав функцию StartCapture
в то время, когда её воздействие буд ет незначительным, например, во время загрузочного экрана. Сразу после вызова StartCapture
используйте функцию ToggleMute
с параметром Mute
, установленным в True
. И когда вы будете готовы начать захват аудиоданных, активируйте захватываемую звуковую волну, вызвав ToggleMute
с параметром Mute
, установленным в False
. Больше информации доступно здесь.
Начало распознавания речи
При запуске распознавания речи вызовом StartSpeechRecognition
может возникнуть небольшая заминка из-за загрузки движком языковой модели. Несмотря на то, что этот процесс спроектирован как асинхронный и выполняется в отдельном потоке, движок все же выполняет определенные операции во внутреннем игровом потоке, что приводит к заметной небольшой задержке, особенно с большими активами, такими как языковые модели.
Чтобы исключить это зависание, следуйте тому же принципу, который описан выше: вызывайте StartSpeechRecognition
в то время, когда воздействие задержки будет оправданным или незначительным, например, во время загрузочного экрана.