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