در این صفحه

در این صفحه

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?