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 แบบ Raw, 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 มิลลิวินาที เพื่อหลีกเลี่ยงการเรียกตรรกะการตรวจหาอินพุตที่ไม่มีการอัปเดตในโทรศัพท์ระหว่างที่การกระตุกระหว่างการส่งข้อมูลของบลูทูธ เวลาสูงสุดระหว่างการอัปเดตทั้งสองจะต้องไม่เกิน 40 มิลลิวินาที
การเพิ่มประสิทธิภาพพลังงาน
เพื่อเป็นการเพิ่มประสิทธิภาพพลังงาน เราขอแนะนำให้ใช้งานโดยใช้กลไกการสลับตัวแปลงรหัสบลูทูธและการเลือกโหมดเวลาในการตอบสนองที่ให้บริการโดยอินเทอร์เฟซ Audio HAL และ HAL เสียงบลูทูธ
การใช้งานเฟรมเวิร์กเสียงและสแต็กบลูทูธของ AOSP รองรับสัญญาณในการควบคุมการสลับตัวแปลงรหัสอยู่แล้ว หากการใช้งานของ OEM ใช้ HAL เสียงหลักสำหรับเสียงบลูทูธ ซึ่งเรียกว่าโหมดการลดภาระของโปรแกรมเปลี่ยนรหัส OEM จะต้องตรวจสอบว่า HAL เสียงส่งสัญญาณเหล่านั้นระหว่าง HAL เสียงกับสแต็กบลูทูธ
การเปลี่ยนตัวแปลงรหัส
เมื่อเปิดเสียงรอบทิศทางแบบไดนามิกและการติดตามการเคลื่อนไหวของศีรษะ ให้ใช้ตัวแปลงรหัสที่มีเวลาในการตอบสนองต่ำ เช่น Opus เมื่อเล่นเนื้อหาเสียงที่ไม่ใช่เชิงพื้นที่ ให้ใช้ตัวแปลงรหัสพลังงานต่ำ เช่น Advanced Audio Coding (AAC)
โปรดทำตามกฎต่อไปนี้ระหว่างการเปลี่ยนตัวแปลงรหัส
- ติดตามเฉพาะกิจกรรมในสตรีมเอาต์พุต HAL เสียงต่อไปนี้
- เอาต์พุตของโปรแกรมจำลองเสียงเฉพาะ
- สตรีมสื่อที่เจาะจง เช่น บัฟเฟอร์เชิงลึกหรือ การเล่นออฟโหลดที่บีบอัด
เมื่อสตรีมที่เกี่ยวข้องทั้งหมดไม่มีการใช้งานและสตรีมการจัดวางเสียงเริ่มขึ้น ให้เริ่มสตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นtrue
เพื่อระบุตัวแปลงรหัสที่มีเวลาในการตอบสนองต่ำเมื่อสตรีมที่เกี่ยวข้องทั้งหมดไม่มีการใช้งานและสตรีมสื่อเริ่มขึ้น ให้เริ่มสตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นfalse
เพื่อระบุตัวแปลงรหัสพลังงานต่ำหากสตรีมสื่อทำงานอยู่และสตรีมระบบเสียงรอบทิศทางเริ่มทำงาน ให้รีสตาร์ทสตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นtrue
ในด้านชุดหูฟัง ชุดหูฟังต้องรองรับทั้งตัวถอดรหัสที่มีเวลาในการตอบสนองต่ำและพลังงานต่ำ และใช้โปรโตคอลการเลือกตัวแปลงรหัสมาตรฐาน
การปรับโหมดเวลาในการตอบสนอง
การปรับโหมดเวลาในการตอบสนองจะเกิดขึ้นเมื่อเลือกตัวแปลงรหัสที่มีเวลาในการตอบสนองต่ำ
การปรับโหมดเวลาในการตอบสนองจะใช้กลไกที่มีในการลดหรือเพิ่มเวลาในการตอบสนองเพื่อให้ได้ประสิทธิภาพที่ดีที่สุดระหว่างเวลาในการตอบสนอง พลังงาน และคุณภาพเสียง โดยขึ้นอยู่กับว่าการติดตามการเคลื่อนไหวของศีรษะเปิดหรือปิดอยู่ เมื่อเปิดใช้เสียงรอบทิศทางและเปิดใช้การติดตามการเคลื่อนไหวของศีรษะ ระบบจะเลือกโหมดเวลาในการตอบสนองต่ำ เมื่อเปิดใช้เสียงรอบทิศทางและปิดใช้การติดตามการเคลื่อนไหวของศีรษะ ระบบจะเลือกโหมดเวลาในการตอบสนองฟรี การปรับเวลาในการตอบสนองช่วยประหยัดพลังงานได้อย่างมากและเพิ่มความแข็งแรงของลิงก์เสียงบลูทูธเมื่อมีการขอเฉพาะเสียงรอบทิศทางแบบคงที่ กลไกการปรับเวลาในการตอบสนองที่พบบ่อยที่สุดคือการลดหรือขยายขนาดบัฟเฟอร์การกระตุกในชุดหูฟังบลูทูธ
ดูการติดตามการเคลื่อนไหวของศีรษะผ่าน LE Audio เพื่อดูการปรับโหมดเวลาในการตอบสนองสำหรับ LE Audio