انتقل إلى المحتوى الرئيسي

تقليل حالات التجميد

يغطي هذا الدليل مصدرين شائعين للتجميد في ملحق RuntimeSpeechRecognizer ويقدم حلولًا عملية للتخفيف من تأثير الأداء.

موجة الصوت القابلة للالتقاط

عند بدء موجة الصوت القابلة للالتقاط باستخدام دالة StartCapture، قد تواجه تأخيرًا قصيرًا، وهو خاص بالمحرك ولا يمكن تجنبه حاليًا دون تعديل كود خاص بالمحرك. تختلف مدة هذا التأخير عبر المنصات، حيث يرتبط بتنفيذ كود خاص بالمنصة لاسترداد بيانات الصوت من جهاز الإدخال (الميكروفون). تم ملاحظة هذا التأخير على منصات مثل Windows وMac وAndroid وiOS وقد يكون ذا صلة بمنصات أخرى.

لتقليل هذا التوقف، فكر في بدء الالتقاط عن طريق استدعاء دالة StartCapture في وقت يكون تأثيره ضئيلًا، مثل أثناء شاشة التحميل. مباشرة بعد استدعاء StartCapture، استخدم دالة ToggleMute مع معلمة Mute مضبوطة على True. وعندما تكون مستعدًا لبدء التقاط بيانات الصوت، قم بتنشيط موجة الصوت القابلة للالتقاط عن طريق استدعاء ToggleMute مع معلمة Mute مضبوطة على False. يمكنك رؤية المزيد من المعلومات ذات الصلة هنا.

بدء التعرف على الكلام

عند تشغيل التعرف على الكلام عن طريق استدعاء StartSpeechRecognition، قد يحدث تجميد طفيف بسبب تحميل المحرك لأصل نموذج اللغة. على الرغم من أن هذه العملية مصممة لتكون غير متزامنة وتنفذ في خيط منفصل، إلا أن المحرك لا يزال ينفذ عمليات معينة داخليًا على خيط اللعبة، مما يؤدي إلى تأخير طفيف ملحوظ، خاصة مع الأصول الكبيرة مثل نماذج اللغة.

للقضاء على هذا التجميد، التزم بنفس المبدأ الموضح أعلاه: استدعِ StartSpeechRecognition في وقت يكون فيه تأثير التأخير مبررًا أو ضئيلًا، مثل أثناء شاشة التحميل.