بث مباشر: غرف صوتية وفيديو بأسلوب ديسكورد، أصبحت الآن مدمجة مع ديسكورس 🎙

:warning: لقد قمنا للتو بإعادة تسمية هذا المكوّن من “Voice” إلى “Live”. أصبح اسم المكوّن الآن Discourse Live، أو ببساطة Live.

في أواخر العام الماضي، شاركنا معكم Resenha، وهو تجربة أضافت غرف صوتية وفيديو بأسلوب Discord مباشرةً داخل Discourse. لا حاجة لتطبيقات خارجية، فقط اتصال WebRTC بين الأقران (Peer-to-Peer) في شريطك الجانبي.

نجحت التجربة. كنا نستخدمها لاجتماعاتنا الخاصة منذ ذلك الحين، واليوم تتخرج: أصبح اسم Resenha Voice، ويُشحن كمكوّن أساسي مدمج مع كل تثبيت لـ Discourse. :tada:

ما الذي ستحصل عليه

  • غرف تعتمد على الشريط الجانبي — انقر للانضمام أو المغادرة، شاهد صور المشاركين الحية مع مؤشرات كلام متحركة، وواصل تصفح المنتدى أثناء التحدث. لا تغيير في المسار، لا نافذة منبثقة، ويتبعك ويدجت مكالمة مضغوط حول الموقع.
  • مشاركة الفيديو والشاشة — تحصل كل غرفة على صفحة كاملة بشبكة بلاطات؛ يتم تبديل الكاميرا ومشاركة الشاشة فوراً، ويتكيف الجودة تلقائياً مع عدد المشاهدين.
  • ضبابية الخلفية — تقسيم الأشخاص بواسطة MediaPipe يعمل بالكامل في متصفحك، مع معاينة حية وقوة قابلة للتعديل.
  • كبت الضوضاء — اختر بين ثلاثة محركات ذكاء اصطناعي (RNNoise، DTLN، DeepFilterNet3) تعمل كعناصر عمل صوتية WebAssembly، من الخفيفة إلى مستوى الاستوديو.
  • ترجمات حية — اختيارية، ترجمات جانب المشاهد مدعومة بتعرف الكلام NVIDIA Parakeet الذي يعمل محلياً عبر WebGPU. متعددة اللغات، من أحدث التقنيات، ذكاء اصطناعي محلي. يمكنك أيضاً تسجيل نص المكالمة مباشرةً في مسودة الموضوع.
  • مكالمات مباشرة — اتصل بشخص ما مباشرةً من بطاقة المستخدم أو ملفه الشخصي.
  • دردشة نصية لكل غرفة — مدعومة بدردشة Discourse الحقيقية: تحصل كل مكالمة على موضوع خاص بها في قناة دردشة الغرفة.
  • صلاحيات وإدارة الغرف — غرف عامة، مقيدة بالمجموعات، وخاصة؛ إنشاء الغرف من قبل المستخدمين مقيد بالمجموعات؛ كتم الصوت، إلغاء تفعيل السماعات، حجم الصوت لكل مستخدم، والطرد.
  • إشارات صوتية ذات سمة — نغمات الانضمام/المغادرة والمكالمات تتبع حزمة أصوات إشعارات الدردشة لديك، لذا يبدو Voice متناسقاً مع بقية موقعك.

كيف يعمل

بشكل افتراضي، كل شيء يعتمد على الاتصال بين الأقران: خادم Discourse الخاص بك يتعامل فقط مع الإشارات (signaling)، وتنتقل الوسائط مباشرةً بين المشاركين مع تشفير DTLS-SRTP. بنية تحتية إضافية صفرية، مثالي لغرف تصل إلى ~50 شخصاً بالصوت، أو حتى 10 بالفيديو.

جميع عمليات معالجة الصوت والفيديو (كبت الضوضاء، ضبابية الخلفية، الترجمات) تحدث محلياً على جهاز كل مشارك. لا يُرسل أي شيء لأطراف ثالثة.

هل تحتاج مكالمات أكبر؟ وجّه المكوّن إلى خادم LiveKit سحابي أو مُستضاف ذاتياً LiveKit ومرّر جميع الغرف (أو بعضها) من خلاله. ينشر كل مشارك كل مسار مرة واحدة بالضبط، بغض النظر عن حجم الغرفة. يمكن لغرف LiveKit المرورة أيضاً تسجيل المكالمات، مع التحكم بالتسجيل مباشرةً من واجهة الغرفة في Discourse.

كيفية التفعيل

:discourse: Voice متاح في جميع خطط الاستضافة لدينا. تكامل LiveKit للمكالمات الأكبر متاح في خططنا Business وEnterprise؛ ويمكن للمستخدمين الذين يستضيفون بأنفسهم :discourse-bw: توجيهه إلى خادم LiveKit الخاص بهم.

Voice مدمج مع Discourse، لذلك لا يوجد ما يحتاج إلى تثبيته. فعّله عبر Admin > Settings > Plugins > voice enabled. يزرع المكوّن غرفة افتراضية باسم “Watercooler” ليكون هناك مكان للتواجد فيه فوراً.

