Nodes and media

بیدارباش صوتی

واژه‌های بیدارباش یک فهرست سراسری واحد متعلق به Gateway هستند — هیچ فهرست سفارشی جداگانه‌ای برای هر Node وجود ندارد. رابط کاربری هر Node یا برنامه‌ای می‌تواند این فهرست را ویرایش کند؛ Gateway تغییر را پایدار ذخیره می‌کند و آن را برای همه کلاینت‌های متصل پخش می‌کند.

  • macOS: کلید محلی فعال/غیرفعال‌کردن بیدارباش صوتی. به macOS 26+ نیاز دارد؛ برای جزئیات زمان اجرا/PTT به بیدارباش صوتی (macOS) مراجعه کنید.
  • iOS: کلید محلی فعال/غیرفعال‌کردن بیدارباش صوتی در تنظیمات.
  • Android: کلید محلی فعال/غیرفعال‌کردن بیدارباش صوتی و ویرایشگر واژه‌های بیدارباش در Settings → Voice. به تشخیص گفتار روی دستگاه در Android نیاز دارد.

ذخیره‌سازی

واژه‌های بیدارباش و قواعد مسیریابی در پایگاه داده وضعیت Gateway قرار دارند؛ به‌طور پیش‌فرض ~/.openclaw/state/openclaw.sqlite (با OPENCLAW_STATE_DIR بازنویسی می‌شود)، در جدول‌های voicewake_triggers، voicewake_routing_config و voicewake_routing_routes. فایل‌های قدیمی settings/voicewake.json و settings/voicewake-routing.json فقط ورودی‌های مهاجرت openclaw doctor --fix هستند — زمان اجرا هرگز آن‌ها را نمی‌خواند.

پروتکل

فهرست محرک‌ها

متد پارامترها نتیجه
voicewake.get ندارد { triggers: string[] }
voicewake.set { triggers: string[] } { triggers: string[] }

voicewake.set ورودی را نرمال‌سازی می‌کند: فاصله‌های سفید ابتدا و انتها را حذف می‌کند، ورودی‌های خالی را کنار می‌گذارد، حداکثر 32 محرک را نگه می‌دارد و هرکدام را بدون شکستن جفت‌های جانشین به 64 واحد کد UTF-16 کوتاه می‌کند. اگر نتیجه خالی باشد، از مقادیر پیش‌فرض داخلی (openclaw، claude، computer) استفاده می‌شود.

مسیریابی (از محرک به مقصد)

متد پارامترها نتیجه
voicewake.routing.get ندارد { config: VoiceWakeRoutingConfig }
voicewake.routing.set { config: VoiceWakeRoutingConfig } { config: VoiceWakeRoutingConfig }
json
{  "version": 1,  "defaultTarget": { "mode": "current" },  "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }],  "updatedAtMs": 1730000000000}

هر target مسیر دقیقاً از یکی از موارد زیر پشتیبانی می‌کند:

  • { "mode": "current" }
  • { "agentId": "main" }
  • { "sessionKey": "agent:main:main" }

محدودیت‌ها: حداکثر 32 مسیر و متن محرک با حداکثر 64 نویسه. محرک‌های مسیر برای تطبیق و تشخیص تکراری‌بودن با تبدیل حروف به کوچک، حذف علائم نگارشی ابتدا و انتهای هر واژه و یکی‌کردن فاصله‌های سفید نرمال‌سازی می‌شوند ("Hey, Bot!!" و "hey bot" با هم تطبیق دارند و تکراری محسوب می‌شوند) — این نرمال‌سازی از حذف ساده فاصله‌های ابتدا و انتها که برای فهرست سراسری محرک‌های بالا استفاده می‌شود، سخت‌گیرانه‌تر است.

رویدادها

رویداد محتوای پیام
voicewake.changed { triggers: string[] }
voicewake.routing.changed { config: VoiceWakeRoutingConfig }

هر دو برای همه کلاینت‌های WebSocket دارای دامنه دسترسی خواندن (برنامه macOS، WebChat و موارد مشابه) و همه Nodeهای متصل پخش می‌شوند. هر Node بلافاصله پس از اتصال، هر دو را به‌صورت ارسال اولیه یک تصویر لحظه‌ای نیز دریافت می‌کند.

رفتار کلاینت

  • macOS: voicewake.set/voicewake.get را فراخوانی می‌کند و برای همگام‌ماندن با سایر کلاینت‌ها به voicewake.changed گوش می‌دهد.
  • iOS: voicewake.set/voicewake.get را فراخوانی می‌کند و برای پاسخ‌گو نگه‌داشتن تشخیص محلی واژه بیدارباش به voicewake.changed گوش می‌دهد.
  • Android: voicewake.set/voicewake.get را فراخوانی می‌کند، به voicewake.changed گوش می‌دهد و هنگام فعال‌بودن voiceWake را اعلام می‌کند. تشخیص روی دستگاه و فقط در پیش‌زمینه باقی می‌ماند؛ هنگامی که Talk، دیکته دستی، ضبط یادداشت صوتی یا گفتار پیام کنترل صدا را در اختیار دارد، متوقف می‌شود.

مرتبط

Was this useful?
On this page

On this page