ติดตั้งใช้งานเสียงรอบทิศทางและการติดตามการเคลื่อนไหวของศีรษะที่มีคุณภาพสูง

Android 13 เปิดตัวการรองรับเสียงรอบทิศทางโดยมี API ที่ช่วยให้นักพัฒนาแอปค้นพบว่าการใช้งานโทรศัพท์ ชุดหูฟังที่เชื่อมต่อ และการตั้งค่าของผู้ใช้ในปัจจุบันอนุญาตให้เล่นเนื้อหาเสียง หลายแชแนลในลักษณะที่สมจริงได้หรือไม่

OEM สามารถมอบเอฟเฟกต์เสียง Spatializer ที่รองรับการติดตามการเคลื่อนไหวของศีรษะด้วยระดับประสิทธิภาพและเวลาในการตอบสนองที่จำเป็น โดยใช้สถาปัตยกรรมไปป์ไลน์เสียงใหม่และการผสานรวมเฟรมเวิร์กเซ็นเซอร์ โปรโตคอล HID จะระบุวิธี แนบอุปกรณ์ติดตามการเคลื่อนไหวของศีรษะผ่านบลูทูธและทำให้พร้อมใช้งานเป็นอุปกรณ์ HID ผ่านเฟรมเวิร์กเซ็นเซอร์ของ Android ดูข้อกำหนดและการตรวจสอบเพิ่มเติมได้ที่เสียงรอบทิศทางและการติดตามการเคลื่อนไหวของศีรษะ

หลักเกณฑ์ในหน้านี้ใช้กับโซลูชันเสียงรอบทิศทางที่ใช้ API เสียงรอบทิศทางและสถาปัตยกรรมเสียงใหม่กับโทรศัพท์ Android ที่ใช้ Android 13 ขึ้นไป รวมถึงชุดหูฟังที่เข้ากันได้ซึ่งมีเซ็นเซอร์ติดตามการเคลื่อนไหวของศีรษะ

หลักเกณฑ์สำหรับการใช้งานโหมดเสียงรอบทิศทางแบบไดนามิกและแบบคงที่

เสียงรอบทิศทางแบบคงที่ไม่จำเป็นต้องมีการติดตามการเคลื่อนไหวของศีรษะ ดังนั้นชุดหูฟังจึงไม่จำเป็นต้องมีฟังก์ชันการทำงานที่เฉพาะเจาะจง ชุดหูฟังแบบมีสายและไร้สายทั้งหมดรองรับเสียงรอบทิศทางแบบคงที่

การใช้งาน API

OEM ต้องใช้คลาส Spatializer ที่เปิดตัวใน Android 12 การใช้งานต้องผ่านการทดสอบ CTS ที่เปิดตัวสำหรับ Spatializer คลาส

การใช้งาน API ที่มีประสิทธิภาพจะช่วยให้นักพัฒนาแอป โดยเฉพาะบริการสตรีมมิงสื่อ สามารถพึ่งพาพฤติกรรมที่สอดคล้องกันในระบบนิเวศ และเลือกเนื้อหาที่ดีที่สุดตามความสามารถของอุปกรณ์ บริบทการแสดงผลปัจจุบัน และตัวเลือกของผู้ใช้

อินเทอร์เฟซผู้ใช้

หลังจากใช้คลาส Spatializer แล้ว ให้ตรวจสอบว่า UI มีลักษณะการทำงานต่อไปนี้

  • เมื่อจับคู่ชุดหูฟังที่รองรับเสียงรอบทิศทางแล้ว การตั้งค่าอุปกรณ์บลูทูธสำหรับชุดหูฟังนี้จะแสดงปุ่มเปิด/ปิดเสียงรอบทิศทาง

    spatial-audio-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 มีลักษณะการทำงานต่อไปนี้

  • ในการตั้งค่าอุปกรณ์บลูทูธ เมื่อเปิดใช้การตั้งค่าเสียงรอบทิศทาง สำหรับ ชุดหูฟัง การตั้งค่าการติดตามการเคลื่อนไหวของศีรษะ จะปรากฏขึ้นในส่วน เสียงรอบทิศทาง

    ht-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