Nodes and media

การปลุกด้วยเสียง

คำปลุกเป็นรายการส่วนกลางรายการเดียวที่ Gateway เป็นเจ้าของ — ไม่มีรายการที่กำหนดเองแยกตาม Node Node หรือ UI ของแอปใดๆ สามารถแก้ไขรายการนี้ได้ โดย Gateway จะบันทึกการเปลี่ยนแปลงและเผยแพร่ไปยังไคลเอนต์ที่เชื่อมต่อทั้งหมด

  • macOS: สวิตช์เปิด/ปิด Voice Wake ภายในเครื่อง ต้องใช้ macOS 26 ขึ้นไป โปรดดูรายละเอียดรันไทม์/PTT ที่ การปลุกด้วยเสียง (macOS)
  • iOS: สวิตช์เปิด/ปิด Voice Wake ภายในเครื่องใน Settings
  • Android: สวิตช์เปิด/ปิด Voice Wake ภายในเครื่องและเครื่องมือแก้ไขคำปลุกใน 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