Zum Hauptinhalt springen

Wie man die Leistung verbessert

Windows-Plattformen nutzen Vulkan für GPU-Beschleunigung, was den Erkennungsprozess erheblich beschleunigt. Auf anderen Plattformen verwendet das Plugin die CPU + Intrinsics zur Beschleunigung. Sie können die Leistung des Plugins jedoch weiter verbessern, indem Sie die folgenden Empfehlungen befolgen:

  1. Schrittgröße verringern

    Standardmäßig beträgt die Schrittgröße 5000 ms (5 Sekunden), was bedeutet, dass die Audiodaten während der Aufnahme alle 5 Sekunden erkannt werden. Wenn Sie die Audiodaten häufiger erkennen möchten, können Sie die Schrittgröße verringern, z.B. auf 500 ms (0,5 Sekunden).

  2. Ein kleineres Sprachmodell verwenden

    Sie können ein kleineres Sprachmodell in Betracht ziehen, wie z.B. Tiny Quantized (Q5_1), um die Modellgröße zu reduzieren und die Leistung zu verbessern. Anweisungen zur Auswahl eines Sprachmodells finden Sie hier.

  3. Erkennungszustandsverwaltung optimieren

    Vermeiden Sie bei der Arbeit mit Mikrofoneingaben unnötiges Stoppen und Starten des Spracherkenners. Anstatt häufig StopSpeechRecognition und StartSpeechRecognition aufzurufen, was eine Neuverteilung von Ressourcen erfordert, sollten Sie die Audioeingabe direkt steuern. Bei einer aufnehmbaren Soundwelle können Sie beispielsweise StopCapture und StartCapture verwenden, um den Audiostrom zu verwalten, während der Erkennungsthread aktiv bleibt.

  4. CPU-Befehlssätze anpassen

    Die im Plugin verwendete zugrunde liegende Bibliothek ist whisper.cpp, die CPU-Befehlssätze nutzt, um die Leistung der Erkennung zu erhöhen. Derzeit sind die Befehlssätze im Code des Plugins hartkodiert und werden durch Approximation/Wahrscheinlichkeit ihrer Verfügbarkeit basierend auf verschiedenen Makros definiert, aufgrund von UE-Einschränkungen für die Weitergabe von Compiler-Flags. Sie können die Datei SpeechRecognizerPrivate.h manuell anpassen, um die Befehlssätze zu definieren, die von Ihrer Zielplattform unterstützt werden. Hier ist die Liste der derzeit von whisper.cpp verwendeten Befehlssätze, die Sie manuell in der Datei SpeechRecognizerPrivate.h definieren können:

    • AVX- und AVX2-Familie:

      • __AVX__
      • __AVXVNNI__
      • __AVX2__
      • __AVX512F__
      • __AVX512VBMI__
      • __AVX512VNNI__
      • __AVX512BF16__
    • Gleitkomma- und SIMD-Erweiterungen:

      • __FMA__
      • __F16C__
      • __SSE3__
      • __SSSE3__
    • ARM-Architektur-Erweiterungen:

      • __ARM_NEON
      • __ARM_FEATURE_SVE
      • __ARM_FEATURE_FMA
      • __ARM_FEATURE_FP16_VECTOR_ARITHMETIC
      • __ARM_FEATURE_MATMUL_INT8
    • POWER-Architektur-Erweiterungen:

      • __POWER9_VECTOR__
  5. Beschleunigungsbibliotheken verwenden

    whisper.cpp kann den Erkennungsprozess durch die Verwendung der folgenden Bibliotheken beschleunigen: Core ML für Apple Silicon-Geräte, OpenVINO auf Geräten einschließlich x86-CPUs und Intel-GPUs, Nvidia GPU Cuda unter Windows oder Linux, BLAS CPU-Unterstützung via OpenBLAS, BLAS CPU-Unterstützung via Intel MKL. Bitte beachten Sie, dass diese Bibliotheken nicht standardmäßig im Plugin enthalten sind und Sie sie manuell installieren müssen, indem Sie den Anweisungen von whisper.cpp folgen.