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:
-
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).
-
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. -
Erkennungszustandsverwaltung optimieren
Vermeiden Sie bei der Arbeit mit Mikrofoneingaben unnötiges Stoppen und Starten des Spracherkenners. Anstatt häufig
StopSpeechRecognition
undStartSpeechRecognition
aufzurufen, was eine Neuverteilung von Ressourcen erfordert, sollten Sie die Audioeingabe direkt steuern. Bei einer aufnehmbaren Soundwelle können Sie beispielsweiseStopCapture
undStartCapture
verwenden, um den Audiostrom zu verwalten, während der Erkennungsthread aktiv bleibt. -
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__
-
-
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.