من هناك، يتحكم voice_allowed_groups في من يمكنه الانضمام إلى الغرف، ويتحكم voice_create_room_allowed_groups في من يمكنه إنشائها (المشرفون، moderators، و TL2 بشكل افتراضي). الفيديو مفعّل بشكل افتراضي. المكالمات المباشرة غير مفعلة حتى تختار بعض المجموعات في voice_direct_calls_allowed_groups، والترجمات اختيارية عبر voice_subtitles_enabled (تحتاج إلى WebGPU، وينزل كل مستخدم نموذج بحجم ~2.5 جيجابايت مرة واحدة).

إذا كنت تستخدم مكوّن Resenha من مستودعي الشخصي، قم بإزالته من app.yml عند أول فرصة، لأن مكوّن Voice المدمج يحل محله.

الحالة

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

مرحباً بالملاحظات

جرّبه وأخبرنا كيف سارت الأمور! الأخطاء، الأفكار، والأسئلة كلها مرحب بها في هذا الموضوع. طلبات الدمج (PRs) أيضاً، أصبحت أسهل من أي وقت مضى: الكود موجود في core. :microphone:

69 إعجابًا

انتظر … وااا … الفيديو أيضًا؟

Man's Mind Blown Reaction

رائع!

13 إعجابًا

واو، حقًا؟

هل هناك تعليمات لاختبار هذا على المستضافات الذاتية؟ مثلًا، باستخدام حاوية Docker منفصلة؟

إعجابَين (2)

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

6 إعجابات

أظن أنك تقصد غرفًا صوتية ومرئية على غرار ديسكورس؟ :innocent: :grin:

14 إعجابًا

إذن، هل يمكنني التخلي عن مفاتيح النشر/السرّية في Nats، والنطاقات الفرعية، وخادم Coturn، وجميع السكربتات التي كنت أحاول إنشائها، من أجل الحصول على خادم Livekit آمن يعمل كجسر؟

حتى لو كان عليّ أن أكمل العمل عليه، فشكراً لك على بناء هذا!

3 إعجابات

أقصد، إذا كنت ترغب في استخدام خادم Coturn مخصص لـ STUN/TURN على مثيلتك، فتفضل. الأمر نفسه ينطبق على LiveKit؛ إذا كنت ترغب في استخدامه، فأنت مرحب به.

إنها ليست إلزامية لإجراء المكالمات بشكل افتراضي، لكننا نوفر هذه المرونة.

3 إعجابات

هذا خبر رائع! كان لديّ إحساس بأنّ هذا سيحدث، شكرًا لك @Falco

4 إعجابات

تم تقسيم منشور إلى موضوع جديد: إظهار حالة LiveKit في مُسلسِل إعدادات الموقع

فوّتُ الإعلان الأصلي، وأنا متحمّس لهذه الميزة إلى حد أنني حدّثت Discourse للتو، رغم أن التحديث الأخير كان قبل أربعة أيام فقط.

لا أستطيع الانتظار حتى يبدأ الناس باستخدامها!

شكرًا جزيلًا! :tada:

سؤال كبير: هل يمكن لأي شخص إنشاء غرفة فيديو، أم يمكن تقييد ذلك بناءً على الصلاحيات أو مستوى الثقة؟

تعديل إضافي: وجدتُ أدوات التحكم بعد تفعيل الميزة.

4 إعجابات

مذهل :clap: ! أعتقد أن Discourse أصبح الآن يمتلك مجموعة ميزات جيدة جدًا بحيث يمكنه حتى استبدال بعض مجتمعات Discord، والمنافسة معه حقًا.

10 إعجابات

تم تقسيم 3 منشورات إلى موضوع جديد: أذونات دقيقة للكاميرات ومشاركة الشاشة

يمكن تقييده حسب المجموعة.

3 إعجابات

Kerehn-1: Cool Cat in Sunglasses

إعجابَين (2)

سيكون من المثير للاهتمام وجود زر مشابه لزر الدردشة، يُظهر نافذة لإضافة الصوت (Voice Plugin)، تعرض الغرف وقائمة المستخدمين مع وظيفة البحث. خاصةً عند الاستخدام على الهاتف المحمول. إنها مجرد فكرة :sweat_smile:

إعجاب واحد (1)

يمكن عرض غرف الصوت في الدردشات، فهل هذا كافٍ لما تبحث عنه؟

الزر ليس مخصصًا للصوت فقط، بل لجميع الدردشات، حيث يمكن للمستخدمين الدخول إلى غرف الصوت أو مغادرتها من هناك :ok_hand:

3 إعجابات

هل يمكنك أن ترسل لي لقطات شاشة للنتيجة، لأنني لا أفهم هذا الجزء جيدًا (الصالون/الدردشة) :sweat_smile:

أوه، يمكنك تجربتها بالفعل. ما عليك سوى تفعيل الإعداد تفعيل دردشة الصوت وفتح شاشة الدردشة maximized :slight_smile:

تم تفعيل صوت القط، لكنني لا أرى أي تغيير في وضع ملء الشاشة، ما لم أكن على خطأ تام:rofl:

حسنًا، لقد وجدتُ الأمر :sweat_smile: أعتذر عن الإزعاج

إعجاب واحد (1)