macOS companion app

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

การปลุกด้วยเสียงและกดเพื่อพูด

ข้อกำหนด

การปลุกด้วยเสียงและการกดเพื่อพูดต้องใช้ macOS 26 หรือใหม่กว่า ใน macOS เวอร์ชันเก่า ส่วนควบคุมจะถูกซ่อนจากหน้าการตั้งค่าเสียง ซึ่งจะแสดงข้อกำหนด macOS 26

โหมด

  • โหมดคำปลุก (ค่าเริ่มต้น): ตัวรู้จำเสียงพูดแบบเปิดตลอดเวลาจะรอโทเค็นทริกเกอร์ (swabbleTriggerWords) เมื่อพบตรงกัน ระบบจะเริ่มจับเสียง แสดงโอเวอร์เลย์พร้อมข้อความบางส่วน และส่งอัตโนมัติหลังจากเงียบ
  • กดเพื่อพูด (กด Option ด้านขวาค้างไว้): กดปุ่ม Option ด้านขวาค้างไว้เพื่อจับเสียงทันที โดยไม่ต้องใช้ทริกเกอร์ โอเวอร์เลย์จะแสดงขณะกดค้างไว้; เมื่อปล่อยจะสรุปผลและส่งต่อหลังจากหน่วงเวลาสั้น ๆ เพื่อให้คุณปรับแก้ข้อความได้

พฤติกรรมขณะรันไทม์ (คำปลุก)

  • ตัวรู้จำเสียงพูดอยู่ใน VoiceWakeRuntime
  • ทริกเกอร์จะทำงานเฉพาะเมื่อมี ช่วงหยุดที่มีนัยสำคัญ ระหว่างคำปลุกกับคำถัดไป (ช่องว่างประมาณ 0.55 วินาที) โอเวอร์เลย์/เสียงกระดิ่งสามารถเริ่มเมื่อหยุดได้ แม้ก่อนคำสั่งจะเริ่ม
  • ช่วงเวลาความเงียบ: 2.0 วินาทีเมื่อเสียงพูดกำลังไหลต่อเนื่อง, 5.0 วินาทีหากได้ยินเฉพาะทริกเกอร์
  • หยุดแบบบังคับ: 120 วินาทีเพื่อป้องกันเซสชันที่ทำงานไม่หยุด
  • ดีบาวซ์ระหว่างเซสชัน: 350 มิลลิวินาที
  • โอเวอร์เลย์ขับเคลื่อนผ่าน VoiceWakeOverlayController พร้อมการลงสีแบบยืนยันแล้ว/ชั่วคราว
  • หลังจากส่งแล้ว ตัวรู้จำจะรีสตาร์ทอย่างสะอาดเพื่อฟังทริกเกอร์ถัดไป

เงื่อนไขคงที่ของวงจรชีวิต

  • หากเปิดใช้การปลุกด้วยเสียงและได้รับสิทธิ์แล้ว ตัวรู้จำคำปลุกควรกำลังฟังอยู่ (ยกเว้นระหว่างการจับเสียงแบบกดเพื่อพูดโดยชัดเจน)
  • การมองเห็นของโอเวอร์เลย์ (รวมถึงการปิดเองด้วยปุ่ม X) ต้องไม่ขัดขวางไม่ให้ตัวรู้จำกลับมาทำงานต่อ

โหมดความล้มเหลวของโอเวอร์เลย์ค้าง (ก่อนหน้านี้)

ก่อนหน้านี้ หากโอเวอร์เลย์ค้างอยู่ในสถานะแสดงและคุณปิดเอง การปลุกด้วยเสียงอาจดูเหมือน "ตาย" เพราะความพยายามรีสตาร์ทของรันไทม์อาจถูกบล็อกโดยการมองเห็นของโอเวอร์เลย์ และไม่มีการกำหนดเวลารีสตาร์ทครั้งถัดไป

การเพิ่มความทนทาน:

  • การรีสตาร์ทรันไทม์คำปลุกจะไม่ถูกบล็อกโดยการมองเห็นของโอเวอร์เลย์อีกต่อไป
  • เมื่อการปิดโอเวอร์เลย์เสร็จสิ้น จะทริกเกอร์ VoiceWakeRuntime.refresh(...) ผ่าน VoiceSessionCoordinator ดังนั้นการปิดด้วย X เองจะกลับมาฟังเสมอ

