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 :
-
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).
-
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. -
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
etStartSpeechRecognition
, 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, utilisezStopCapture
etStartCapture
pour gérer le flux audio tout en gardant le thread de reconnaissance actif. -
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__
-
-
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.