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

اكتشاف نشاط الصوت

يدعم Streaming Sound Wave، بالإضافة إلى أنواعه المشتقة مثل Capturable Sound Wave، اكتشاف نشاط الصوت (VAD). تقوم VAD بتصفية بيانات الصوت الواردة لملء المخزن المؤقت الداخلي فقط عند اكتشاف الصوت.

يقدم المكون الإضافي تطبيقين لـ VAD:

يستخدم التنفيذ الافتراضي libfvad، وهي مكتبة خفيفة لاكتشاف نشاط الصوت تعمل بكفاءة عبر جميع المنصات وإصدارات المحرك التي يدعمها Runtime Audio Importer.

الاستخدام الأساسي

لتمكين VAD بعد إنشاء موجة صوتية، استخدم الدالة ToggleVAD:

Toggle VAD node

بعد تمكين VAD، يمكنك إعادة تعيينه في أي وقت:

عقدة إعادة تعيين VAD

إعدادات VAD الافتراضية

عند استخدام موفِّر VAD الافتراضي، يمكنك ضبط مستوى حساسيته عن طريق تغيير وضع VAD:

Set VAD Mode node

يتحكم معامل الوضع في مدى شدة تصفية VAD للصوت. القيم الأعلى تكون أكثر تقييدًا، مما يعني أنها أقل عرضة للإبلاغ عن الإيجابيات الخاطئة ولكنها قد تفوّت بعض الكلام.

مزوِّدو VAD

بعد تمكين VAD باستخدام وظيفة ToggleVAD، يمكنك الاختيار بين مزودين مختلفين لكشف النشاط الصوتي (VAD) لتناسب احتياجاتك. المزود الافتراضي مدمج، بينما يتوفر مزودون إضافيون مثل Silero VAD من خلال إضافات ملحقة.

عقدة Set VAD Provider

Silero VAD Extension

يوفر Silero VAD كشفًا أكثر دقة للكلام باستخدام الشبكات العصبية. لاستخدامه:

  1. تأكد من تثبيت إضافة Runtime Audio Importer بالفعل في مشروعك

  2. لـ UE 5.5 وما قبله: قبل تنزيل ملحق Silero VAD، تأكد من تعطيل NNERuntimeORT في مشروعك. قد يؤدي تمكين NNERuntimeORT إلى حدوث أعطال عند استخدام Silero VAD على إصدارات المحرك هذه بسبب تعارضات

  3. قم بتنزيل ملحق Silero VAD من هنا

  4. استخرج المجلد من الأرشيف الذي تم تنزيله إلى مجلد Plugins الخاص بمشروعك (أنشئ هذا المجلد إن لم يكن موجودًا)

  5. لـ UE 5.6 وما بعده: عدّل ملف RuntimeAudioImporterSileroVAD.uplugin لإضافة تبعية NNERuntimeORT. في حقل "Plugins"، بعد تضمين RuntimeAudioImporter، أضف:

,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. أعد بناء مشروعك (هذه الإضافة تتطلب مشروع C++)
important
  • يعمل كاشف النشاط الصوتي الافتراضي مع جميع إصدارات المحرك المدعومة من قبل Runtime Audio Importer (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, and 5.8)

  • يدعم Silero VAD إصدار Unreal Engine 4.27 وجميع إصدارات UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, and 5.8)

  • UE 5.5 والإصدارات الأقدم: يجب تعطيل NNERuntimeORT قبل استخدام Silero VAD لمنع الأعطال بسبب تعارضات الإضافات. في UE 5.3 تحديدًا، يجب أيضًا تعطيل NNERuntimeORTCpu و NNERuntimeORTGpu

  • متطلب UE 5.6+: بدءًا من Unreal Engine 5.6، تتطلب إضافة Silero VAD إضافة تبعية إضافة NNERuntimeORT يدويًا إلى ملف .uplugin

  • يتوفر Silero VAD لأنظمة Windows و Linux و Mac و Android (بما في ذلك Meta Quest) و iOS

  • يتم توفير هذه الإضافة كشفرة مصدرية وتتطلب مشروع C++ لاستخدامها

  • لمزيد من المعلومات حول كيفية بناء الإضافات يدويًا، راجع دليل بناء الإضافات

بمجرد التثبيت، يمكنك تحديده كمزود كاشف النشاط الصوتي (VAD) باستخدام دالة SetVADProvider مع مزود فئة Silero.

اكتشاف بدء وانتهاء الكلام

كشف النشاط الصوتي لا يكتشف فقط وجود الكلام، بل يتيح أيضًا اكتشاف بداية ونهاية نشاط الكلام. هذا مفيد لتشغيل الأحداث عندما يبدأ الكلام أو ينتهي أثناء التشغيل أو الالتقاط.

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

الحد الأدنى لمدة الكلام

يحدد معامل الحد الأدنى لمدة الكلام المقدار الأدنى من النشاط الصوتي المستمر المطلوب لتشغيل حدث بدء الكلام. يساعد هذا في تصفية الضوضاء القصيرة التي لا ينبغي اعتبارها كلامًا، لضمان أن النشاط الصوتي المستدام فقط هو ما يتم التعرف عليه. القيمة الافتراضية لـ الحد الأدنى لمدة الكلام هي 300 ميلي ثانية.

عقدة تعيين الحد الأدنى لمدة الكلام

مدة الصمت

تحدد معلمة مدة الصمت مدة الصمت المطلوبة لتفعيل حدث انتهاء الكلام. وهذا يمنع كشف الكلام من الانتهاء مبكرًا أثناء فترات التوقف الطبيعية بين الكلمات أو الجمل. القيمة الافتراضية لـ مدة الصمت هي 500 مللي ثانية.

Set Silence Duration node

ربط بمندوبي الكلام

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

ربط حدث عند بدء الكلام ربط حدث عند انتهاء الكلام

مقارنة موفري VAD

Default VAD (libfvad)

المزايا:

  • خفيف الوزن وفعال
  • يعمل على جميع المنصات
  • استخدام ضئيل للموارد
  • مناسب للأجهزة المحمولة والأجهزة منخفضة الطاقة

الأنسب لـ:

  • كشف الصوت البسيط في البيئات الهادئة
  • تطبيقات الهاتف المحمول
  • المشاريع حيث الأداء أولوية
  • عند الحاجة لدعم جميع المنصات بشكل شامل