Pular para o conteúdo principal

Minimizando congelamentos

Este guia aborda duas fontes comuns de congelamento no plugin RuntimeSpeechRecognizer e fornece soluções práticas para mitigar o impacto no desempenho.

Onda sonora capturável

Ao iniciar a onda sonora capturável usando a função StartCapture, você pode enfrentar um breve atraso, que é específico do motor e atualmente inevitável sem modificação do código específico do motor. A duração desse atraso varia entre plataformas, pois está vinculada à execução de código específico da plataforma para recuperação de dados de áudio do dispositivo de entrada (microfone). Esse atraso foi observado em plataformas como Windows, Mac, Android e iOS e pode ser relevante para outras.

Para minimizar essa interrupção, considere iniciar a captura chamando a função StartCapture em um momento em que seu impacto seja insignificante, como durante uma tela de carregamento. Imediatamente após chamar StartCapture, use a função ToggleMute com o parâmetro Mute definido como True. E quando estiver pronto para começar a capturar dados de áudio, ative a onda sonora capturável chamando ToggleMute com o parâmetro Mute definido como False. Você pode ver mais informações relevantes aqui.

Iniciar reconhecimento de fala

Quando você aciona o reconhecimento de fala chamando StartSpeechRecognition, um leve congelamento pode ocorrer devido ao carregamento do asset do modelo de linguagem pelo motor. Apesar desse processo ser projetado para ser assíncrono e executado em uma thread separada, o motor ainda realiza internamente certas operações na thread do jogo, resultando em um ligeiro atraso perceptível, especialmente com assets grandes como modelos de linguagem.

Para eliminar esse congelamento, siga o mesmo princípio descrito acima: chame StartSpeechRecognition em um momento em que o impacto do atraso seja justificável ou insignificante, como durante uma tela de carregamento.