كيفية تحسين الأداء
تستخدم منصات Windows واجهة Vulkan لتسريع معالجة GPU، مما يزيد بشكل كبير من سرعة عملية التعرف. على المنصات الأخرى، يستخدم البرنامج المساعد وحدة المعالجة المركزية (CPU) بالإضافة إلى التعليمات الداخلية (intrinsics) للتسريع. ومع ذلك، يمكنك تحسين أداء البرنامج المساعد أكثر باتباع التوصيات التالية:
-
تقليل حجم الخطوة
بشكل افتراضي، يكون حجم الخطوة 5000 مللي ثانية (5 ثوانٍ)، مما يعني أن بيانات الصوت يتم التعرف عليها كل 5 ثوانٍ أثناء الالتقاط. إذا كنت ترغب في التعرف على بيانات الصوت بشكل أكثر تكرارًا، يمكنك تقليل حجم الخطوة، مثل 500 مللي ثانية (0.5 ثانية).
-
استخدام نموذج لغة أصغر
يمكنك التفكير في استخدام نموذج لغة أصغر، مثل
Tiny Quantized (Q5_1)
، لتقليل حجم النموذج وتحسين الأداء. يمكن العثور على تعليمات حول كيفية اختيار نموذج لغة هنا. -
تحسين إدارة حالة التعرف
عند العمل مع مدخلات الميكروفون، تجنب التوقف والبدء غير الضروريين لبرنامج التعرف على الكلام. بدلاً من استدعاء
StopSpeechRecognition
وStartSpeechRecognition
بشكل متكرر، مما يتطلب إعادة تخصيص الموارد، فكر في التحكم في مدخلات الصوت مباشرة. على سبيل المثال، مع موجة صوتية قابلة للالتقاط، استخدمStopCapture
وStartCapture
لإدارة تدفق الصوت مع الحفاظ على نشاط خيط التعرف. -
تغيير مجموعات تعليمات وحدة المعالجة المركزية
المكتبة الأساسية المستخدمة في البرنامج المساعد هي whisper.cpp، والتي تستخدم مجموعات تعليمات وحدة المعالجة المركزية لزيادة أداء التعرف. حاليًا، يتم ترميز مجموعات التعليمات في الكود داخل البرنامج المساعد وتحديدها عن طريق التقريب/الاحتمالية لوجودها اعتمادًا على وحدات الماكرو المختلفة، بسبب قيود Unreal Engine لتمرير أعلام المترجم. يمكنك تعديل ملف 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 ووحدات معالجة الرسوميات Intel، Nvidia GPU Cuda على Windows أو Linux، دعم وحدة المعالجة المركزية BLAS عبر OpenBLAS، دعم وحدة المعالجة المركزية BLAS عبر Intel MKL. يرجى ملاحظة أن هذه المكتبات غير مضمنة في البرنامج المساعد افتراضيًا ويجب عليك تثبيتها يدويًا، باتباع تعليمات whisper.cpp.