Как улучшить производительность
Платформы Windows используют Vulkan для ускорения работы GPU, что существенно ускоряет процесс распознавания. На других платформах плагин использует CPU + intrinsics для ускорения. Однако вы можете дополнительно улучшить производительность плагина, следуя рекомендациям ниже:
-
Уменьшите размер шага
По умолчанию размер шага составляет 5000 мс (5 секунд), то есть данные аудио распознаются каждые 5 секунд во время захвата. Если вы хотите распознавать аудиоданные чаще, уменьшите размер шага, например, до 500 мс (0,5 секунды).
-
Используйте меньшую языковую модель
Вы можете рассмотреть возможность использования меньшей языковой модели, такой как
Tiny Quantized (Q5_1)
, чтобы уменьшить размер модели и улучшить производительность. Инструкции по выбору языковой модели можно найти здесь. -
Оптимизируйте управление состоянием распознавания
При работе с микрофонным входом избегайте ненужных остановок и запусков распознавателя речи. Вместо частого вызова
StopSpeechRecognition
иStartSpeechRecognition
, которые требуют перераспределения ресурсов, рассмотрите возможность управления аудиопотоком напрямую. Например, с использованием захватываемой звуковой волны, применяйтеStopCapture
иStartCapture
для управления потоком аудио при сохранении активного потока распознавания. -
Измените наборы инструкций CPU
Основная библиотека, используемая в плагине, — whisper.cpp, которая использует наборы инструкций CPU для повышения производительности распознавания. В настоящее время наборы инструкций жестко закодированы в коде плагина и определяются на основе вероятности их наличия, в зависимости от различных макросов, из-за ограничений UE на передачу флагов компилятора. Вы можете вручную изменить файл SpeechRecognizerPrivate.h, чтобы определить наборы инструкций, поддерживаемые вашей целевой платформой. Ниже приведен список используемых в настоящее время наборов инструкций whisper.cpp, которые можно определить вручную в файле SpeechRecognizerPrivate.h:
-
Семейство AVX и AVX2:
__AVX__
__AVXVNNI__
__AVX2__
__AVX512F__
__AVX512VBMI__
__AVX512VNNI__
__AVX512BF16__
-
Расширения операций с плавающей запятой и SIMD:
__FMA__
__F16C__
__SSE3__
__SSSE3__
-
Расширения архитектуры ARM:
__ARM_NEON
__ARM_FEATURE_SVE
__ARM_FEATURE_FMA
__ARM_FEATURE_FP16_VECTOR_ARITHMETIC
__ARM_FEATURE_MATMUL_INT8
-
Расширения архитектуры POWER:
__POWER9_VECTOR__
-
-
Используйте библиотеки ускорения
whisper.cpp может ускорить процесс распознавания с помощью следующих библиотек: Core ML для устройств Apple Silicon, OpenVINO для устройств, включая x86 CPU и Intel GPU, Nvidia GPU Cuda на Windows или Linux, BLAS CPU через OpenBLAS, BLAS CPU через Intel MKL. Обратите внимание, что эти библиотеки не включены в плагин по умолчанию, и их необходимо установить вручную, следуя инструкциям whisper.cpp.