Android 13 เปิดตัวการรองรับระบบเสียงตามตำแหน่งโดยมี API ที่ช่วยให้นักพัฒนาแอปค้นพบว่าการใช้งานโทรศัพท์ ชุดหูฟังที่เชื่อมต่อ และการตั้งค่าของผู้ใช้ในปัจจุบันอนุญาตให้เล่นเนื้อหาเสียงแบบหลายช่องในลักษณะที่สมจริงได้หรือไม่
OEM สามารถมอบเอฟเฟกต์เสียงรอบทิศทางพร้อมรองรับการติดตามการเคลื่อนไหวของศีรษะด้วย ระดับประสิทธิภาพและความหน่วงที่จำเป็น โดยใช้สถาปัตยกรรมไปป์ไลน์เสียงใหม่ และการผสานรวมเฟรมเวิร์กเซ็นเซอร์ โปรโตคอล 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