The AI / news

ElevenAgents تتيح إعطاء صوت لشخصيات Unity غير القابلة للعب

ElevenAgents تتيح إعطاء صوت لشخصيات Unity غير القابلة للعب
3 دقيقة للقراءة

يمكن للاعبين الآن الاقتراب من شخصية في لعبة Unity والتحدث إليها بصوت عالٍ. يربط إصدار SDK الجديد ElevenAgents لـ Unity المشهد بعامل صوتي من ElevenLabs، والذي يستمع للاعب عبر الميكروفون، ويُسمع صوته، ويدير الجلسة عبر Conversation API. يعمل نفس الكود في محرر Unity، وعلى إصدارات سطح المكتب وفي WebGL، أي في متصفح الويب، بينما إصدارات iOS وAndroid وXR لا تزال في مرحلة التجربة التجريبية.

بدء محادثة

تتطلب الجلسة معرفًا لعامل تم إنشاؤه في لوحة تحكم ElevenLabs، والتي تحتوي على التوجيهات، أي التعليمات المعطاة للعامل، بالإضافة إلى الصوت. في المثال GettingStarted، المرفق مع SDK، تفتح منطقة كشف غير مرئية موضوعة حول الشخصية الجلسة عندما يدخل اللاعب وتغلقها عندما يخرج. لا تعيد الطريقة StartSessionAsync السيطرة إلا بعد فتح الاتصال وجاهزية أجهزة الصوت، وتختار وسيلة النقل المناسبة للبيئة المستهدفة. لا تفعل EndSession شيئًا إذا كانت الجلسة قد انتهت بالفعل.

شخصيات تتحدث وتستمع وتتصرف

بشكل افتراضي، يتم بث صوت العامل بصيغة ثنائية الأبعاد. عن طريق تمرير AudioSource الخاص، وهو مكون الصوت في Unity، كـ OutputAudioSource، يصدر الصوت من الشخصية نفسها. تُرجع الطريقة GetOutputVolume() مستوى الصوت الحالي للعامل، بين 0 و1، على جميع المنصات. يستخدم المثال ذلك لجعل مكعب يقفز أثناء تحدثه، ويمكن تطبيق نفس المبدأ لتحريك فم الشخصية.

تعبئ المتغيرات الديناميكية أماكن مثل {{mood}} في التوجيهات وفي الرسالة الأولى للعامل، مما يسمح لكل شخصية بإرسال قيمها الخاصة عند بدء جلستها. يمكن أن تكون هذه القيم سلاسل نصية أو أرقامًا أو قيمًا منطقية. في المثال، يتشارك مكعب أصفر وآخر أحمر، بمزاجين مختلفين، نفس العامل. للتغييرات الأكبر، تسمح Overrides باستبدال جزء من إعدادات العامل لجلسة معينة، مثل الرسالة الأولى أو الصوت. يجب تفعيل كل منها مسبقًا في إعدادات أمان العامل.

تُعلم الطريقة SendContextualUpdate العامل بأحداث اللعبة أثناء المحادثة، دون مقاطعته أو إضافة دور كلام لم يقله اللاعب. أما أدوات العميل، فتمكن العامل من تشغيل كود داخل اللعبة. يتم تعريف الأداة في إعدادات العامل، ثم يتم تسجيل معالج يحمل نفس الاسم داخل اللعبة. يقوم SDK بتحويل المعلمات من صيغة JSON باستخدام Newtonsoft Json ويرد للعامل بما يعيده المعالج. يمكن للأخير إرجاع كائن Awaitable للمهام الطويلة، أو رفع استثناء ClientToolException لشرح سبب فشل إجراء ما.

تُطلق أحداث مثل UserTranscriptReceived وAgentResponded وModeChanged أو Interrupted على الخيط الرئيسي لـ Unity، مما يسمح بتحديث الواجهة مباشرة. تتيح SendUserMessage إرسال نص، وSetMicMuted إيقاف الميكروفون، وSetVolume ضبط مستوى الصوت. كما يمكن تغيير جهاز الإدخال أو الإخراج أثناء الجلسة.

المنصات والخطوات الأولى

على iOS وAndroid، يجب على اللاعب السماح بالوصول إلى الميكروفون قبل بدء الجلسة. في WebGL، يجب تفعيل خيار Use WebAssembly.Table في Publishing Settings، وإلا فشل SDK في الترجمة مع تعليمات. لا يعمل وضع التشغيل عندما يكون WebGL هو الهدف النشط، لذا يجب الاختبار على هدف سطح المكتب. يمر الصوت حينها عبر Web Audio API، ولا يتم تطبيق بعض إعدادات AudioSource، مثل التوجيه عبر المزج أو تأثير دوبلر. تتجاهل جلسات WebRTC الخاصية OutputAudioSource.

لإجراء اختبار أولي، يكفي إنشاء عامل، وتعطيل Authentication في إعدادات الأمان الخاصة به، ثم تثبيت الحزمة من عنوان Git المذكور في الوثائق، مع تثبيت الإصدار v0.1.0. بعد ذلك، يتم استيراد المثال GettingStarted، ولصق معرف العامل فيه، وتشغيل اللعبة. قبل أي نشر للإنتاج، يجب إعادة تفعيل Authentication: يطلب حينها خادم المطور عنوان URL موقّعًا قصير الأمد، يتم تمريره للعبة تحت اسم SignedUrl. لا يجب أن تظهر مفتاح API الخاص بـ ElevenLabs أبدًا في النسخة المبنية. يستغرق البرنامج التعليمي حوالي 10 دقائق وينتهي بمكعب يحيي اللاعب. يتم الإبلاغ عن الأخطاء وطلبات الميزات في قسم GitHub issues للمشروع.

S’abonner
Notification pour
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x