Como melhorar o desempenho
O plugin utiliza diferentes métodos de aceleração por GPU dependendo da plataforma: Vulkan no Windows e Metal nas plataformas Mac e iOS, o que acelera significativamente o processo de reconhecimento. Em outras plataformas, o plugin utiliza a CPU + intrínsecos para aceleração. No entanto, você pode melhorar ainda mais o desempenho do plugin seguindo as recomendações abaixo:
-
Use Voice Activity Detection (VAD)
É altamente recomendado utilizar Voice Activity Detection para melhorar a responsividade do reconhecedor, enviando a fala para reconhecimento assim que o usuário para de falar, em vez de esperar por intervalos de tempo fixos. O Silero VAD é particularmente recomendado para este propósito. Para instruções detalhadas de implementação, consulte a documentação de Voice Activity Detection.
-
Diminua o Step Size
Por padrão, o step size é de 5000 ms (5 segundos), o que significa que os dados de áudio são reconhecidos a cada 5 segundos durante a captura. Se você deseja reconhecer os dados de áudio com mais frequência, pode diminuir o step size, por exemplo, para 500 ms (0,5 segundos). No entanto, se o VAD estiver ativo (o que é tipicamente recomendado, a menos que você tenha requisitos específicos que necessitem de intervalos fixos), é aconselhável não depender da diminuição do step size. Ao usar VAD em configurações típicas como Voice Activated Command Recognition ou Auto-Initializing Voice Recognition with Final Buffer Processing, a fala será reconhecida assim que o usuário parar de falar de qualquer forma.
-
Use um Language Model Menor
Você pode considerar usar um language model menor, como o
Tiny Quantized (Q5_1)
, para reduzir o tamanho do modelo e melhorar o desempenho. Instruções sobre como selecionar um language model podem ser encontradas aqui. -
Otimize o Gerenciamento de Estado de Reconhecimento
Ao trabalhar com entrada de microfone, evite paradas e inícios desnecessários do reconhecedor de fala. Em vez de chamar
StopSpeechRecognition
eStartSpeechRecognition
frequentemente, o que requer realocação de recursos, considere controlar a entrada de áudio diretamente. Por exemplo, com um capturable sound wave, useStopCapture
eStartCapture
para gerenciar o fluxo de áudio enquanto mantém a thread de reconhecimento ativa.