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

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

تدعم موجة الصوت المتدفقة، جنبًا إلى جنب مع أنواعها المشتقة مثل موجة الصوت القابلة للالتقاط، إلغاء الصدى الصوتي (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++ لاستخدامه
  • لمزيد من المعلومات حول كيفية بناء الإضافات يدويًا، راجع برنامج تعليمي لبناء الإضافات

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

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

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

تمكين AEC

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

عقدة Bind AEC To Sound Wave Playback

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

Unbind AEC From Sound Wave Playback node

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

تأخير البث

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

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

إعادة ضبط AEC

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

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

تلميح

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