الانتقال إلى المحتوى الرئيسي

وضع الحديث

وضع التحدّث هو حلقة محادثة صوتية مستمرة:
  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 (WPM), 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 (أو ملف تعريف صدفة البوابة إذا كان متاحًا)
  • outputFormat: الافتراضي هو pcm_44100 على macOS/iOS وpcm_24000 على Android (عيّن mp3_* لفرض بث MP3)

واجهة macOS

  • مفتاح شريط القوائم: Talk
  • علامة تبويب التهيئة: مجموعة Talk Mode (معرّف الصوت + تبديل المقاطعة)
  • التراكب:
    • الاستماع: نبضات سحابية مع مستوى الميكروفون
    • التفكير: حركة غاطسة
    • التحدّث: حلقات مشعّة
    • النقر على السحابة: إيقاف التحدّث
    • النقر على 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 منخفض الكمون.