การจับภาพพร้อมกัน

Android 10 ปรับปรุงประสบการณ์ของผู้ใช้ที่ต้องมีการบันทึกเสียงที่ใช้งานอยู่มากกว่า 1 รายการพร้อมกัน เช่น หากผู้ใช้ต้องการควบคุมการโทร VoIP หรือวิดีโอบันทึกด้วยคำสั่งเสียงจากบริการการช่วยเหลือพิเศษ

เฟรมเวิร์กเสียงใช้นโยบายที่อนุญาตเฉพาะบางแอปที่ได้รับสิทธิ์เท่านั้น พร้อมกับแอปทั่วไป

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

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

ข้อกำหนด CDD

โปรดดู CDD สำหรับ เพื่อรองรับการจับภาพพร้อมกัน

จับภาพสถานการณ์จาก HAL เสียง

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

การทำงานพร้อมกันอาจเกิดขึ้นระหว่างรายการต่อไปนี้

  • สตรีมอินพุตหลายรายการจากแอปพลิเคชันประมวลผล (AP)
  • สตรีมอินพุตและการโทรด้วยเสียง
  • สตรีมอินพุตและ DSP เสียงที่ใช้การตรวจจับคําที่มักใช้แบบพลังงานต่ำ

กิจกรรมที่เกิดขึ้นพร้อมกันของสตรีมอินพุต AP

เฟรมเวิร์กเสียงจะใช้ไฟล์การกำหนดค่านโยบายเสียง audio_policy_configuration.xml เพื่อกำหนดจำนวนสตรีมอินพุตที่เปิดและใช้งานได้พร้อมกัน

HAL เสียงต้องรองรับอินสแตนซ์ของโปรไฟล์อินพุตแต่ละรายการอย่างน้อย 1 รายการ (mixPort ของบทบาท sink) ที่แสดงอยู่ในไฟล์การกําหนดค่าที่เปิดอยู่และใช้งานอยู่เป็นอย่างน้อย

การเลือกอุปกรณ์

เมื่อไคลเอ็นต์ที่ใช้งานอยู่หลายรายการเชื่อมต่อกับสตรีมอินพุต HAL เดียวกัน เฟรมเวิร์กจะเลือกอุปกรณ์ที่เหมาะสมสำหรับสตรีมอินพุตนี้ตามลำดับความสำคัญของ Use Case

เมื่อสตรีมอินพุตหลายรายการทำงานอยู่ สตรีมแต่ละรายการอาจมีการเลือกอุปกรณ์ที่แตกต่างกัน

หากเทคโนโลยีใช้งานร่วมกันได้ ขอแนะนำให้ใช้ HAL ของเสียง และระบบย่อยช่วยให้สตรีมที่ต่างกันจับภาพจากอุปกรณ์ต่างๆ เช่น ชุดหูฟังบลูทูธ และไมค์ในตัว

หากใช้งานร่วมกันไม่ได้ (เช่น อุปกรณ์ 2 เครื่องใช้อินเทอร์เฟซเสียงดิจิทัลหรือแบ็กเอนด์เดียวกัน) HAL เสียงจะต้องเลือกสตรีมที่จะควบคุมการเลือกอุปกรณ์

ในกรณีนี้

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

หาก HAL เสียงกำหนดลำดับความสำคัญระหว่างกรณีการใช้งานที่ใช้งานอยู่ ให้ทำตามลำดับเดียวกับ พบใน source_priority() ใน frameworks/av/services/audiopolicy/common/include/policy.h

การเลือกการประมวลผลข้อมูลล่วงหน้า

เฟรมเวิร์กเสียงสามารถขอการประมวลผลล่วงหน้าในสตรีมอินพุตโดยใช้ เมธอด HAL addEffect() หรือ removeEffect()

สำหรับการประมวลผลล่วงหน้าในสตรีมอินพุตหนึ่งๆ เฟรมเวิร์กเสียงจะเปิดใช้ การกำหนดค่าที่สอดคล้องกับ Use Case ที่มีการใช้งานลำดับความสำคัญสูงสุดใน สตรีมอินพุต อย่างไรก็ตาม อาจมีการซ้อนทับกันบ้างระหว่างการเปิดใช้งานและการปิดใช้งาน Use Case ซึ่งทําให้กระบวนการที่ใช้งานอยู่ 2 รายการ (เช่น อินสแตนซ์ของการตัดเสียงสะท้อน 2 รายการ) ทำงานพร้อมกันในสตรีมอินพุตเดียวกัน ในกรณีนี้ การติดตั้งใช้งาน HAL จะเลือกคำขอที่จะยอมรับ โดยจะติดตามคำขอที่ใช้งานอยู่และกู้คืนสถานะที่ถูกต้องเมื่อปิดใช้กระบวนการใดกระบวนการหนึ่ง

เมื่อมีสตรีมการจับภาพหลายรายการทำงานพร้อมกัน คำขอการประมวลผลล่วงหน้าที่แตกต่างกันอาจทำงาน จะทำงานในสตรีมต่างๆ

การติดตั้งใช้งาน HAL และระบบย่อยเสียงควรอนุญาตให้ใช้การประมวลผลก่อนที่แตกต่างกันกับสตรีมต่างๆ แม้ว่าสตรีมเหล่านั้นจะใช้อุปกรณ์อินพุตเดียวกันก็ตาม นั่นคือ การประมวลผลข้อมูลล่วงหน้า ควรใช้หลังจากแยกสตรีมจากแหล่งที่มาของการดักจับหลักแล้ว

หากเป็นไปไม่ได้ด้วยเหตุผลทางเทคนิคในระบบย่อยเสียงหนึ่งๆ HAL เสียงควรใช้กฎลําดับความสําคัญที่คล้ายกับที่ระบุไว้ในการเลือกอุปกรณ์

