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

كيفية استخدام الإضافة

تم تصميم إضافة Runtime Speech Recognizer للتعرف على الكلمات من بيانات الصوت الواردة. تستخدم نسخة معدلة قليلاً من whisper.cpp للعمل مع المحرك. لاستخدام الإضافة، اتبع الخطوات التالية:

جانب المحرر

  1. حدد نماذج اللغة المناسبة لمشروعك كما هو موضح هنا.

جانب التشغيل

  1. أنشئ مُتعرف كلام وحدد المعلمات الضرورية (CreateSpeechRecognizer، للمعاملات انظر هنا).
  2. اربط المفوضين المطلوبين (OnRecognitionFinished، OnRecognizedTextSegment و OnRecognitionError).
  3. ابدأ التعرف على الكلام (StartSpeechRecognition).
  4. معالجة بيانات الصوت وانتظر النتائج من المفوضين (ProcessAudioData).
  5. أوقف مُتعرف الكلام عند الحاجة (مثلاً بعد بث OnRecognitionFinished).

تدعم الإضافة بيانات الصوت الواردة بتنسيق PCM 32-bit floating point متداخل. بينما تعمل بشكل جيد مع Runtime Audio Importer، إلا أنها لا تعتمد عليها مباشرة.

معلمات التعرف

تدعم الإضافة التعرف على بيانات الصوت سواء كانت متدفقة أو غير متدفقة. لضبط معلمات التعرف لحالة استخدام محددة، استدعِ SetStreamingDefaults أو SetNonStreamingDefaults. بالإضافة إلى ذلك، لديك المرونة لتعيين معلمات فردية يدوياً مثل عدد الخيوط، حجم الخطوة، ما إذا كنت تريد ترجمة اللغة الواردة إلى الإنجليزية، وما إذا كنت تريد استخدام النص المكتوب سابقاً. راجع قائمة معلمات التعرف للحصول على قائمة كاملة بالمعلمات المتاحة.

تحسين الأداء

يرجى الرجوع إلى قسم كيفية تحسين الأداء للحصول على نصائح حول كيفية تحسين أداء الإضافة.

كشف النشاط الصوتي (VAD)

عند معالجة مدخلات الصوت، خاصة في السيناريوهات المتدفقة، يُنصح باستخدام كشف النشاط الصوتي (VAD) لتصفية مقاطع الصوت الفارغة أو التي تحتوي على ضوضاء فقط قبل وصولها إلى المُتعرف. يمكن تمكين هذا التصفية على جانب موجة الصوت القابلة للتسجيل باستخدام إضافة Runtime Audio Importer، مما يساعد على منع نماذج اللغة من التخيل - محاولة العثور على أنماط في الضوضاء وإنشاء نصوص غير صحيحة.

للحصول على أفضل نتائج للتعرف على الكلام، نوصي باستخدام موفر Silero VAD الذي يوفر تحملاً أفضل للضوضاء وكشفاً أكثر دقة للكلام. يتوفر Silero VAD كامتداد لإضافة Runtime Audio Importer. للحصول على تعليمات مفصلة حول تكوين VAD، راجع توثيق كشف النشاط الصوتي.

:::ملاحظة العقد القابلة للنسخ في الأمثلة أدناه تستخدم موفر VAD الافتراضي لأسباب التوافق. لتحسين دقة التعرف، يمكنك بسهولة التبديل إلى Silero VAD عن طريق:

  1. تثبيت امتداد Silero VAD كما هو موضح في قسم امتداد Silero VAD
  2. بعد تمكين VAD مع عقدة Toggle VAD، أضف عقدة Set VAD Provider واختر "Silero" من القائمة المنسدلة :::

في مشروع العرض المضمن مع الإضافة، يتم تمكين VAD افتراضياً. يمكنك العثور على مزيد من المعلومات حول تنفيذ العرض في مشروع العرض.

أمثلة

يوجد مشروع عرض جيد مضمن في مجلد Content -> Demo الخاص بالإضافة، والذي يمكنك استخدامه كمثال للتنفيذ.

