Como melhorar o desempenho
As plataformas Windows usam Vulkan para aceleração de GPU, o que acelera significativamente o processo de reconhecimento. Em outras plataformas, o plugin usa a CPU + intrínsecos para aceleração. No entanto, você pode melhorar ainda mais o desempenho do plugin seguindo as recomendações abaixo:
-
Reduzir o Tamanho do Passo
Por padrão, o tamanho do passo é 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ê quiser reconhecer os dados de áudio com mais frequência, pode diminuir o tamanho do passo, por exemplo, para 500 ms (0,5 segundos).
-
Usar um Modelo de Linguagem Menor
Você pode considerar usar um modelo de linguagem menor, como
Tiny Quantized (Q5_1)
, para reduzir o tamanho do modelo e melhorar o desempenho. As instruções sobre como selecionar um modelo de linguagem podem ser encontradas aqui. -
Otimizar o Gerenciamento do Estado de Reconhecimento
Ao trabalhar com entrada de microfone, evite paradas e reinícios desnecessários do reconhecedor de fala. Em vez de chamar
StopSpeechRecognition
eStartSpeechRecognition
com frequência, o que requer realocação de recursos, considere controlar a entrada de áudio diretamente. Por exemplo, com uma onda sonora capturável, useStopCapture
eStartCapture
para gerenciar o fluxo de áudio enquanto mantém o thread de reconhecimento ativo. -
Alterar Conjuntos de Instruções da CPU
A biblioteca subjacente usada no plugin é whisper.cpp, que usa conjuntos de instruções da CPU para aumentar o desempenho do reconhecimento. Atualmente, os conjuntos de instruções são codificados no código do plugin e definidos por aproximação/probabilidade de tê-los, dependendo de várias macros, devido às limitações da UE para passar os flags do compilador. Você pode modificar manualmente o arquivo SpeechRecognizerPrivate.h para definir os conjuntos de instruções suportados pela sua plataforma de destino. Aqui está a lista de conjuntos de instruções atualmente usados pelo whisper.cpp, que você pode definir manualmente no arquivo SpeechRecognizerPrivate.h:
-
Família AVX e AVX2:
__AVX__
__AVXVNNI__
__AVX2__
__AVX512F__
__AVX512VBMI__
__AVX512VNNI__
__AVX512BF16__
-
Extensões de Ponto Flutuante e SIMD:
__FMA__
__F16C__
__SSE3__
__SSSE3__
-
Extensões de Arquitetura ARM:
__ARM_NEON
__ARM_FEATURE_SVE
__ARM_FEATURE_FMA
__ARM_FEATURE_FP16_VECTOR_ARITHMETIC
__ARM_FEATURE_MATMUL_INT8
-
Extensões de Arquitetura POWER:
__POWER9_VECTOR__
-
-
Usar Bibliotecas de Aceleração
whisper.cpp pode acelerar o processo de reconhecimento usando as seguintes bibliotecas: Core ML para dispositivos Apple Silicon, OpenVINO em dispositivos incluindo CPUs x86 e GPUs Intel, Nvidia GPU Cuda no Windows ou Linux, suporte a CPU BLAS via OpenBLAS, suporte a CPU BLAS via Intel MKL. Observe que essas bibliotecas não estão incluídas no plugin por padrão e você precisa instalá-las manualmente, seguindo as instruções do whisper.cpp.