การโทรด้วยเสียงและจับภาพจาก AP พร้อมกัน

การจับภาพจาก AP อาจเกิดขึ้นขณะที่มีการโทรด้วยเสียง สถานการณ์นี้ไม่ใช่สถานการณ์ใหม่ใน Android 10 และไม่เกี่ยวข้องกับฟีเจอร์การจับภาพพร้อมกันโดยตรง แต่เราขอกล่าวถึงหลักเกณฑ์สำหรับสถานการณ์นี้

ต้องใช้การบันทึก 2 ประเภทจาก AP ระหว่างการโทร

บันทึก RX และ TX ของสายเรียกเข้า

การบันทึก RX และ TX ของการโทรจะทริกเกอร์โดยการใช้แหล่งที่มาของเสียง AudioSource.VOICE_UPLINK หรือ AudioSource.VOICE_DOWNLINK และ/หรืออุปกรณ์ AudioDevice.IN_TELEPHONY_RX

HAL เสียงควรแสดงในโปรไฟล์อินพุต (mixPort ของบทบาท sink) โดยมีเส้นทางที่พร้อมใช้งานจากอุปกรณ์ AudioDevice.IN_TELEPHONY_RX

เมื่อเชื่อมต่อการโทรแล้ว (โหมดเสียงคือ AudioMode.IN_CALL) ควรเชื่อมต่อได้ เพื่อให้มีสตรีมการจับภาพที่ใช้งานอยู่อย่างน้อย 1 รายการจากอุปกรณ์ AudioDevice.IN_TELEPHONY_RX

จับภาพจากอุปกรณ์อินพุตเมื่อ สายนี้กำลังใช้งานอยู่

เมื่อใช้งานการโทรอยู่ (โหมดเสียงคือ AudioMode.IN_CALL) ควรเป็นไปได้ที่ เปิดและเปิดใช้งานสตรีมอินพุตจาก AP ตามที่ระบุไว้ในส่วน กิจกรรมที่เกิดขึ้นพร้อมกันของสตรีมอินพุต AP

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

การบันทึกพร้อมกันจาก DSP และ AP

เมื่อระบบย่อยเสียงมี DSP ที่รองรับบริบทเสียงที่ใช้พลังงานต่ำหรือการตรวจหาคำสั่งให้ดำเนินการ การติดตั้งใช้งานควรรองรับการบันทึกพร้อมกันจาก AP และ DSP เสียง ซึ่งรวมถึงทั้งการบันทึกโดย DSP ในระยะการตรวจจับเริ่มต้นและการบันทึกโดย AP ด้วย AudioSource.HOTWORD หลังจากที่ DSP เรียกให้ตรวจจับ

ซึ่งควรแสดงโดย Flag การบันทึกพร้อมกันที่ HAL ของทริกเกอร์เสียงรายงานผ่านข้อบ่งชี้การใช้งาน: ISoundTriggerHw.Properties.concurrentCapture = true

HAL เสียงควรแสดงและใส่โปรไฟล์เฉพาะสำหรับการบันทึกคำสั่งให้ดำเนินการที่ระบุโดย แจ้งว่า AudioInputFlag.HW_HOTWORD ไม่เหมาะสม การติดตั้งใช้งานควรสนับสนุนการเปิดและ การเปิดใช้งานจำนวนสตรีมในโปรไฟล์นี้อย่างน้อยเท่ากับจำนวนโมเดลเสียงที่ จะโหลดพร้อมกันได้ด้วย HAL ทริกเกอร์เสียง

คุณควรจับภาพจากโปรไฟล์อินพุตนี้ได้ขณะที่โปรไฟล์อินพุตอื่นๆ ทำงานอยู่

ผลกระทบสำหรับการใช้งาน Assistant

ข้อกำหนดเกี่ยวกับการใช้ข้อมูลและการแจ้งเตือนผู้ใช้

เนื่องจากการใช้ไมค์พร้อมกันหากมีการละเมิดอาจทำให้ข้อมูลส่วนตัวของผู้ใช้รั่วไหล เราจึงต้องการข้อมูลต่อไปนี้ เงื่อนไขและการรับประกันการใช้งาน กับแอปที่โหลดไว้ล่วงหน้าซึ่งเป็นสิทธิพิเศษที่ขอกัน บทบาทผู้ช่วย

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

การปรับปรุงฟังก์ชันสําหรับ Android 10

Assistant ไม่บล็อกกันและกัน

ใน Android 9 หรือต่ำกว่า เมื่อมี Assistant ที่เปิดอยู่เสมอ 2 ตัวในอุปกรณ์ จะมีเพียงตัวเดียวเท่านั้นที่ฟังคีย์เวิร์ดได้ จึงจำเป็นต้องสลับใช้ Assistant ทั้ง 2 ตัว ใน Android 10 นั้น Assistant เริ่มต้นจะฟังไปพร้อมกันได้ Assistant อีกคน ซึ่งจะช่วยให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ราบรื่นยิ่งขึ้นเมื่อใช้ทั้ง 2 Assistant

แอปที่เปิดไมค์ค้างไว้

เมื่อแอปอย่าง Shazam หรือ Waze เปิดไมโครโฟนค้างไว้ Assistant เริ่มต้นจะยังคงฟังคำสั่งให้ดำเนินการได้

ลักษณะการทำงานของ Android 10 จะไม่มีการเปลี่ยนแปลงสำหรับแอป Assistant ที่ไม่ใช่แอปเริ่มต้น

ตัวอย่างการใช้งาน HAL เสียง

ตัวอย่างการติดตั้งใช้งาน HAL เสียงที่สอดคล้องกับหลักเกณฑ์ในเอกสารนี้อาจ ที่พบใน AOSP