मुख्य कंटेंट तक स्किप करें

प्रदर्शन कैसे सुधारें

Windows प्लेटफॉर्म GPU त्वरण के लिए Vulkan का उपयोग करते हैं, जो पहचान प्रक्रिया को काफी तेज कर देता है। अन्य प्लेटफॉर्म पर, प्लगइन त्वरण के लिए CPU + intrinsics का उपयोग करता है। हालांकि, आप नीचे दिए गए सुझावों का पालन करके प्लगइन के प्रदर्शन को और भी बेहतर बना सकते हैं:

  1. स्टेप साइज कम करें

    डिफ़ॉल्ट रूप से, स्टेप साइज 5000 ms (5 सेकंड) होता है, जिसका अर्थ है कि कैप्चर के दौरान ऑडियो डेटा हर 5 सेकंड में पहचाना जाता है। यदि आप ऑडियो डेटा को अधिक बार पहचानना चाहते हैं, तो आप स्टेप साइज को कम कर सकते हैं, जैसे 500 ms (0.5 सेकंड) तक।

  2. छोटे भाषा मॉडल का उपयोग करें

    आप मॉडल का आकार कम करने और प्रदर्शन में सुधार करने के लिए एक छोटे भाषा मॉडल का उपयोग करने पर विचार कर सकते हैं, जैसे Tiny Quantized (Q5_1)। भाषा मॉडल का चयन कैसे करें, इसके निर्देश यहाँ पाए जा सकते हैं।

  3. पहचान स्थिति प्रबंधन को अनुकूलित करें

    माइक्रोफोन इनपुट के साथ काम करते समय, स्पीच रिकग्नाइज़र को अनावश्यक रूप से बंद और शुरू करने से बचें। StopSpeechRecognition और StartSpeechRecognition को बार-बार कॉल करने के बजाय, जिसमें संसाधनों का पुनः आवंटन आवश्यक होता है, ऑडियो इनपुट को सीधे नियंत्रित करने पर विचार करें। उदाहरण के लिए, कैप्चर करने योग्य साउंड वेव के साथ, पहचान थ्रेड को सक्रिय रखते हुए ऑडियो प्रवाह को प्रबंधित करने के लिए StopCapture और StartCapture का उपयोग करें।

  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 निम्नलिखित लाइब्रेरीज़ का उपयोग करके पहचान प्रक्रिया को तेज कर सकता है: Apple Silicon डिवाइसेज़ के लिए Core ML, x86 CPUs और Intel GPUs सहित डिवाइसेज़ पर OpenVINO, Windows या Linux पर Nvidia GPU Cuda, OpenBLAS के माध्यम से BLAS CPU सपोर्ट, Intel MKL के माध्यम से BLAS CPU सपोर्ट। कृपया ध्यान दें कि ये लाइब्रेरीज़ डिफ़ॉल्ट रूप से प्लगइन में शामिल नहीं हैं और आपको उन्हें मैन्युअल रूप से इंस्टॉल करना होगा, whisper.cpp के निर्देशों का पालन करते हुए।