متابعة المستخدمين في قنوات Discord الصوتية مع OpenClaw
تواجد يتتبع أشخاصًا محددين، وأوضاع الانضمام الثلاثة، وخط معالجة STT-TTS، وجلسات agent-proxy وأهدافها، والتحكم المباشر في التشغيل بالصوت، وضبط المقاطعة في الغرف كثيرة الصدى
في إعداد شخصي أو إعداد خاص بالمشغل، السلوك الصوتي الطبيعي هو أن يكون البوت حيثما تكون. يجعل وضع المتابعة في OpenClaw بوت Discord الصوتي يتتبع مستخدمين محددين أثناء تنقلهم بين القنوات الصوتية، فينضم عندما ينضم أحد المستخدمين الذين يتابعهم إلى قناة مسموح بها، وينتقل عندما ينتقل، ويغادر عندما يقطع اتصاله. إليك الإعداد وقواعده، ومقارنته بأوضاع الانضمام الأخرى، وخط المعالجة الصوتي، وكيف ترتبط الجلسات الصوتية بجلسات الوكيل وأهدافها، وما الذي يفهمه التشغيل المفوض عندما تتحدث إليه، والضبط المناسب للغرف التي تسمع ما تشغله هي نفسها.
قواعد المتابعة
- تقبل قائمة المتابعة معرفات مستخدمي Discord الخام أو المعرفات ذات البادئة وتوحد صيغة النوعين؛ ويكون خيار التفعيل مفعلًا افتراضيًا عند تهيئة القائمة، ويمكن تعطيله للاحتفاظ بالقائمة دون متابعة تلقائية؛ والقائمة تتحكم في التواجد الصوتي فقط، ولا تمنح صلاحية التحدث ولا سلطة المالك، فهاتان تأتيان من مالكي الأوامر ومن مستخدمي الخادم أو القناة وأدوارهما.
- إذا كان عدة مستخدمين من قائمة المتابعة في خادم Discord واحد وغادر المستخدم النشط، ينتقل البوت إلى قناة مستخدم آخر يتتبعه قبل مغادرة الخادم، وعندما ينتقل عدة مستخدمين في آن واحد يكون الحسم لأحدث حدث لحالة الصوت؛ وتظل قائمة القنوات المسموح بها سارية، فيُتجاهل المستخدم المتابع الموجود في قناة غير مسموح بها، وتنتقل الجلسة إلى غيره أو تغادر.
- تتم مطابقة أحداث حالة الصوت الفائتة عند بدء التشغيل وعلى فترات محدودة، بأخذ عينات من الخوادم المهيأة ووضع سقف لعمليات البحث عبر REST في كل دورة، لذا قد تحتاج القوائم الكبيرة جدًا إلى أكثر من فترة واحدة لتستقر؛ والبوت الذي ينقله Discord أو أحد المشرفين يعيد بناء جلسته ويحتفظ بملكية المتابعة إذا كانت الوجهة مسموحًا بها، وكذلك تحتفظ بها عملية استعادة التشفير التي تغادر القناة نفسها ثم تعود إليها.
- ثلاثة أوضاع للانضمام: المتابعة للإعدادات الشخصية أو إعدادات المشغل حيث ينبغي أن يكون البوت في القناة الصوتية حين تكون أنت فيها، والانضمام التلقائي للغرف الثابتة مع خيار «عند الإشغال» حين ينبغي أن يحضر البوت فقط ما دام هناك بشر، وأمر الانضمام اليدوي للغرف العابرة حيث سيكون الحضور التلقائي مفاجئًا.
يتحكم followUsers في التواجد الصوتي فقط. ولا يمنح صلاحية التحدث أو سلطة المالك؛ اضبط commands.ownerAllowFrom ومستخدمي الخادم أو القناة وأدوارهما بشكل منفصل.
خط المعالجة والجلسات
يفك الاستقبال الصوتي الترميز باستخدام مرمز Opus المبني على WebAssembly والمضمن في الحزمة، ويرمز التشغيل الفوري صوت PCM ستيريو خامًا بتردد 48 كيلوهرتز إلى Opus بالحزمة نفسها، أما تشغيل الملفات أو تدفقات المزودين فيمر أولًا بتحويل الترميز عبر ffmpeg. في خط معالجة STT-TTS، يتحول صوت PCM الملتقط إلى ملف WAV مؤقت، ويتولى إعداد الصوت الخاص بالوسائط تحويل الكلام إلى نص، ويحترم الالتقاط الدفعي أكبر حد منطبق لمدخلات الصوت ويوقف الالتقاطات المتجاوزة للحجم مع تحذير بدل تحويل صوت منقوص إلى نص، ويمر النص المفرغ عبر مدخل Discord وتوجيهه بينما يعمل نموذج الرد وفق سياسة إخراج صوتي تخفي أداة TTS الخاصة بالوكيل وتطلب نصًا، والنموذج الصوتي يحل محل نموذج الرد ذاك فقط، ويُدمج قسم TTS الصوتي فوق القسم العام، إذ يغذي مزودو البث المشغل مباشرة. وفي غياب قسم جلسة الوكيل، تحصل كل قناة صوتية على جلستها الموجهة الخاصة، ولا يكون النموذج الفوري سوى الواجهة الأمامية، وتذهب الطلبات الجوهرية إلى الوكيل المهيأ، والنص النهائي الذي ينتج دون أداة الاستشارة يفرض الاستشارة كحل احتياطي. والهدف المكتوب بصيغة معرف قناة أو بالمعرف المجرد يوجه الصوت عبر جلسة تلك القناة النصية، وصيغة الرسالة المباشرة أو المستخدم توجهه عبر جلسة تلك الرسالة المباشرة، مع بقاء الوكيل المشرف حرًا في استخدام أدوات الرسائل الخاصة به، بما في ذلك إرسال رسالة Discord منفصلة عندما يكون ذلك هو التصرف الصحيح.
التحكم في التشغيل والصدى
- أثناء نشاط تشغيل مفوض، تعامل نصوص الكلام المفرغة من متحدثين مخولين بإصدار الأوامر على أنها تحكم مباشر في التشغيل قبل بدء دور جديد: عبارات مثل «الحالة» و«ألغِ ذلك» و«استخدم الإصلاح الأصغر» أو «عندما تنتهي تحقق من الاختبارات أيضًا» تصنف على أنها استعلام عن الحالة أو إلغاء أو توجيه أو طلب لاحق، ويُنطق الناتج صوتيًا ليعرف المتصل ما إذا كان طلبه قد عولج؛ والاستشارة الملغاة تسجل إلغاءً لا فشلًا، واستدعاءات الأدوات المتأخرة من المزود تلقى الإلغاء النهائي نفسه، وتبقى الجلسة متاحة للطلب التالي.
- بالنسبة إلى نموذج يسمع صوت تشغيله عبر ميكروفون مفتوح، يمنع مثال الغرف كثيرة الصدى المزود من المقاطعة التلقائية بناءً على صوت الإدخال الخام، بينما تسمح المقاطعة بالكلام (barge-in) لأحداث بدء المتحدث في Discord ولصوت المتحدث النشط بإلغاء الردود، ويعامل حد أدنى لنهاية الصوت، خمسمائة مللي ثانية في المثال، الإشارات المبكرة جدًا على أنها صدى محتمل كي لا ينقطع النموذج عند أول إطار تشغيل.
- تسرد الوثائق أسطر السجل المتوقعة: الانضمام مع الصوت والمشرف ووضع الجلسة والنماذج؛ وبدء الجسر الفوري مع خيارات الرد التلقائي والمقاطعة وbarge-in الخاصة به؛ وفتح أدوار المتحدثين وإغلاقها مع عدد البايتات؛ وتخطي الكلام القديم مع سببه؛ وانتهاء التشغيل وتخزينه المؤقت وتوقفه؛ وطلب الاستشارات والرد عليها؛ ووضع الكلام الحرفي في الطابور وإخراجه منه عندما يصبح المشغل خاملًا؛ واكتشاف barge-in وطلبه؛ ومقاطعات النموذج المطلوبة أو المقتطعة أو المؤكدة أو المتجاهلة باعتبارها صدى.
يعرض دليل OpenClaw في القنوات الصوتية على Discord الواجهة الصوتية الكاملة التي تعمل ضمنها هذه الأوضاع، ويعرض دليل OpenClaw على Discord القناة وصلاحيات Intents التي تحتاجها.
الصوت بوصفه واجهة تحكم
الجانب المثير في وضع المتابعة ليس المتابعة نفسها، بل ما تتيحه: وكيل موجود في الغرفة حين تكون فيها، يمكنك توجيهه أو إلغاء عمله أو سؤاله في منتصف التشغيل بمجرد الكلام، وتعود إجاباته في القناة نفسها. ويمثل توجيه تشغيل OpenClaw نشط المكافئ النصي لعبارات التحكم في التشغيل المنطوقة تلك، ويشرح مقال جلسات OpenClaw الجلسات الموجهة التي تختارها صيغة الهدف.
على Diali
على Diali، يعد وضع المتابعة جزءًا من قسم الصوت نفسه الذي تديره بنفسك مثل بقية ميزات الصوت في Discord، بينما يُربط بوت Discord نفسه من لوحة التحكم؛ وستنطبق قواعد التواجد دون تغيير بمجرد تفعيل الصوت. تقدم صفحة OpenClaw المستضاف على Diali المساعد، وتصف صفحة الأمان في Diali الحدود المحيطة به.
- المتابعة أو الانضمام التلقائي أو الانضمام اليدوي: ثلاث طرق لدخول الغرفة.
- التواجد لا يمنح شيئًا؛ فالمالكون والأدوار هم من يقررون دائمًا.
- الحالة والإلغاء والتوجيه والطلب اللاحق، كلها بالصوت.
كفاك قراءة، ابنِ وكيلك الخاص
جهز وكيلًا، واختر قناة، واجعله يعمل داخل التطبيق المفتوح لديك دائمًا.