รายละเอียดเฉพาะของการกดเพื่อพูด

  • การตรวจจับฮอตคีย์ใช้ตัวมอนิเตอร์ .flagsChanged แบบทั่วระบบสำหรับ Option ด้านขวา (keyCode 61 + .option) เราสังเกตเฉพาะเหตุการณ์เท่านั้น (ไม่กลืนเหตุการณ์)
  • ไปป์ไลน์การจับเสียงอยู่ใน VoicePushToTalk: เริ่ม Speech ทันที, สตรีมข้อความบางส่วนไปยังโอเวอร์เลย์ และเรียก VoiceWakeForwarder เมื่อปล่อยปุ่ม
  • เมื่อเริ่มกดเพื่อพูด เราจะหยุดรันไทม์คำปลุกชั่วคราวเพื่อหลีกเลี่ยง audio taps ที่แข่งกัน; ระบบจะรีสตาร์ทอัตโนมัติหลังจากปล่อยปุ่ม
  • สิทธิ์: ต้องใช้ไมโครโฟน + Speech; การเห็นเหตุการณ์ต้องได้รับอนุมัติ Accessibility/Input Monitoring
  • คีย์บอร์ดภายนอก: บางรุ่นอาจไม่เปิดเผย Option ด้านขวาตามที่คาดไว้ ให้เสนอชอร์ตคัตสำรองหากผู้ใช้รายงานว่าตรวจจับพลาด

การตั้งค่าที่ผู้ใช้เห็น

  • สวิตช์ การปลุกด้วยเสียง: เปิดใช้รันไทม์คำปลุก
  • กด Option ด้านขวาค้างไว้เพื่อพูด: เปิดใช้ตัวมอนิเตอร์กดเพื่อพูด
  • ตัวเลือกภาษาและไมค์, มิเตอร์ระดับสด, ตารางคำทริกเกอร์, ตัวทดสอบ (เฉพาะในเครื่อง; ไม่ส่งต่อ)
  • ตัวเลือกไมค์จะเก็บการเลือกครั้งล่าสุดไว้หากอุปกรณ์ถูกตัดการเชื่อมต่อ แสดงคำใบ้ว่าถูกตัดการเชื่อมต่อ และถอยกลับไปใช้ค่าเริ่มต้นของระบบชั่วคราวจนกว่าอุปกรณ์จะกลับมา
  • เสียง: เสียงกระดิ่งเมื่อพบทริกเกอร์และเมื่อส่ง; ค่าเริ่มต้นคือเสียงระบบ macOS "Glass" คุณสามารถเลือกไฟล์ใดก็ได้ที่ NSSound โหลดได้ (เช่น MP3/WAV/AIFF) สำหรับแต่ละเหตุการณ์ หรือเลือก ไม่มีเสียง

พฤติกรรมการส่งต่อ

  • เมื่อเปิดใช้การปลุกด้วยเสียง ทรานสคริปต์จะถูกส่งต่อไปยัง gateway/agent ที่ใช้งานอยู่ (โหมด local เทียบกับ remote เดียวกับที่ส่วนอื่นของแอป Mac ใช้)
  • คำตอบจะถูกส่งไปยัง ผู้ให้บริการหลักที่ใช้ล่าสุด (WhatsApp/Telegram/Discord/WebChat) หากส่งไม่สำเร็จ ข้อผิดพลาดจะถูกบันทึก และรันยังคงมองเห็นได้ผ่าน WebChat/บันทึกเซสชัน

เพย์โหลดการส่งต่อ

  • VoiceWakeForwarder.prefixedTranscript(_:) เติมคำใบ้เครื่องไว้ก่อนส่ง ใช้ร่วมกันระหว่างเส้นทางคำปลุกและกดเพื่อพูด

การตรวจสอบอย่างรวดเร็ว

  • เปิดกดเพื่อพูด กด Option ด้านขวาค้างไว้ พูด แล้วปล่อย: โอเวอร์เลย์ควรแสดงข้อความบางส่วนแล้วส่ง
  • ขณะกดค้างไว้ หูในแถบเมนูควรยังขยายอยู่ (ใช้ triggerVoiceEars(ttl:nil)); หูจะยุบหลังจากปล่อย

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page