Cómo mejorar el rendimiento
Las plataformas Windows utilizan Vulkan para la aceleración de la GPU, lo que acelera significativamente el proceso de reconocimiento. En otras plataformas, el complemento usa la CPU + intrinsics para la aceleración. Sin embargo, puedes mejorar aún más el rendimiento del complemento siguiendo las recomendaciones a continuación:
-
Disminuir el Tamaño del Paso
De forma predeterminada, el tamaño del paso es de 5000 ms (5 segundos), lo que significa que los datos de audio se reconocen cada 5 segundos durante la captura. Si deseas reconocer los datos de audio con mayor frecuencia, puedes disminuir el tamaño del paso, por ejemplo, a 500 ms (0.5 segundos).
-
Usar un Modelo de Lenguaje Más Pequeño
Puedes considerar usar un modelo de lenguaje más pequeño, como
Tiny Quantized (Q5_1)
, para reducir el tamaño del modelo y mejorar el rendimiento. Las instrucciones sobre cómo seleccionar un modelo de lenguaje se pueden encontrar aquí. -
Optimizar la Gestión del Estado de Reconocimiento
Al trabajar con la entrada del micrófono, evita detener e iniciar innecesariamente el reconocedor de voz. En lugar de llamar con frecuencia a
StopSpeechRecognition
yStartSpeechRecognition
, lo que requiere una reasignación de recursos, considera controlar directamente la entrada de audio. Por ejemplo, con una capturable sound wave, usaStopCapture
yStartCapture
para gestionar el flujo de audio mientras mantienes activa la ejecución del reconocimiento. -
Modificar los Conjuntos de Instrucciones de la CPU
La biblioteca subyacente utilizada en el complemento es whisper.cpp, que emplea conjuntos de instrucciones de la CPU para aumentar el rendimiento del reconocimiento. Actualmente, los conjuntos de instrucciones están codificados en el complemento y definidos por aproximación/probabilidad de su existencia, dependiendo de varios macros, debido a limitaciones de UE para pasar las banderas del compilador. Puedes modificar manualmente el archivo SpeechRecognizerPrivate.h para definir los conjuntos de instrucciones compatibles con tu plataforma objetivo. Aquí está la lista de los conjuntos de instrucciones utilizados actualmente por whisper.cpp, que puedes definir manualmente en el archivo SpeechRecognizerPrivate.h:
-
Familia AVX y AVX2:
__AVX__
__AVXVNNI__
__AVX2__
__AVX512F__
__AVX512VBMI__
__AVX512VNNI__
__AVX512BF16__
-
Extensiones de Punto Flotante y SIMD:
__FMA__
__F16C__
__SSE3__
__SSSE3__
-
Extensiones de Arquitectura ARM:
__ARM_NEON
__ARM_FEATURE_SVE
__ARM_FEATURE_FMA
__ARM_FEATURE_FP16_VECTOR_ARITHMETIC
__ARM_FEATURE_MATMUL_INT8
-
Extensiones de Arquitectura POWER:
__POWER9_VECTOR__
-
-
Usar Librerías de Aceleración
whisper.cpp puede acelerar el proceso de reconocimiento utilizando las siguientes bibliotecas: Core ML para dispositivos Apple Silicon, OpenVINO en dispositivos incluidos CPUs x86 y GPUs Intel, Nvidia GPU Cuda en Windows o Linux, BLAS CPU a través de OpenBLAS, BLAS CPU a través de Intel MKL. Ten en cuenta que estas bibliotecas no están incluidas en el complemento por defecto y debes instalarlas manualmente siguiendo las instrucciones de whisper.cpp.