يأخذ وضع Talk شكلين تشغيليين وقت التشغيل:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- يستخدم Talk الأصلي على macOS/iOS/Android التعرف المحلي على الكلام، ودردشة Gateway، وTTS عبر
talk.speak. تعلن العقد عن قدرةtalkوتصرح بأوامرtalk.*التي تدعمها. - يستخدم Talk في المتصفح
talk.client.createلجلساتwebrtcوprovider-websocketالمملوكة للعميل، أوtalk.session.createلجلساتgateway-relayالمملوكة لـ Gateway.managed-roomمحجوز لتسليم Gateway وغرف الاتصال اللاسلكي. - يستخدم عملاء النسخ فقط
talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" })، ثمtalk.session.appendAudioوtalk.session.cancelTurnوtalk.session.closeعندما يحتاجون إلى تسميات توضيحية أو إملاء من دون استجابة صوتية من المساعد.
- الاستماع للكلام
- إرسال النص المنسوخ إلى النموذج عبر الجلسة النشطة
- انتظار الاستجابة
- نطقها عبر موفر Talk المضبوط (
talk.speak)
talk.client.toolCall؛ لا يستدعي عملاء المتصفح chat.send مباشرة للاستشارات الفورية.
يصدر Talk المخصص للنسخ فقط غلاف أحداث Talk المشترك نفسه مثل جلسات الوقت الفعلي وجلسات STT/TTS، لكنه يستخدم mode: "transcription" وbrain: "none". وهو مخصص للتسميات التوضيحية، والإملاء، والتقاط الكلام للمراقبة فقط؛ أما الملاحظات الصوتية المرفوعة لمرة واحدة فما زالت تستخدم مسار الوسائط/الصوت.
السلوك (macOS)
- تراكب دائم التشغيل أثناء تفعيل وضع Talk.
- انتقالات المراحل: الاستماع ← التفكير ← التحدث.
- عند حدوث توقف قصير (نافذة صمت)، يتم إرسال النص المنسوخ الحالي.
- تُكتب الردود إلى WebChat (كما لو كانت مكتوبة).
- المقاطعة عند الكلام (مفعلة افتراضيًا): إذا بدأ المستخدم الكلام بينما يتحدث المساعد، نوقف التشغيل ونسجل الطابع الزمني للمقاطعة من أجل الموجه التالي.
توجيهات الصوت في الردود
يمكن للمساعد أن يسبق رده بسطر JSON واحد للتحكم في الصوت:- السطر الأول غير الفارغ فقط.
- يتم تجاهل المفاتيح غير المعروفة.
- ينطبق
once: trueعلى الرد الحالي فقط. - من دون
once، يصبح الصوت هو الافتراضي الجديد لوضع Talk. - تتم إزالة سطر JSON قبل تشغيل TTS.
voice/voice_id/voiceIdmodel/model_id/modelIdspeed,rate(WPM),stability,similarity,style,speakerBoostseed,normalize,lang,output_format,latency_tieronce
الإعدادات (~/.openclaw/openclaw.json)
interruptOnSpeech: truesilenceTimeoutMs: عند عدم تعيينها، يحتفظ Talk بنافذة التوقف الافتراضية للمنصة قبل إرسال النص المنسوخ (700 ms on macOS and Android, 900 ms on iOS)provider: يحدد موفر Talk النشط. استخدمelevenlabsأوmlxأوsystemلمسارات التشغيل المحلية على macOS.providers.<provider>.voiceId: يعود إلىELEVENLABS_VOICE_ID/SAG_VOICE_IDلـ ElevenLabs (أو أول صوت ElevenLabs عند توفر مفتاح API).providers.elevenlabs.modelId: القيمة الافتراضية هيeleven_v3عند عدم تعيينها.providers.mlx.modelId: القيمة الافتراضية هيmlx-community/Soprano-80M-bf16عند عدم تعيينها.providers.elevenlabs.apiKey: يعود إلىELEVENLABS_API_KEY(أو ملف تعريف صدفة Gateway إن كان متاحًا).consultThinkingLevel: تجاوز اختياري لمستوى التفكير للتشغيل الكامل لوكيل OpenClaw خلف استدعاءاتopenclaw_agent_consultالفورية.consultFastMode: تجاوز اختياري للوضع السريع لاستدعاءاتopenclaw_agent_consultالفورية.realtime.provider: يحدد موفر الصوت الفوري النشط في المتصفح/الخادم. استخدمopenaiلـ WebRTC، أوgoogleلـ WebSocket الخاص بالموفر، أو موفرًا للجسر فقط عبر ترحيل Gateway.- يخزن
realtime.providers.<provider>إعدادات الوقت الفعلي المملوكة للموفر. لا يتلقى المتصفح إلا بيانات اعتماد جلسة مؤقتة أو مقيدة، ولا يتلقى مفتاح API قياسيًا أبدًا. realtime.providers.openai.voice: معرف صوت OpenAI Realtime المدمج. أصواتgpt-realtime-2الحالية هيalloyوashوballadوcoralوechoوsageوshimmerوverseوmarinوcedar؛ ويوصى بـmarinوcedarللحصول على أفضل جودة.realtime.brain: يوجهagent-consultاستدعاءات الأدوات الفورية عبر سياسة Gateway؛ وdirect-toolsهو سلوك توافقية للمالك فقط؛ وnoneمخصص للنسخ أو التنسيق الخارجي.realtime.instructions: يضيف تعليمات نظام موجهة للموفر إلى موجه الوقت الفعلي المدمج في OpenClaw. استخدمه لأسلوب الصوت ونبرته؛ يحتفظ OpenClaw بتوجيهopenclaw_agent_consultالافتراضي.- يعرض
talk.catalogالأوضاع ووسائل النقل واستراتيجيات brain وتنسيقات الصوت الفوري ورايات القدرات الصالحة لكل موفر، بحيث يمكن لعملاء Talk من الطرف الأول تجنب التركيبات غير المدعومة. - يتم اكتشاف موفري النسخ المتدفق عبر
talk.catalog.transcription. يستخدم ترحيل Gateway الحالي إعدادات موفر تدفق Voice Call إلى أن تتم إضافة سطح إعدادات النسخ المخصص لـ Talk. speechLocale: معرف لغة اختياري وفق BCP 47 للتعرف على كلام Talk على الجهاز في iOS/macOS. اتركه غير معين لاستخدام الإعداد الافتراضي للجهاز.outputFormat: القيمة الافتراضية هيpcm_44100على macOS/iOS وpcm_24000على Android (عيّنmp3_*لفرض تدفق MP3)
واجهة مستخدم macOS
- زر شريط القوائم: Talk
- تبويب الإعدادات: مجموعة وضع Talk (معرف الصوت + زر تبديل المقاطعة)
- التراكب:
- الاستماع: نبضات سحابة مع مستوى الميكروفون
- التفكير: حركة غوص
- التحدث: حلقات مشعة
- النقر على السحابة: إيقاف التحدث
- النقر على X: الخروج من وضع Talk
واجهة مستخدم Android
- زر تبويب الصوت: Talk
- الميكروفون اليدوي وTalk وضعا التقاط وقت تشغيل متنافيان.
- يتوقف الميكروفون اليدوي عندما يغادر التطبيق الواجهة الأمامية أو يغادر المستخدم تبويب الصوت.
- يظل وضع Talk قيد التشغيل حتى يتم إيقافه أو تنقطع عقدة Android، ويستخدم نوع خدمة المقدمة الخاصة بالميكروفون في Android أثناء نشاطه.
ملاحظات
- يتطلب أذونات الكلام والميكروفون.
- يستخدم Talk الأصلي جلسة Gateway النشطة ولا يعود إلى استطلاع السجل إلا عندما تكون أحداث الاستجابة غير متاحة.
- يستخدم Talk الفوري في المتصفح
talk.client.toolCallلـopenclaw_agent_consultبدلًا من كشفchat.sendلجلسات المتصفح المملوكة للموفر. - يستخدم Talk المخصص للنسخ فقط
talk.session.createوtalk.session.appendAudioوtalk.session.cancelTurnوtalk.session.close؛ يشترك العملاء فيtalk.eventلتحديثات النص المنسوخ الجزئية/النهائية. - يحل Gateway تشغيل Talk عبر
talk.speakباستخدام موفر Talk النشط. يعود Android إلى TTS المحلي للنظام فقط عندما لا يكون RPC هذا متاحًا. - يستخدم تشغيل MLX المحلي على macOS مساعد
openclaw-mlx-ttsالمضمن عند وجوده، أو ملفًا تنفيذيًا علىPATH. عيّنOPENCLAW_MLX_TTS_BINللإشارة إلى ملف مساعد ثنائي مخصص أثناء التطوير. - يتم التحقق من
stabilityلـeleven_v3ليكون0.0أو0.5أو1.0؛ تقبل النماذج الأخرى0..1. - يتم التحقق من
latency_tierليكون0..4عند تعيينه. - يدعم Android تنسيقات إخراج
pcm_16000وpcm_22050وpcm_24000وpcm_44100لتدفق AudioTrack منخفض الكمون.