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 แชแนล
- Raw PCM, 5.1 แชแนล
เราขอแนะนำอย่างยิ่งให้รองรับรูปแบบ/การกำหนดค่าแชแนลต่อไปนี้เพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีขึ้น
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4 แชแนล
การเล่นเนื้อหาสเตอริโอ
ระบบต้องไม่แสดงผลเนื้อหาสเตอริโอผ่านเอนจินเอฟเฟกต์ Spatializer แม้ว่าจะเปิดใช้เสียงรอบทิศทางอยู่ก็ตาม หากการใช้งานอนุญาตให้ใช้ Spatialization กับเนื้อหาสเตอริโอได้ ระบบจะต้องแสดง UI ที่กำหนดเองซึ่งช่วยให้ผู้ใช้เปิดหรือปิดฟีเจอร์นี้ได้อย่างง่ายดาย เมื่อเปิดใช้เสียงรอบทิศทาง ผู้ใช้ต้องสามารถเปลี่ยนจากการเล่นเนื้อหาหลายแชแนลที่ใช้ Spatialization ไปเป็นเนื้อหาสเตอริโอที่ไม่ได้ใช้ Spatialization ได้โดยไม่ต้องเปลี่ยนแปลงการตั้งค่าของผู้ใช้ หรือเชื่อมต่อหรือกำหนดค่าชุดหูฟังใหม่ การเปลี่ยนระหว่างเนื้อหาเสียงรอบทิศทางกับเนื้อหาสเตอริโอต้องเกิดขึ้นโดยมีการหยุดชะงักของเสียงน้อยที่สุด
การเปลี่ยนกรณีการใช้งานและการทำงานพร้อมกัน
จัดการกรณีการใช้งานพิเศษดังนี้
- ระบบต้องผสมการแจ้งเตือนกับเนื้อหาเสียงรอบทิศทางในลักษณะเดียวกับที่ผสมกับการแจ้งเตือนกับเนื้อหาเสียงที่ไม่ใช่เสียงรอบทิศทาง
- ระบบต้องอนุญาตให้ผสมเสียงเรียกเข้ากับเนื้อหาเสียงรอบทิศทาง อย่างไรก็ตาม กลไกการโฟกัสเสียงจะหยุดเนื้อหาเสียงรอบทิศทางชั่วคราวโดยค่าเริ่มต้นเมื่อมีเสียงเรียกเข้า
- เมื่อรับหรือโทรออก หรือเข้าร่วมการประชุมทางวิดีโอ การเล่นเสียงรอบทิศทางต้องหยุดชั่วคราว การเล่นเสียงรอบทิศทางต้องกลับมาทำงานต่อด้วยการตั้งค่าเสียงรอบทิศทางแบบเดิมเมื่อการโทรสิ้นสุดลง การกำหนดค่าเส้นทางเสียงใหม่เพื่อเปลี่ยนจากโหมดเสียงรอบทิศทางเป็นโหมดสนทนาต้องเกิดขึ้นอย่างรวดเร็วและราบรื่นเพียงพอที่จะไม่ส่งผลต่อประสบการณ์การโทร
การแสดงผลผ่านลำโพง
ระบบไม่จำเป็นต้องรองรับ Spatialization ของเสียงผ่านลำโพงหรือ โหมด Transaural
หลักเกณฑ์สำหรับการใช้งานการติดตามการเคลื่อนไหวของศีรษะ
ส่วนนี้มุ่งเน้นที่เสียงรอบทิศทางแบบไดนามิก ซึ่งมีข้อกำหนดเฉพาะสำหรับชุดหูฟัง
อินเทอร์เฟซผู้ใช้
เมื่อใช้งานและจับคู่ชุดหูฟังที่รองรับเสียงรอบทิศทางแล้ว ให้ตรวจสอบว่า UI มีลักษณะการทำงานต่อไปนี้
ในการตั้งค่าอุปกรณ์บลูทูธ เมื่อเปิดใช้การตั้งค่าเสียงรอบทิศทาง สำหรับ ชุดหูฟัง การตั้งค่าการติดตามการเคลื่อนไหวของศีรษะ จะปรากฏขึ้นในส่วน เสียงรอบทิศทาง
รูปที่ 2 การตั้งค่าเสียงรอบทิศทางและการติดตามการเคลื่อนไหวของศีรษะ
การตั้งค่าการติดตามการเคลื่อนไหวของศีรษะจะไม่แสดงเมื่อปิดใช้เสียงรอบทิศทาง
สถานะเริ่มต้นสำหรับการติดตามการเคลื่อนไหวของศีรษะหลังจากจับคู่ชุดหูฟังครั้งแรกจะตั้งค่าเป็น เปิดใช้
สถานะที่ผู้ใช้เลือก ไม่ว่าจะเปิดใช้หรือปิดใช้ จะต้องยังคงอยู่เมื่อรีบูตโทรศัพท์หรือยกเลิกการจับคู่และจับคู่ชุดหูฟัง
ลักษณะการทำงาน
การรายงานท่าทางของศีรษะ
- ข้อมูลท่าทางของศีรษะในพิกัด x, y และ z ที่ส่งจากชุดหูฟังไปยังอุปกรณ์ Android ต้องแสดงการเคลื่อนไหวของศีรษะของผู้ใช้อย่างรวดเร็วและแม่นยำ
- การรายงานท่าทางของศีรษะผ่านลิงก์บลูทูธต้องเป็นไปตามโปรโตคอลที่กำหนดไว้ ผ่าน HID
- ชุดหูฟังต้องส่งข้อมูลการติดตามการเคลื่อนไหวของศีรษะไปยังโทรศัพท์ Android ก็ต่อเมื่อผู้ใช้เปิดใช้การติดตามการเคลื่อนไหวของศีรษะ ใน UI การตั้งค่าอุปกรณ์บลูทูธ
ประสิทธิภาพ
เวลาในการตอบสนอง
เวลาในการตอบสนองของการติดตามการเคลื่อนไหวของศีรษะ หมายถึงเวลาที่ใช้ตั้งแต่การเคลื่อนไหวของศีรษะที่จับได้โดยหน่วยวัดความเฉื่อย (Inertial Measurement Unit หรือ 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 สำหรับการปรับโหมดเวลาในการตอบสนอง สำหรับเสียง LE