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

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

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

เราขอแนะนำให้รองรับรูปแบบ/การกำหนดค่าช่องต่อไปนี้เพื่อมอบประสบการณ์การใช้งานที่ดีขึ้น

  • Dolby Digital Plus
  • ระบบเสียง 5.1.2, 7.1, 7.1.2, 7.1.4

การเล่นเนื้อหาสเตอริโอ

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

การเปลี่ยนกรณีการใช้งานและความพร้อมกัน

จัดการกรณีการใช้งานพิเศษดังนี้

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

การแสดงผลผ่านลำโพง

ไม่จำเป็นต้องรองรับการปรับเสียงรอบทิศทางผ่านลำโพงหรือโหมดทรานส์ออรัล

หลักเกณฑ์ในการติดตั้งใช้งานการติดตามการเคลื่อนไหวของศีรษะ

ส่วนนี้จะเน้นที่เสียงรอบทิศทางแบบไดนามิก ซึ่งมีข้อกำหนดเฉพาะสำหรับชุดหูฟัง

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

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

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

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