Android 13 เปิดตัวการรองรับระบบเสียงตามตำแหน่งโดยมีAPI ที่ช่วยให้นักพัฒนาแอปค้นพบว่าการใช้งานโทรศัพท์ ชุดหูฟังที่เชื่อมต่อ และการตั้งค่าของผู้ใช้ในปัจจุบันอนุญาตให้เล่นเนื้อหาเสียงแบบหลายช่องในลักษณะที่สมจริงหรือไม่
OEM สามารถมอบเอฟเฟกต์เสียง Spatializer พร้อมรองรับการติดตามการเคลื่อนไหวของศีรษะด้วย ระดับประสิทธิภาพและความหน่วงที่จำเป็น โดยใช้สถาปัตยกรรมไปป์ไลน์เสียงใหม่ และการผสานรวมเฟรมเวิร์กเซ็นเซอร์ โปรโตคอล HID ระบุวิธี แนบอุปกรณ์ติดตามศีรษะผ่านบลูทูธและทำให้พร้อมใช้งานเป็นอุปกรณ์ HID ผ่านเฟรมเวิร์กเซ็นเซอร์ของ Android ดูข้อกำหนดและการตรวจสอบเพิ่มเติมได้ที่ระบบเสียงตามตำแหน่งและการติดตามศีรษะ
หลักเกณฑ์ในหน้านี้มีผลกับโซลูชันเสียงรอบทิศทางที่ใช้ API เสียงรอบทิศทางและสถาปัตยกรรมเสียงใหม่กับโทรศัพท์ Android ที่ใช้ Android 13 ขึ้นไปและชุดหูฟังที่รองรับซึ่งมี เซ็นเซอร์จับการเคลื่อนไหวของศีรษะ
หลักเกณฑ์สำหรับการใช้งานโหมดเสียงรอบทิศทางแบบไดนามิกและแบบคงที่
เสียงรอบทิศทางแบบคงที่ไม่ต้องใช้การติดตามศีรษะ ดังนั้นชุดหูฟังจึงไม่จำเป็นต้องมีฟังก์ชันการทำงานที่เฉพาะเจาะจง ชุดหูฟังแบบมีสายและไร้สายทั้งหมดรองรับ เสียงรอบทิศทางแบบคงที่
การใช้งาน API
OEM ต้องใช้คลาส Spatializer
ที่เปิดตัวใน Android 12 การใช้งานต้องผ่านการทดสอบ CTS
ที่เปิดตัวสำหรับ
Spatializer
คลาส
การติดตั้งใช้งาน API ที่มีประสิทธิภาพจะช่วยให้นักพัฒนาแอป โดยเฉพาะบริการสตรีมมิงสื่อ สามารถพึ่งพาพฤติกรรมที่สอดคล้องกันในระบบนิเวศและ เลือกเนื้อหาที่ดีที่สุดตามความสามารถของอุปกรณ์ บริบทการแสดงผลปัจจุบัน และตัวเลือกของผู้ใช้
ส่วนติดต่อผู้ใช้
หลังจากติดตั้งใช้งานคลาส Spatializer
แล้ว ให้ตรวจสอบว่า UI มีลักษณะการทำงานต่อไปนี้
เมื่อจับคู่ชุดหูฟังที่รองรับเสียงรอบทิศทางแล้ว การตั้งค่าอุปกรณ์บลูทูธ สำหรับชุดหูฟังนี้จะแสดงปุ่มเปิด/ปิดเสียงรอบทิศทาง
รูปที่ 1 การตั้งค่าเสียงรอบทิศทาง
การตั้งค่าจะพร้อมใช้งานเมื่อชุดหูฟังไม่ได้เชื่อมต่อ
สถานะเริ่มต้นสำหรับเสียงรอบทิศทางหลังจากจับคู่ชุดหูฟังครั้งแรกคือเปิดใช้
สถานะที่ผู้ใช้เลือก ไม่ว่าจะเปิดหรือปิดใช้ จะยังคงอยู่เมื่อรีบูตโทรศัพท์ หรือยกเลิกการจับคู่และจับคู่ชุดหูฟัง
พฤติกรรมเชิงฟังก์ชัน
รูปแบบเสียง
เอฟเฟกต์ Spatializer ต้องแสดงผลรูปแบบเสียงต่อไปนี้เมื่อเปิดใช้เสียงรอบทิศทางและอุปกรณ์แสดงผลเป็นชุดหูฟังแบบใช้สายหรือบลูทูธ
- AAC, 5.1 แชนเนล
- PCM ดิบ 5.1 แชแนล
เราขอแนะนำให้รองรับรูปแบบ/การกำหนดค่าช่องต่อไปนี้เพื่อประสบการณ์ของผู้ใช้ที่ดียิ่งขึ้น
- Dolby Digital Plus
- ระบบเสียง 5.1.2, 7.1, 7.1.2, 7.1.4
การเล่นเนื้อหาสเตอริโอ
ห้ามแสดงเนื้อหาสเตอริโอผ่านเอ็นจินเอฟเฟกต์ Spatializer แม้ว่าจะเปิดใช้เสียงรอบทิศทางก็ตาม หากการติดตั้งใช้งานอนุญาตให้มีการกำหนดตำแหน่งเชิงพื้นที่ของเนื้อหาสเตอริโอ จะต้องแสดง UI ที่กำหนดเองซึ่งช่วยให้ผู้ใช้เปิดหรือปิดฟีเจอร์นี้ ได้อย่างง่ายดาย เมื่อเปิดใช้ระบบเสียงตามตำแหน่ง จะต้องสามารถ เปลี่ยนจากการเล่นเนื้อหาหลายช่องที่ปรับให้เป็นระบบเสียงตามตำแหน่งไปเป็น เนื้อหาสเตอริโอที่ไม่ได้ปรับให้เป็นระบบเสียงตามตำแหน่งได้โดยไม่ต้องมีการเปลี่ยนแปลงในการตั้งค่าของผู้ใช้ หรือการเชื่อมต่อชุดหูฟังใหม่หรือการกำหนดค่าใหม่ การเปลี่ยนระหว่างเนื้อหาเสียงรอบทิศทาง กับเนื้อหาสเตอริโอต้องเกิดขึ้นโดยมีการหยุดชะงักของเสียงน้อยที่สุด
การเปลี่ยนกรณีการใช้งานและการทำงานพร้อมกัน
จัดการกรณีการใช้งานพิเศษดังนี้
- การแจ้งเตือนต้องผสมกับเนื้อหาเสียงรอบทิศทางในลักษณะเดียวกับที่ใช้กับเนื้อหาเสียงที่ไม่ใช่เสียงรอบทิศทาง
- ต้องอนุญาตให้ผสมเสียงเรียกเข้ากับเนื้อหาเสียงรอบทิศทาง อย่างไรก็ตาม โดยค่าเริ่มต้น กลไกการโฟกัสเสียงจะหยุดเนื้อหาเสียงรอบทิศทางชั่วคราวเมื่อ มีเสียงเรียกเข้า
- เมื่อรับสายหรือโทรออก หรือเข้าร่วมการประชุมทางวิดีโอ การเล่นเสียงเชิงพื้นที่ต้องหยุดชั่วคราว การเล่นเสียงรอบทิศทางต้องกลับมาทำงานต่อด้วยการตั้งค่าเสียงรอบทิศทางแบบเดียวกันเมื่อการโทรสิ้นสุดลง การกำหนดค่าเส้นทางเสียงใหม่ เพื่อเปลี่ยนจากโหมดเสียงรอบทิศทางเป็นโหมดสนทนาต้องเกิดขึ้นอย่างรวดเร็ว และราบรื่นเพียงพอเพื่อไม่ให้ส่งผลต่อประสบการณ์การโทร
การแสดงผลผ่านลำโพง
ไม่จำเป็นต้องรองรับการสร้างเสียงรอบทิศทางผ่านลำโพงหรือโหมดทรานส์ออรัล
หลักเกณฑ์ในการติดตั้งใช้งานการติดตามการเคลื่อนไหวของศีรษะ
ส่วนนี้จะเน้นที่เสียงรอบทิศทางแบบไดนามิกซึ่งมีข้อกำหนดเฉพาะสำหรับชุดหูฟัง
ส่วนติดต่อผู้ใช้
เมื่อติดตั้งใช้งานและจับคู่ชุดหูฟังที่รองรับเสียงรอบทิศทางแล้ว ให้ตรวจสอบว่า 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 ของเสียงต่อไปนี้
- เอาต์พุต Spatializer โดยเฉพาะ
- สตรีมเฉพาะสื่อ เช่น การบัฟเฟอร์ลึกหรือการออฟโหลดที่บีบอัด การเล่น
เมื่อสตรีมที่เกี่ยวข้องทั้งหมดไม่ได้ใช้งานและสตรีม Spatializer เริ่มทำงาน ให้เริ่ม สตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นtrue
เพื่อระบุตัวแปลงรหัสที่มีเวลาในการตอบสนองต่ำเมื่อสตรีมที่เกี่ยวข้องทั้งหมดไม่ได้ใช้งานและสตรีมสื่อเริ่มทำงาน ให้เริ่มสตรีม บลูทูธโดยตั้งค่า
isLowLatency
เป็นfalse
เพื่อระบุตัวแปลงรหัสแบบประหยัดพลังงานหากสตรีมสื่อทำงานอยู่และสตรีม Spatializer เริ่มทำงาน ให้รีสตาร์ทสตรีมบลูทูธโดยตั้งค่า
isLowLatency
เป็นtrue
ในส่วนของชุดหูฟัง ชุดหูฟังต้องรองรับทั้งตัวถอดรหัสที่มีเวลาในการตอบสนองต่ำและใช้พลังงานต่ำ และใช้โปรโตคอลการเลือกตัวแปลงรหัสมาตรฐาน
การปรับโหมดเวลาในการตอบสนอง
การปรับโหมดค่าความหน่วงจะเกิดขึ้นเมื่อเลือกตัวแปลงรหัสค่าความหน่วงต่ำ
การปรับโหมดเวลาในการตอบสนองจะใช้กลไกที่มีอยู่เพื่อลดหรือเพิ่มเวลาในการตอบสนองเพื่อให้ได้ค่าประนีประนอมที่ดีที่สุดระหว่างเวลาในการตอบสนอง พลังงาน และคุณภาพเสียง ทั้งนี้ขึ้นอยู่กับว่าการติดตามศีรษะเปิดหรือปิดอยู่ เมื่อเปิดใช้เสียงรอบทิศทางและเปิดใช้การติดตามศีรษะ ระบบจะเลือกโหมดที่มีเวลาในการตอบสนองต่ำ เมื่อเปิดใช้ ระบบเสียงเชิงพื้นที่และปิดใช้การติดตามการเคลื่อนไหวของศีรษะ ระบบจะเลือกโหมดที่มีเวลาในการตอบสนองต่ำ การปรับเวลาในการตอบสนองช่วยประหยัดพลังงานได้อย่างมากและเพิ่ม ความเสถียรของลิงก์เสียงบลูทูธเมื่อมีการขอเสียงรอบทิศทางแบบคงที่เท่านั้น กลไกการปรับเวลาในการตอบสนองที่พบบ่อยที่สุดคือการลดหรือ ขยายขนาดบัฟเฟอร์การกระตุกในชุดหูฟังบลูทูธ
ดูการติดตามศีรษะผ่าน LE Audio เพื่อปรับโหมดเวลาในการตอบสนองสำหรับ LE Audio