Aller au contenu principal

Comment améliorer les performances

Les plateformes Windows utilisent Vulkan pour l'accélération GPU, ce qui accélère considérablement le processus de reconnaissance. Sur les autres plateformes, le plugin utilise le CPU + intrinsics pour l'accélération. Cependant, vous pouvez encore améliorer les performances du plugin en suivant les recommandations ci-dessous :

  1. Réduire la taille du pas

    Par défaut, la taille du pas est de 5000 ms (5 secondes), ce qui signifie que les données audio sont reconnues toutes les 5 secondes pendant la capture. Si vous souhaitez reconnaître les données audio plus fréquemment, vous pouvez réduire la taille du pas, par exemple à 500 ms (0,5 seconde).

  2. Utiliser un modèle de langage plus petit

    Vous pouvez envisager d'utiliser un modèle de langage plus petit, comme Tiny Quantized (Q5_1), pour réduire la taille du modèle et améliorer les performances. Les instructions pour sélectionner un modèle de langage sont disponibles ici.

  3. Optimiser la gestion de l'état de reconnaissance

    Lorsque vous travaillez avec une entrée microphone, évitez les arrêts et démarrages inutiles du reconnaisseur vocal. Au lieu d'appeler fréquemment StopSpeechRecognition et StartSpeechRecognition, ce qui nécessite une réallocation des ressources, envisagez de contrôler directement l'entrée audio. Par exemple, avec une onde sonore capturable, utilisez StopCapture et StartCapture pour gérer le flux audio tout en gardant le thread de reconnaissance actif.

  4. Modifier les jeux d'instructions CPU

    La bibliothèque sous-jacente utilisée dans le plugin est whisper.cpp, qui utilise des jeux d'instructions CPU pour augmenter les performances de la reconnaissance. Actuellement, les jeux d'instructions sont codés en dur dans le code du plugin et définis par approximation/probabilité de les avoir en fonction de diverses macros, en raison des limitations d'UE pour passer les drapeaux du compilateur. Vous pouvez modifier manuellement le fichier SpeechRecognizerPrivate.h pour définir les jeux d'instructions pris en charge par votre plateforme cible. Voici la liste des jeux d'instructions actuellement utilisés par whisper.cpp, que vous pouvez définir manuellement dans le fichier SpeechRecognizerPrivate.h :

    • Famille AVX et AVX2 :

      • __AVX__
      • __AVXVNNI__
      • __AVX2__
      • __AVX512F__
      • __AVX512VBMI__
      • __AVX512VNNI__
      • __AVX512BF16__
    • Extensions Floating-Point et SIMD :

      • __FMA__
      • __F16C__
      • __SSE3__
      • __SSSE3__
    • Extensions Architecture ARM :

      • __ARM_NEON
      • __ARM_FEATURE_SVE
      • __ARM_FEATURE_FMA
      • __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
      • __ARM_FEATURE_MATMUL_INT8
    • Extensions Architecture POWER :

      • __POWER9_VECTOR__
  5. Utiliser des bibliothèques d'accélération

    whisper.cpp peut accélérer le processus de reconnaissance en utilisant les bibliothèques suivantes : Core ML pour les appareils Apple Silicon, OpenVINO sur les appareils incluant les CPU x86 et les GPU Intel, Nvidia GPU Cuda sur Windows ou Linux, Support CPU BLAS via OpenBLAS, Support CPU BLAS via Intel MKL. Veuillez noter que ces bibliothèques ne sont pas incluses par défaut dans le plugin et vous devez les installer manuellement, en suivant les instructions de whisper.cpp.