본문으로 건너뛰기

성능 향상 방법

Windows 플랫폼에서는 Vulkan을 사용하여 GPU 가속을 수행하며, 이는 인식 과정을 크게 가속합니다. 다른 플랫폼에서는 CPU + 내장 함수를 사용하여 가속을 수행합니다. 그러나 아래의 권장 사항을 따라 플러그인의 성능을 더욱 향상시킬 수 있습니다:

  1. 단계 크기 줄이기

    기본적으로 단계 크기는 5000 ms(5초)로 설정되어 있으며, 이는 캡처하는 동안 오디오 데이터가 5초마다 인식된다는 의미입니다. 오디오 데이터를 더 자주 인식하려면 단계 크기를 500 ms(0.5초)로 줄일 수 있습니다.

  2. 더 작은 언어 모델 사용

    더 작은 언어 모델인 Tiny Quantized (Q5_1) 같은 모델을 사용하여 모델 크기를 줄이고 성능을 향상시킬 수 있습니다. 언어 모델을 선택하는 방법에 대한 지침은 여기에서 찾을 수 있습니다.

  3. CPU 명령 집합 변경

    플러그인에서 사용되는 기본 라이브러리는 인식 성능을 향상시키기 위해 CPU 명령 집합을 사용하는 whisper.cpp입니다. 현재 명령 집합은 플러그인의 코드에 하드 코딩되어 있으며 다양한 매크로에 따른 사용 가능성을 근거로 정의되어 있습니다. 이는 UE의 컴파일러 플래그 전달 제한 때문에 발생합니다. 목표 플랫폼에서 지원하는 명령 집합을 정의하기 위해 SpeechRecognizerPrivate.h 파일을 수동으로 수정할 수 있습니다. whisper.cpp에서 현재 사용되는 명령 집합 목록은 아래와 같습니다. 이는 SpeechRecognizerPrivate.h 파일에서 수동으로 정의할 수 있습니다:

    • AVX and AVX2 Family:

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

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

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

      • __POWER9_VECTOR__
  4. 가속 라이브러리 사용

    whisper.cpp는 다음 라이브러리를 사용하여 인식 프로세스를 가속화할 수 있습니다: Apple Silicon 기기를 위한 Core ML, x86 CPU와 Intel GPU를 포함하는 기기를 위한 OpenVINO, Windows 또는 Linux에서 Nvidia GPU Cuda, OpenBLAS를 통한 BLAS CPU 지원, Intel MKL을 통한 BLAS CPU 지원. 이러한 라이브러리는 기본적으로 플러그인에 포함되어 있지 않으며, whisper.cpp 설명서를 따라 수동으로 설치해야 합니다.