الوسائط والأجهزة

وضع المحادثة

وضع المحادثة هو حلقة محادثة صوتية مستمرة:

  1. الاستماع للكلام
  2. إرسال النص المنقول إلى النموذج (الجلسة الرئيسية، chat.send)
  3. انتظار الرد
  4. نطقه عبر ElevenLabs (تشغيل البث)

السلوك (macOS)

  • طبقة شفافة دائمة الظهور أثناء تفعيل وضع المحادثة.
  • انتقالات المراحل: الاستماع → التفكير → التحدث.
  • عند توقف قصير (نافذة صمت)، يتم إرسال النص المنقول الحالي.
  • يتم كتابة الردود في WebChat (كما هو الحال عند الكتابة).
  • مقاطعة عند الكلام (مفعلة افتراضيًا): إذا بدأ المستخدم بالكلام أثناء تحدث المساعد، نقوم بإيقاف التشغيل وتسجيل طابع زمني للمقاطعة للاستعلام التالي.

التوجيهات الصوتية في الردود

قد يسبق المساعد رده بسطر JSON واحد للتحكم في الصوت:

{ "voice": "<voice-id>", "once": true }

القواعد:

  • أول سطر غير فارغ فقط.
  • يتم تجاهل المفاتيح غير المعروفة.
  • once: true تنطبق على الرد الحالي فقط.
  • بدون once، يصبح الصوت هو الافتراضي الجديد لوضع المحادثة.
  • يتم إزالة سطر JSON قبل تشغيل TTS.

المفاتيح المدعومة:

  • voice / voice_id / voiceId
  • model / model_id / modelId
  • speed, rate (كلمة في الدقيقة), stability, similarity, style, speakerBoost
  • seed, normalize, lang, output_format, latency_tier
  • once

التكوين (~/.openclaw/openclaw.json)

{
  talk: {
    voiceId: "elevenlabs_voice_id",
    modelId: "eleven_v3",
    outputFormat: "mp3_44100_128",
    apiKey: "elevenlabs_api_key",
    interruptOnSpeech: true,
  },
}

الإعدادات الافتراضية:

  • interruptOnSpeech: true
  • voiceId: يتراجع إلى ELEVENLABS_VOICE_ID / SAG_VOICE_ID (أو أول صوت ElevenLabs عند توفر مفتاح API)
  • modelId: الافتراضي هو eleven_v3 عند عدم التعيين
  • apiKey: يتراجع إلى ELEVENLABS_API_KEY (أو ملف تعريف shell للبوابة إذا كان متاحًا)
  • outputFormat: الافتراضي هو pcm_44100 على macOS/iOS و pcm_24000 على Android (اضبط mp3_* لإجبار بث MP3)

واجهة المستخدم لنظام macOS

  • تبديل شريط القائمة: محادثة
  • علامة التبويب التكوين: مجموعة وضع المحادثة (معرف الصوت + تبديل المقاطعة)
  • الطبقة الشفافة:
    • الاستماع: سحابة تنبض مع مستوى الميكروفون
    • التفكير: رسوم متحركة للغوص
    • التحدث: حلقات مشعة
    • انقر على السحابة: إيقاف التحدث
    • انقر على X: الخروج من وضع المحادثة

ملاحظات

  • يتطلب أذونات التعرف على الكلام + الميكروفون.
  • يستخدم chat.send مع مفتاح الجلسة main.
  • يستخدم TTS واجهة برمجة تطبيقات البث من ElevenLabs مع ELEVENLABS_API_KEY والتشغيل التدريجي على macOS/iOS/Android لكمون أقل.
  • يتم التحقق من صحة 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 منخفض الكمون.

التقاط الكاميراإيقاظ الصوت