跳到主要内容

如何提升性能

Windows 平台使用 Vulkan 进行 GPU 加速,这显著提升了识别过程的速度。在其他平台上,该插件使用 CPU + intrinsics 进行加速。然而,您可以通过以下建议进一步提高插件的性能:

  1. 减少步长(Step Size)

    默认情况下,步长为 5000 毫秒(5 秒),意味着音频数据每 5 秒被识别一次。如果希望更频繁地识别音频数据,可以减少步长,例如设为 500 毫秒(0.5 秒)。

  2. 使用更小的语言模型

    您可以考虑使用更小的语言模型,例如 Tiny Quantized (Q5_1),以减少模型大小并提高性能。如何选择语言模型的说明可以在这里找到。

  3. 优化识别状态管理

    在处理麦克风输入时,避免不必要地停止和启动语音识别器。频繁调用 StopSpeechRecognitionStartSpeechRecognition 需要重新分配资源,因此建议直接控制音频输入。例如,使用可捕获音波时,可以调用 StopCaptureStartCapture 来管理音频流,同时保持识别线程活跃。

  4. 修改 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__
  5. 使用加速库

    whisper.cpp 支持使用以下库来加速识别过程:

    请注意,这些库默认不包含在插件中,您需要按照 whisper.cpp 的说明手动安装它们。