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

إلغاء الصدى الصوتي

تدعم Streaming Sound Wave، جنبًا إلى جنب مع أنواعها المشتقة مثل Capturable Sound Wave، إلغاء الصدى الصوتي (AEC). يزيل AEC الصدى من الصوت المسجل بواسطة الميكروفون الناتج عن تشغيل إشارة التقديم (على سبيل المثال، الصوت المشغل عبر مكبرات الصوت). والنتيجة هي تسجيل صوتي أنظف في سيناريوهات الاتصال في الوقت الفعلي.

يوفر الإضافة AEC من خلال تنفيذ WebRTC AEC3، المتاح كإضافة امتداد خفيفة الوزن تشحن فقط كود AEC3 ذي الصلة. WebRTC AEC3 هو مزيل صدى صوتي عالي الجودة مستخدم على نطاق واسع عبر تطبيقات الاتصال في الوقت الفعلي. يقوم بنمذجة المسار الصوتي بين مكبرات الصوت والميكروفون لطرح الصدى من الإشارة المسجلة.

التثبيت

لاستخدام إلغاء الصدى الصوتي، تحتاج إلى تثبيت إضافة امتداد WebRTC AEC3:

  1. تأكد من أن إضافة Runtime Audio Importer مثبتة بالفعل في مشروعك
  2. قم بتنزيل إضافة امتداد WebRTC AEC3 من هنا
  3. استخرج المجلد من الأرشيف الذي تم تنزيله إلى مجلد Plugins الخاص بمشروعك (قم بإنشاء هذا المجلد إذا لم يكن موجودًا)
  4. أعد بناء مشروعك (يتطلب هذا الامتداد مشروع C++)
important
  • يدعم WebRTC AEC3 جميع إصدارات المحرك التي يدعمها 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)
  • يتم توفير هذا الامتداد ككود مصدري ويتطلب مشروع C++ لاستخدامه
  • WebRTC AEC3 متاح لأنظمة Windows و Linux و Mac و Android (بما في ذلك Meta Quest) و iOS
  • لمزيد من المعلومات حول كيفية بناء الإضافات يدويًا، راجع درس بناء الإضافات

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

يتضمن سير عمل AEC النموذجي ثلاث خطوات:

  1. تمكين AEC على Streaming Sound Wave / Capturable Sound Wave الخاص بك
  2. تكوين حجم جزء التقديم على صوت التقديم لتسليم إطارات مدتها 10 مللي ثانية
  3. ربط صوت التقديم الذي سيتم استخدام صوته لإلغاء الصدى من إشارة التسجيل

تمكين AEC

لتمكين AEC بعد إنشاء Streaming Sound Wave، استخدم الدالة ToggleAEC. يجب عليك تحديد معدل العينات وعدد القنوات لمعالج AEC. إذا كان الصوت المسجل أو صوت التقديم الوارد لا يتطابق مع هذه القيم، فسيتم إعادة أخذ العينات تلقائيًا، ومع ذلك، فإن معدل العينات المُكوَّن لا يزال يؤثر على الجودة (على سبيل المثال، 48000 هرتز ستعطي إلغاء صدى أفضل من 16000 هرتز) والأداء، لذلك من الجدير اختيار هذه القيم عن قصد بدلاً من تركها لإعادة أخذ العينات.

Toggle AEC node

يمكنك التحقق مما إذا كان AEC مفعلًا حاليًا:

Is AEC Enabled node

تكوين حجم جزء التقديم

يتطلب WebRTC AEC3 معالجة الصوت في أجزاء مدتها 10 مللي ثانية. لضمان تقديم موجة الصوت للبيانات الصوتية بحجم الإطار الصحيح، استخدم الدالة SetNumSamplesPerChunk على موجة الصوت المستوردة للتقديم Imported Sound Wave (موجة الصوت التي يتم تشغيلها عبر السماعات).

صيغة حساب العدد الصحيح للعينات لكل جزء هي:

Samples per chunk=SampleRate100\text{Samples per chunk} = \frac{\text{SampleRate}}{100}

على سبيل المثال، للصوت بتردد 48000 هرتز: 48000 / 100 = 480 عينة لكل قطعة.

عقدة Set Num Samples Per Chunk

ربط موجة الصوت المُصمَّتة

بعد تمكين إلغاء صدى الصوت (AEC) وضبط حجم القطعة، قم بربط موجة الصوت المُصمَّتة التي سيتم استخدام صوتها لتحديد وإزالة الصدى من إشارة الالتقاط. هذه عادةً ما تكون موجة الصوت التي يتم تشغيلها عبر مكبرات الصوت والتي قد يلتقطها الميكروفون:

عقدة ربط AEC بتشغيل موجة الصوت

لإلغاء ربط موجة الصوت المعروضة:

Unbind AEC From Sound Wave Playback node

إعدادات إضافية

تأخير البث

يمكنك تعيين تأخير البث المقدر (بالميلي ثانية) بين مسار عرض الصوت ومساره التقاطه. يأخذ هذا في الاعتبار زمن الانتقال في الأجهزة والنظام، على الرغم من أن WebRTC AEC3 يمكنه تقدير هذا تلقائيًا في كثير من الحالات:

عقدة تعيين تأخير بث AEC

إعادة ضبط AEC

يمكنك إعادة ضبط حالة معالج AEC الداخلي في أي وقت، مما يمسح أي نموذج صدى متراكم:

عقدة إعادة ضبط AEC

تلميح

يدعم WebRTC AEC3 معدلات عينات تبلغ 8000 و 16000 و 32000 و 48000 هرتز. يتم إعادة أخذ العينات للصوت غير المتطابق تلقائيًا، لكن هذا يأتي مع عبء أداء. للحصول على أفضل جودة وأداء، استخدم 48000 هرتز وطابق التكوين الفعلي للصوت لكل من تدفقات الالتقاط والعرض.