Pular para o conteúdo principal

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:

  1. 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).

  2. 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.

  3. 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 e StartSpeechRecognition 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, use StopCapture e StartCapture para gerenciar o fluxo de áudio enquanto mantém o thread de reconhecimento ativo.

  4. 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__
  5. 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.