كشف النشاط الصوتي
موجة الصوت المتدفقة، جنبًا إلى جنب مع أنواعها المشتقة مثل موجة الصوت القابلة للتسجيل، تدعم كشف النشاط الصوتي (VAD). يقوم VAD بتصفية بيانات الصوت الواردة لملء المخزن المؤقت الداخلي فقط عند اكتشاف الصوت.
يقدم المكون الإضافي تطبيقين لكشف النشاط الصوتي:
- كشف النشاط الصوتي الافتراضي
- كشف النشاط الصوتي Silero
يستخدم التطبيق الافتراضي libfvad، وهي مكتبة خفيفة الوزن لكشف النشاط الصوتي تعمل بكفاءة عبر جميع المنصات وإصدارات المحرك التي يدعمها Runtime Audio Importer.
متاح كمكون إضافي تمديدي، Silero VAD هو كاشف نشاط صوتي قائم على الشبكات العصبية يوفر دقة أعلى، خاصة في البيئات الصاخبة. يستخدم التعلم الآلي للت مييز بين الكلام والضوضاء الخلفية بشكل أكثر موثوقية.
الاستخدام الأساسي
لتمكين كشف النشاط الصوتي بعد إنشاء موجة صوت، استخدم الدالة ToggleVAD
:
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
StreamingSoundWave->ToggleVAD(true);
بعد تمكين VAD، يمكنك إعادة تعيينه في أي وقت:
- Blueprint
- C++
// Reset the VAD
StreamingSoundWave->ResetVAD();
إعدادات VAD الافتراضية
عند استخدام موفر VAD الافتراضي، يمكنك ضبط مستوى عدوانيته عن طريق تغيير وضع VAD:
- Blueprint
- C++
// Set the VAD mode (only works with the default VAD provider)
StreamingSoundWave->SetVADMode(ERuntimeVADMode::VeryAggressive);
تتحكم معلمة الوضع في مدى عدوانية كاشف النشاط الصوتي (VAD) في تصفية الصوت. القيم الأعلى أكثر تقييدًا، مما يعني أنها أقل عرضة للإبلاغ عن إيجابيات كاذبة ولكن قد تفوت بعض الكلام.
موفرو كاشف النشاط الصوتي (VAD)
بعد تمكين كاشف النشاط الصوتي (VAD) باستخدام دالة ToggleVAD
، يمكنك الاختيار بين مختلف موفري كاشف النشاط الصوتي (VAD) لتناسب احتياجاتك. المزود الافتراضي مدمج، بينما تتوفر موفرو إضافيون مثل Silero VAD من خلال إضافات الامتداد.
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Make sure to call ToggleVAD(true) before setting the provider
// Set the VAD provider to Silero VAD
StreamingSoundWave->SetVADProvider(URuntimeSileroVADProvider::StaticClass());
ملحق Silero VAD
يوفر Silero VAD كشفًا أكثر دقة للكلام باستخدام الشبكات العصبية. لاستخدامه:
-
تأكد من أن المكوّن الإضافي Runtime Audio Importer مثبت بالفعل في مشروعك
-
لإصدارات Unreal Engine 5.5 وأقدم: قبل تنزيل المكوّن الإضافي لملحق Silero VAD، تأكد من تعطيل NNERuntimeORT في مشروعك. قد يتسبب تفعيل NNERuntimeORT في تعطل البرنامج عند استخدام Silero VAD على هذه الإصدارات من المحرك بسبب التعارضات
-
قم بتنزيل المكوّن الإضافي لملحق Silero VAD من Google Drive
-
استخرج المجلد من الأرشيف الذي تم تنزيله إلى مجلد
Plugins
الخاص بمشروعك (قم بإنشاء هذا المجلد إذا لم يكن موجودًا) -
لإصدارات Unreal Engine 5.6 وأحدث: قم بتحرير ملف
RuntimeAudioImporterSileroVAD.uplugin
لإضافة تبعية NNERuntimeORT. في حقل "Plugins"، بعد تضمين RuntimeAudioImporter، أضف:
,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
- أعد بناء مشروعك (هذا الامتداد يتطلب مشروع C++)
-
VAD الافتراضي يعمل مع جميع إصدارات المحرك المدعومة بواسطة 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)
-
Silero VAD يدعم Unreal Engine 4.27 وجميع إصدارات UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, و 5.6)
-
UE 5.5 والإصدارات الأقدم: يجب تعطيل NNERuntimeORT قبل استخدام Silero VAD لمنع حدوث تعطل بسبب تضارب الإضافات
-
متطلب UE 5.6+: بدءًا من Unreal Engine 5.6، يتطلب امتداد Silero VAD إضافة تبعية الإضافة NNERuntimeORT يدويًا إلى ملف
.uplugin
-
Silero VAD متاح لأنظمة Windows وLinux وMac وAndroid (بما في ذلك Meta Quest) وiOS
-
يتم توفير هذا الامتداد كشفرة مصدرية ويتطلب مشروع C++ لاستخدامه
-
لمزيد من المعلومات حول كيفية بناء الإضافات يدويًا، راجع درس بناء الإضافات
بمجرد التثبيت، يمكنك تحديده كمزود VAD الخاص بك باستخدام الدالة SetVADProvider
مع مزود فئة Silero.