توضح هذه الأمثلة كيفية استخدام إضافة Runtime Speech Recognizer مع كل من مدخلات الصوت المتدفقة وغير المتدفقة، باستخدام Runtime Audio Importer للحصول على بيانات الصوت كمثال. يرجى ملاحظة أن تنزيل RuntimeAudioImporter بشكل منفصل مطلوب للوصول إلى نفس مجموعة ميزات استيراد الصوت المعروضة في الأمثلة (مثل موجة الصوت القابلة للتسجيل و ImportAudioFromFile). هذه الأمثلة مخصصة فقط لتوضيح الفكرة الأساسية ولا تتضمن معالجة الأخطاء.

أمثلة مدخلات الصوت المتدفقة

ملاحظة: في UE 5.3 والإصدارات الأخرى، قد تواجه عقداً مفقودة بعد نسخ Blueprints. يمكن أن يحدث هذا بسبب الاختلافات في تسلسل العقد بين إصدارات المحرك. تحقق دائماً من أن جميع العقد متصلة بشكل صحيح في تنفيذك.

1. التعرف الأساسي على الصوت المتدفق

يوضح هذا المثال الإعداد الأساسي لتسجيل بيانات الصوت من الميكروفون كتدفق باستخدام موجة الصوت القابلة للتسجيل وتمريرها إلى مُتعرف الكلام. يسجل الكلام لمدة حوالي 5 ثوانٍ ثم يعالج التعرف، مما يجعله مناسباً للاختبارات السريعة والتنفيذات البسيطة. عقد قابلة للنسخ.

الميزات الرئيسية لهذا الإعداد:

  • مدة تسجيل ثابتة لمدة 5 ثوانٍ
  • تعرف لمرة واحدة بسيط
  • متطلبات إعداد بسيطة
  • مثالي للاختبار وإنشاء النماذج

2. التعرف المتحكم به على الصوت المتدفق

يمتد هذا المثال عن الإعداد الأساسي للتدفق بإضافة تحكم يدوي في عملية التعرف. يسمح لك ببدء وإيقاف التعرف عند الرغبة، مما يجعله مناسباً للسيناريوهات التي تحتاج فيها إلى تحكم دقيق في وقت حدوث التعرف. عقد قابلة للنسخ.

الميزات الرئيسية لهذا الإعداد:

  • تحكم يدوي بالبدء/الإيقاف
  • قدرة التعرف المستمر
  • مدة تسجيل مرنة
  • مناسب للتطبيقات التفاعلية

3. التعرف على الأوامر المفعلة بالصوت

تم تحسين هذا المثال لسيناريوهات التعرف على الأوامر. يجمع بين التعرف المتدفق و كشف النشاط الصوتي (VAD) لمعالجة الكلام تلقائياً عندما يتوقف المستخدم عن الكلام. يبدأ المُتعرف في معالجة الكلام المتراكم فقط عند اكتشاف الصمت، مما يجعله مثالياً لواجهات الأوامر. عقد قابلة للنسخ.

الميزات الرئيسية لهذا الإعداد:

  • تحكم يدوي بالبدء/الإيقاف
  • تمكين كشف النشاط الصوتي (VAD) لاكتشاف مقاطع الكلام
  • تشغيل التعرف تلقائياً عند اكتشاف الصمت
  • مثالي للتعرف على الأوامر القصيرة
  • تقليل عبء المعالجة بالتعرف فقط على الكلام الفعلي

4. تهيئة التعرف الصوتي التلقائي مع معالجة المخزن المؤقت النهائي

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

الميزات الرئيسية لهذا الإعداد:

  • يبدأ المُتعرف تلقائياً عند التهيئة
  • يوقف المُتعرف تلقائياً عند إلغاء التهيئة
  • يعالج مخزن الصوت المؤقت النهائي قبل التوقف تماماً
  • يستخدم كشف النشاط الصوتي (VAD) للتعرف الفعال
  • يضمن عدم فقدان بيانات الكلام عند التوقف

مدخلات الصوت غير المتدفقة

يستورد هذا المثال بيانات الصوت إلى موجة الصوت المستوردة ويتعرف على بيانات الصوت الكاملة بمجرد استيرادها. عقد قابلة للنسخ.