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

التنبيه الصوتي (كلمات التنبيه العامة)

يتعامل OpenClaw مع كلمات التنبيه على أنها قائمة عامة واحدة تملكها البوابة.
  • لا توجد كلمات تنبيه مخصصة لكل عقدة.
  • يمكن لأي واجهة عقدة/تطبيق تعديل القائمة؛ ويتم حفظ التغييرات بواسطة البوابة وبثها للجميع.
  • يحتفظ macOS وiOS بمفاتيح تبديل محلية مستقلة لحالة تفعيل/تعطيل التنبيه الصوتي (تختلف تجربة الاستخدام والأذونات محليًا).
  • يحتفظ Android حاليًا بالتنبيه الصوتي في وضع التعطيل ويستخدم تدفق ميكروفون يدويًا في تبويب Voice.

التخزين (مضيف البوابة)

تُخزَّن كلمات التنبيه على جهاز البوابة في:
  • ~/.openclaw/settings/voicewake.json
الشكل:
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

البروتوكول

الأساليب

  • voicewake.get{ triggers: string[] }
  • voicewake.set مع المعلمات { triggers: string[] }{ triggers: string[] }
ملاحظات:
  • تتم تسوية المحفزات (إزالة الفراغات، حذف القيم الفارغة). وتعود القوائم الفارغة إلى القيم الافتراضية.
  • يتم فرض حدود لأسباب تتعلق بالسلامة (قيود العدد/الطول).

الأحداث

  • حمولة voicewake.changed هي { triggers: string[] }
من الذي يتلقاها:
  • جميع عملاء WebSocket ‏(تطبيق macOS، وWebChat، وغير ذلك)
  • جميع العقد المتصلة (iOS/Android)، وكذلك عند اتصال العقدة كدفعة أولية لـ “الحالة الحالية”

سلوك العميل

تطبيق macOS

  • يستخدم القائمة العامة لضبط محفزات VoiceWakeRuntime.
  • يؤدي تعديل “Trigger words” في إعدادات Voice Wake إلى استدعاء voicewake.set ثم الاعتماد على البث لإبقاء العملاء الآخرين متزامنين.

عقدة iOS

  • تستخدم القائمة العامة لكشف المحفزات في VoiceWakeManager.
  • يؤدي تعديل Wake Words في Settings إلى استدعاء voicewake.set (عبر Gateway WS) كما يحافظ أيضًا على استجابة كشف كلمات التنبيه محليًا.

عقدة Android

  • التنبيه الصوتي معطل حاليًا في وقت تشغيل/إعدادات Android.
  • يستخدم الصوت في Android التقاطًا يدويًا للميكروفون في تبويب Voice بدلًا من محفزات كلمات التنبيه.