Android 13 รองรับเสียงรอบทิศทางด้วยAPI ที่ช่วยให้นักพัฒนาแอปทราบว่าการใช้งานโทรศัพท์ในปัจจุบัน เฮดเซ็ตที่เชื่อมต่อ และการตั้งค่าของผู้ใช้ช่วยให้เล่นเนื้อหาเสียงหลายช่องได้อย่างสมจริงหรือไม่
OEM สามารถให้เอฟเฟกต์เสียงรอบทิศทางที่รองรับการติดตามการเคลื่อนไหวของศีรษะด้วยระดับประสิทธิภาพและเวลาในการตอบสนองที่ต้องการ โดยใช้สถาปัตยกรรมไปป์ไลน์เสียงใหม่และการผสานรวมเฟรมเวิร์กเซ็นเซอร์ โปรโตคอล HID จะระบุวิธีเชื่อมต่ออุปกรณ์ติดตามการเคลื่อนไหวของศีรษะผ่านบลูทูธและทำให้อุปกรณ์พร้อมใช้งานเป็นอุปกรณ์ HID ผ่านเฟรมเวิร์กเซ็นเซอร์ของ Android ดูข้อกำหนดและการตรวจสอบเพิ่มเติมเกี่ยวกับเสียงเชิงพื้นที่และการติดตามการเคลื่อนไหวของศีรษะ
หลักเกณฑ์ในหน้านี้ใช้กับโซลูชันเสียงรอบทิศทางที่ใช้ API เสียงรอบทิศทางและสถาปัตยกรรมเสียงใหม่กับโทรศัพท์ Android ที่ใช้ Android 13 ขึ้นไปและเฮดเซตที่เข้ากันได้ซึ่งมีเซ็นเซอร์ติดตามการเคลื่อนไหวของศีรษะ
หลักเกณฑ์ในการใช้งานโหมดเสียงรอบทิศทางแบบไดนามิกและแบบคงที่
เสียงรอบทิศทางแบบคงที่ไม่จำเป็นต้องมีการติดตามการเคลื่อนไหวของศีรษะ ดังนั้นชุดหูฟังจึงไม่จำเป็นต้องมีฟังก์ชันการทำงานที่เฉพาะเจาะจง ชุดหูฟังแบบใช้สายและไร้สายทั้งหมดรองรับเสียงรอบทิศทางแบบคงที่
การใช้งาน API
OEM ต้องใช้คลาส Spatializer
ที่เปิดตัวใน Android 12 การติดตั้งใช้งานต้องผ่านการทดสอบ CTS ที่เปิดตัวสำหรับคลาส Spatializer
การติดตั้งใช้งาน API ที่มีประสิทธิภาพช่วยให้นักพัฒนาแอป โดยเฉพาะบริการสตรีมมิงสื่อ มั่นใจได้ว่าระบบนิเวศจะทำงานอย่างสม่ำเสมอและเลือกเนื้อหาที่ดีที่สุดตามความสามารถของอุปกรณ์ บริบทการแสดงผลปัจจุบัน และตัวเลือกของผู้ใช้
ส่วนติดต่อผู้ใช้
หลังจากติดตั้งใช้งานคลาส Spatializer
แล้ว ให้ตรวจสอบว่า UI มีลักษณะการทำงานดังต่อไปนี้
เมื่อจับคู่ชุดหูฟังที่รองรับเสียงรอบทิศทางแล้ว การตั้งค่าอุปกรณ์บลูทูธสำหรับชุดหูฟังนี้จะแสดงปุ่มเปิด/ปิดเสียงรอบทิศทาง
รูปที่ 1 การตั้งค่าเสียงรอบทิศทาง
การตั้งค่าจะใช้งานได้เมื่อยกเลิกการเชื่อมต่อชุดหูฟัง
สถานะเริ่มต้นของเสียงรอบทิศทางหลังจากจับคู่ชุดหูฟังครั้งแรกจะเปิดใช้
สถานะที่ผู้ใช้เลือกไว้ไม่ว่าจะเปิดหรือปิดใช้ สถานะดังกล่าวจะยังคงอยู่แม้ว่าโทรศัพท์จะรีบูตหรือถอดคู่และจับคู่ชุดหูฟังใหม่
ลักษณะการทํางาน
รูปแบบเสียง
รูปแบบเสียงต่อไปนี้ต้องได้รับการเรนเดอร์โดยเอฟเฟกต์การจัดวางเสียงเมื่อเปิดใช้เสียงรอบทิศทางและอุปกรณ์สำหรับการเรนเดอร์เป็นหูฟังแบบใช้สายหรือบลูทูธ
- AAC, 5.1 ช่อง
- PCM ดิบ 5.1 แชนแนล
เราขอแนะนําอย่างยิ่งให้รองรับรูปแบบ/การกำหนดค่าช่องต่อไปนี้เพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีขึ้น
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4 ช่อง
การเล่นเนื้อหาแบบสเตอริโอ
เนื้อหาสเตอริโอต้องไม่ผ่านการจัดการแสดงผลผ่านเครื่องมือเอฟเฟกต์เสียงรอบทิศทาง แม้ว่าจะเปิดใช้เสียงรอบทิศทางก็ตาม หากการใช้งานอนุญาตให้มีการจัดวางเสียงของเนื้อหาสเตอริโอ การใช้งานนั้นต้องแสดง UI ที่กําหนดเองซึ่งช่วยให้ผู้ใช้เปิดหรือปิดฟีเจอร์นี้ได้ง่ายๆ เมื่อเปิดใช้เสียงเชิงพื้นที่ ผู้ใช้ต้องสามารถสลับระหว่างการเล่นเนื้อหาหลายช่องที่มีเสียงเชิงพื้นที่กับเนื้อหาสเตอริโอที่ไม่มีเสียงเชิงพื้นที่ได้โดยไม่ต้องเปลี่ยนแปลงการตั้งค่าของผู้ใช้ หรือเชื่อมต่อหรือกำหนดค่าหูฟังใหม่ การเปลี่ยนระหว่างเนื้อหาเสียงรอบทิศทางกับเนื้อหาสเตอริโอต้องเกิดขึ้นโดยที่เสียงไม่ขาดตอน
การเปลี่ยนกรณีการใช้งานและความพร้อมกัน
จัดการกรณีการใช้งานพิเศษดังนี้
- การแจ้งเตือนต้องผสมกับเนื้อหาเสียงรอบทิศทางในลักษณะเดียวกับที่ผสมกับเนื้อหาเสียงแบบไม่ใช้เสียงรอบทิศทาง
- ต้องอนุญาตให้มิกซ์ริงโทนกับเนื้อหาเสียงรอบทิศทางได้ อย่างไรก็ตาม โดยค่าเริ่มต้น กลไกโฟกัสเสียงจะหยุดเนื้อหาเสียงรอบทิศทางชั่วคราวเมื่อมีเสียงเรียกเข้า
- เมื่อรับสายหรือโทรออกหรือเข้าร่วมการประชุมทางวิดีโอ การเล่นเสียงแบบเสียงรอบทิศทางจะต้องหยุดชั่วคราว การเล่นเสียงรอบทิศทางต้องเล่นต่อด้วยการตั้งค่าเสียงรอบทิศทางเดียวกันเมื่อการโทรสิ้นสุด การกำหนดค่าเส้นทางเสียงใหม่เพื่อเปลี่ยนจากโหมดเสียงรอบทิศทางเป็นโหมดสนทนาต้องเกิดขึ้นอย่างรวดเร็วและราบรื่นพอที่จะไม่ส่งผลต่อประสบการณ์การโทร
การแสดงผลผ่านลำโพง
ไม่จําเป็นต้องรองรับการจัดวางเสียงรอบทิศทางผ่านลําโพงหรือโหมด Transaural
หลักเกณฑ์ในการใช้งานการติดตามการเคลื่อนไหวของศีรษะ
ส่วนนี้จะเน้นที่เสียงรอบทิศทางแบบไดนามิก ซึ่งมีข้อกำหนดเฉพาะสำหรับหูฟัง
ส่วนติดต่อผู้ใช้
เมื่อติดตั้งใช้งานและจับคู่ชุดหูฟังที่รองรับเสียงรอบทิศทางแล้ว ให้ตรวจสอบว่า UI มีลักษณะการทำงานดังต่อไปนี้
ในการตั้งค่าอุปกรณ์บลูทูธ เมื่อเปิดใช้การตั้งค่าเสียงรอบทิศทางสำหรับชุดหูฟัง การตั้งค่าการติดตามการเคลื่อนไหวของศีรษะจะปรากฏในส่วนเสียงรอบทิศทาง
รูปที่ 2 การตั้งค่าเสียงรอบทิศทางและการติดตามการเคลื่อนไหวของศีรษะ
การตั้งค่าการติดตามการเคลื่อนไหวของศีรษะจะไม่ปรากฏเมื่อปิดใช้เสียงรอบทิศทาง
สถานะเริ่มต้นสำหรับการติดตามการเคลื่อนไหวของศีรษะหลังจากจับคู่ชุดหูฟังครั้งแรกจะตั้งค่าเป็นเปิดใช้
สถานะที่ผู้ใช้เลือกไว้ ไม่ว่าจะเปิดหรือปิดใช้ จะต้องคงอยู่หลังจากรีบูตโทรศัพท์หรือยกเลิกการจับคู่และจับคู่ชุดหูฟัง
ลักษณะการทํางาน
การรายงานท่าทางของศีรษะ
- ข้อมูลท่าทางของศีรษะในพิกัด x, y และ z ที่ส่งจากชุดหูฟังไปยังอุปกรณ์ Android ต้องแสดงการเคลื่อนไหวของศีรษะผู้ใช้อย่างรวดเร็วและแม่นยำ
- การรายงานท่าทางของศีรษะผ่านลิงก์บลูทูธต้องเป็นไปตามโปรโตคอลที่กําหนดไว้ผ่าน HID
- ชุดหูฟังต้องส่งข้อมูลการติดตามการเคลื่อนไหวของศีรษะไปยังโทรศัพท์ Android เฉพาะเมื่อผู้ใช้เปิดใช้การติดตามการเคลื่อนไหวของศีรษะใน UI การตั้งค่าอุปกรณ์บลูทูธเท่านั้น
ประสิทธิภาพ
ตอบสนองช้า
เวลาในการตอบสนองของการติดตามการเคลื่อนไหวของศีรษะหมายถึงเวลาที่ใช้ในการจับการเคลื่อนไหวของศีรษะโดยหน่วยวัดความเฉื่อย (IMU) ไปจนถึงการตรวจจับการเปลี่ยนแปลงของเสียงที่เกิดจากการเคลื่อนไหวนี้ของทรานสดิวเซอร์หูฟัง เวลาในการตอบสนองของการติดตามการเคลื่อนไหวของศีรษะต้องไม่เกิน 150 มิลลิวินาที
อัตราการรายงานท่าทางของศีรษะ
เมื่อการติดตามการเคลื่อนไหวของศีรษะทำงานอยู่ เฮดเซ็ตต้องรายงานท่าทางของศีรษะเป็นระยะๆ ตามคำแนะนำประมาณ 20 มิลลิวินาที เพื่อหลีกเลี่ยงการทริกเกอร์ตรรกะการตรวจจับอินพุตที่ล้าสมัยในโทรศัพท์ระหว่างการส่งข้อมูลบลูทูธที่กระวนกระวาย เวลาสูงสุดระหว่างการอัปเดต 2 ครั้งต้องไม่เกิน 40 มิลลิวินาที
การเพิ่มประสิทธิภาพพลังงาน
เราขอแนะนําให้ใช้การเปลี่ยนตัวแปลงรหัสบลูทูธและกลไกการเลือกโหมดเวลาในการตอบสนองที่ได้จากอินเทอร์เฟซ HAL เสียงและ HAL เสียงบลูทูธเพื่อเพิ่มประสิทธิภาพพลังงาน
การใช้งานเฟรมเวิร์กเสียงและสแต็กบลูทูธของ AOSP รองรับสัญญาณในการควบคุมการสลับตัวแปลงรหัสอยู่แล้ว หากการใช้งานของ OEM ใช้ HAL เสียงหลักสำหรับเสียงบลูทูธ ซึ่งเรียกว่าโหมดการลดภาระของโค้ดดูแลคิว OEM จะต้องตรวจสอบว่า HAL เสียงส่งต่อสัญญาณเหล่านั้นระหว่าง HAL เสียงกับสแต็กบลูทูธ
การเปลี่ยนตัวแปลงรหัส
เมื่อเปิดเสียงรอบทิศทางแบบไดนามิกและการติดตามการเคลื่อนไหวของศีรษะ ให้ใช้ตัวแปลงรหัสที่มีเวลาในการตอบสนองต่ำ เช่น Opus เมื่อเล่นเนื้อหาเสียงแบบไม่ใช้เสียงรอบทิศทาง ให้ใช้ตัวแปลงรหัสพลังงานต่ำ เช่น Advanced Audio Coding (AAC)
โปรดทำตามกฎต่อไปนี้ระหว่างการเปลี่ยนตัวแปลงรหัส
- ติดตามเฉพาะกิจกรรมในสตรีมเอาต์พุต HAL เสียงต่อไปนี้
- เอาต์พุตของโปรแกรมจำลองเสียงเฉพาะ
- สตรีมเฉพาะสื่อ เช่น การเล่นแบบบัฟเฟอร์ลึกหรือการโอนข้อมูลที่บีบอัด
เมื่อสตรีมที่เกี่ยวข้องทั้งหมดไม่มีการใช้งานและสตรีมการจัดวางเสียงเริ่มขึ้น ให้เริ่มสตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นtrue
เพื่อระบุตัวแปลงรหัสที่มีเวลาในการตอบสนองต่ำเมื่อสตรีมที่เกี่ยวข้องทั้งหมดไม่มีการใช้งานและสตรีมสื่อเริ่มขึ้น ให้เริ่มสตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นfalse
เพื่อระบุตัวแปลงรหัสพลังงานต่ำหากสตรีมสื่อทำงานอยู่และสตรีมระบบเสียงรอบทิศทางเริ่มทำงาน ให้รีสตาร์ทสตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นtrue
ทางด้านหูฟัง หูฟังต้องรองรับทั้งตัวถอดรหัสที่มีเวลาในการตอบสนองต่ำและใช้พลังงานต่ำ และใช้โปรโตคอลการเลือกตัวแปลงรหัสมาตรฐาน
การปรับโหมดเวลาในการตอบสนอง
การปรับโหมดเวลาในการตอบสนองจะเกิดขึ้นเมื่อเลือกตัวแปลงรหัสที่มีเวลาในการตอบสนองต่ำ
การปรับโหมดเวลาในการตอบสนองจะพิจารณาจากสถานะการติดตามการเคลื่อนไหวของศีรษะว่าเปิดหรือปิดอยู่ โดยจะใช้กลไกที่มีอยู่เพื่อลดหรือเพิ่มเวลาในการตอบสนองเพื่อให้ได้เวลาในการตอบสนอง พลังงาน และคุณภาพเสียงที่ดีที่สุด เมื่อเปิดใช้เสียงรอบทิศทางและเปิดใช้การติดตามการเคลื่อนไหวของศีรษะ ระบบจะเลือกโหมดเวลาในการตอบสนองต่ำ เมื่อเปิดใช้เสียงรอบทิศทางและปิดใช้การติดตามการเคลื่อนไหวของศีรษะ ระบบจะเลือกโหมดเวลาในการตอบสนองต่ำ การปรับเวลาในการตอบสนองจะช่วยประหยัดพลังงานได้อย่างมากและเพิ่มความเสถียรของลิงก์เสียงบลูทูธเมื่อมีการขอเฉพาะเสียงรอบทิศทางแบบคงที่ กลไกการปรับเวลาในการตอบสนองที่พบบ่อยที่สุดคือการลดหรือขยายขนาดบัฟเฟอร์การกระตุกในชุดหูฟังบลูทูธ
ดูการติดตามการเคลื่อนไหวของศีรษะผ่าน LE Audio เพื่อดูการปรับโหมดเวลาในการตอบสนองสำหรับ LE Audio