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.