Triển khai tính năng theo dõi chuyển động của đầu và âm thanh không gian chất lượng cao

Android 13 hỗ trợ âm thanh không gian bằng cách cung cấp API để cho phép nhà phát triển ứng dụng khám phá xem liệu tổ hợp hiện tại giữa cách triển khai điện thoại, tai nghe đã kết nối và chế độ cài đặt của người dùng có cho phép phát nội dung âm thanh đa kênh theo cách sống động hay không.

Nhà sản xuất thiết bị gốc (OEM) có thể cung cấp hiệu ứng âm thanh của bộ tạo không gian bằng cách hỗ trợ tính năng theo dõi chuyển động của đầu ở mức hiệu suất và độ trễ cần thiết bằng cách sử dụng cấu trúc quy trình âm thanh mới và tích hợp khung cảm biến. Giao thức HID chỉ định cách đính kèm thiết bị theo dõi chuyển động đầu qua Bluetooth và cung cấp thiết bị đó dưới dạng thiết bị HID thông qua khung cảm biến Android. Hãy xem bài viết Theo dõi âm thanh không gian và chuyển động đầu để biết thêm yêu cầu và xác thực.

Các nguyên tắc trên trang này áp dụng cho giải pháp âm thanh không gian sử dụng API âm thanh không gian và cấu trúc âm thanh mới với điện thoại Android chạy Android 13 trở lên và tai nghe tương thích có cảm biến theo dõi chuyển động của đầu.

Nguyên tắc triển khai chế độ âm thanh không gian động và tĩnh

Âm thanh không gian tĩnh không yêu cầu tính năng theo dõi đầu, vì vậy, tai nghe không cần có chức năng cụ thể. Tất cả tai nghe có dây và không dây đều có thể hỗ trợ âm thanh không gian tĩnh.

Triển khai API

Nhà sản xuất thiết bị gốc (OEM) PHẢI triển khai lớp Spatializer được giới thiệu trong Android 12. Quá trình triển khai phải vượt qua các bài kiểm thử CTS được giới thiệu cho lớp Spatializer.

Việc triển khai API mạnh mẽ đảm bảo rằng các nhà phát triển ứng dụng (cụ thể là các dịch vụ phát trực tuyến nội dung đa phương tiện) có thể dựa vào hành vi nhất quán trên hệ sinh thái và chọn nội dung phù hợp nhất theo khả năng của thiết bị, ngữ cảnh kết xuất hiện tại và lựa chọn của người dùng.

Giao diện người dùng

Sau khi triển khai lớp Spatializer, hãy xác thực rằng giao diện người dùng của bạn có hành vi sau:

  • Khi bạn ghép nối tai nghe có hỗ trợ âm thanh không gian, chế độ cài đặt thiết bị Bluetooth cho tai nghe này sẽ hiển thị nút bật/tắt Âm thanh không gian:

    giao diện người dùng âm thanh không gian

    Hình 1. Chế độ cài đặt Âm thanh không gian.

  • Bạn có thể sử dụng các chế độ cài đặt này khi tai nghe bị ngắt kết nối.

  • Trạng thái mặc định cho âm thanh không gian sau khi ghép nối tai nghe ban đầu được đặt thành bật.

  • Trạng thái do người dùng chọn (cho dù là bật hay tắt) sẽ vẫn duy trì quá trình khởi động lại điện thoại hoặc huỷ ghép nối và ghép nối tai nghe.

Hành vi chức năng

Định dạng âm thanh

Hiệu ứng âm thanh không gian PHẢI kết xuất các định dạng âm thanh sau đây khi bạn bật âm thanh không gian và thiết bị kết xuất là tai nghe có dây hoặc Bluetooth:

  • AAC, 5.1 kênh
  • PCM thô, 5.1 kênh

Để mang lại trải nghiệm tốt hơn cho người dùng, bạn nên hỗ trợ các định dạng/cấu hình kênh sau:

  • Dolby Digital Plus
  • Kênh 5.1.2, 7.1, 7.1.2, 7.1.4

Phát nội dung âm thanh nổi

Nội dung âm thanh nổi không được kết xuất thông qua công cụ hiệu ứng âm thanh không gian, ngay cả khi bạn bật tính năng âm thanh không gian. Nếu một phương thức triển khai cho phép không gian hoá nội dung âm thanh nổi, thì phương thức triển khai đó phải hiển thị một giao diện người dùng tuỳ chỉnh giúp người dùng dễ dàng bật hoặc tắt tính năng này. Khi bật âm thanh không gian, bạn phải chuyển đổi giữa chế độ phát nội dung đa kênh có không gian sang nội dung âm thanh nổi không không gian mà không cần thay đổi chế độ cài đặt của người dùng hoặc kết nối lại/định cấu hình lại tai nghe. Quá trình chuyển đổi giữa nội dung âm thanh không gian và nội dung âm thanh nổi phải diễn ra với mức độ gián đoạn âm thanh tối thiểu.

Chuyển đổi trường hợp sử dụng và tính đồng thời

Xử lý các trường hợp sử dụng đặc biệt như sau:

  • Thông báo phải được kết hợp với nội dung âm thanh không gian theo cách tương tự như với nội dung âm thanh không phải không gian.
  • Bạn phải cho phép trộn nhạc chuông với nội dung âm thanh không gian. Tuy nhiên, theo mặc định, cơ chế tập trung vào âm thanh sẽ tạm dừng nội dung âm thanh không gian khi có nhạc chuông.
  • Khi bạn trả lời hoặc thực hiện cuộc gọi điện thoại hoặc hội nghị video, chế độ phát âm thanh không gian phải tạm dừng. Quá trình phát âm thanh không gian phải tiếp tục với cùng chế độ cài đặt âm thanh không gian khi cuộc gọi kết thúc. Việc định cấu hình lại đường dẫn âm thanh để chuyển từ chế độ âm thanh không gian sang chế độ trò chuyện phải diễn ra nhanh chóng và liền mạch để không ảnh hưởng đến trải nghiệm cuộc gọi.

Kết xuất qua loa

Không cần hỗ trợ tính năng không gian âm thanh qua loa hoặc chế độ xuyên âm.

Nguyên tắc triển khai tính năng theo dõi chuyển động đầu

Phần này tập trung vào âm thanh không gian động, có các yêu cầu cụ thể về tai nghe.

Giao diện người dùng

Sau khi triển khai và ghép nối tai nghe có thể phát âm thanh không gian, hãy xác thực rằng giao diện người dùng của bạn có hành vi sau:

  • Trong phần cài đặt thiết bị Bluetooth, khi bạn bật chế độ cài đặt Âm thanh không gian cho tai nghe, chế độ cài đặt Theo dõi chuyển động của đầu sẽ xuất hiện trong phần Âm thanh không gian:

    ht-ui

    Hình 2. Chế độ cài đặt âm thanh không gian và theo dõi chuyển động của đầu.

  • Chế độ cài đặt theo dõi chuyển động của đầu KHÔNG xuất hiện khi âm thanh không gian bị tắt.

  • Trạng thái mặc định cho tính năng theo dõi chuyển động của đầu sau khi ghép nối tai nghe ban đầu được đặt thành bật.

  • Trạng thái người dùng đã chọn (cho dù được bật hay tắt) phải duy trì thông qua việc khởi động lại điện thoại hoặc huỷ ghép nối và ghép nối tai nghe.

Hành vi chức năng

Báo cáo tư thế đầu

  • Thông tin về tư thế đầu (theo toạ độ x, y và z) gửi từ tai nghe đến thiết bị Android phải phản ánh nhanh chóng và chính xác chuyển động đầu của người dùng.
  • Tính năng báo cáo tư thế đầu qua đường liên kết Bluetooth phải tuân theo giao thức được xác định qua HID.
  • Tai nghe chỉ được gửi thông tin theo dõi chuyển động đầu đến điện thoại Android khi người dùng bật chế độ Theo dõi chuyển động đầu trong giao diện người dùng cài đặt thiết bị Bluetooth.

Hiệu suất

Độ trễ

Độ trễ theo dõi chuyển động đầu được xác định là khoảng thời gian từ khi chuyển động đầu được ghi lại bằng đơn vị đo lường quán tính (IMU) đến khi bộ chuyển đổi tai nghe phát hiện sự thay đổi về âm thanh do chuyển động này gây ra. Độ trễ của tính năng theo dõi chuyển động của đầu không được vượt quá 150 mili giây.

Tỷ lệ báo cáo tư thế đầu

Khi tính năng theo dõi đầu hoạt động, tai nghe phải báo cáo tư thế đầu theo chu kỳ đề xuất khoảng 20 mili giây. Để tránh kích hoạt logic phát hiện đầu vào cũ trên điện thoại trong khi truyền độ trễ của Bluetooth, thời gian tối đa giữa hai lần cập nhật không được vượt quá 40 mili giây.

Tối ưu hoá nguồn pin

Để tối ưu hoá nguồn điện, bạn nên triển khai bằng cách sử dụng cơ chế chuyển đổi bộ mã hoá và giải mã Bluetoothchọn chế độ độ trễ do giao diện HAL âm thanhHAL âm thanh Bluetooth cung cấp.

Các phương thức triển khai AOSP của khung âm thanh và ngăn xếp Bluetooth đã hỗ trợ các tín hiệu để kiểm soát việc chuyển đổi bộ mã hoá và giải mã. Nếu cách triển khai của nhà sản xuất thiết bị gốc (OEM) sử dụng HAL âm thanh chính cho âm thanh Bluetooth, còn gọi là chế độ giảm tải bộ mã hoá và giải mã, thì OEM phải đảm bảo rằng HAL âm thanh sẽ chuyển tiếp các tín hiệu đó giữa HAL âm thanh và ngăn xếp Bluetooth.

Chuyển đổi bộ mã hoá và giải mã

Khi bật tính năng theo dõi chuyển động của âm thanh không gian và chuyển động của đầu, hãy sử dụng bộ mã hoá và giải mã có độ trễ thấp, chẳng hạn như Opus. Khi phát nội dung âm thanh không gian, hãy sử dụng bộ mã hoá và giải mã có công suất thấp, chẳng hạn như Advanced Audio Coding (AAC).

Hãy tuân theo các quy tắc sau trong quá trình chuyển đổi bộ mã hoá và giải mã:

  • Chỉ theo dõi hoạt động trên các luồng đầu ra HAL âm thanh sau:
    • Đầu ra bộ tạo không gian chuyên dụng
    • Luồng dành riêng cho nội dung nghe nhìn, chẳng hạn như phát bằng bộ đệm sâu hoặc phát tải xuống được nén
  • Khi tất cả các luồng có liên quan đều ở trạng thái rảnh và luồng âm thanh không gian bắt đầu, hãy bắt đầu luồng Bluetooth với isLowLatency được đặt thành true để chỉ định một bộ mã hoá và giải mã có độ trễ thấp.

  • Khi tất cả luồng liên quan đều ở trạng thái rảnh và luồng nội dung nghe nhìn bắt đầu, hãy bắt đầu luồng Bluetooth bằng cách đặt isLowLatency thành false để chỉ định bộ mã hoá và giải mã tiết kiệm pin.

  • Nếu một luồng nội dung nghe nhìn đang hoạt động và luồng âm thanh không gian bắt đầu, hãy khởi động lại luồng Bluetooth bằng cách đặt isLowLatency thành true.

Về phía tai nghe, tai nghe phải hỗ trợ cả bộ giải mã có độ trễ thấp và công suất thấp, đồng thời triển khai giao thức lựa chọn bộ mã hoá và giải mã tiêu chuẩn.

Điều chỉnh chế độ độ trễ

Hoạt động điều chỉnh chế độ độ trễ xảy ra khi bạn chọn bộ mã hoá và giải mã có độ trễ thấp.

Dựa trên việc tính năng theo dõi chuyển động đầu đang bật hay tắt, tính năng điều chỉnh chế độ độ trễ sẽ sử dụng các cơ chế hiện có để giảm hoặc tăng độ trễ nhằm đạt được mức độ dung hoà tốt nhất giữa độ trễ, nguồn pin và chất lượng âm thanh. Khi âm thanh không gian được bật và tính năng theo dõi chuyển động của đầu được bật, chế độ độ trễ thấp sẽ được chọn. Khi âm thanh không gian được bật và tính năng theo dõi chuyển động của đầu bị tắt, chế độ độ trễ tự do sẽ được chọn. Tính năng điều chỉnh độ trễ giúp tiết kiệm pin đáng kể và tăng độ mạnh mẽ của đường liên kết âm thanh Bluetooth khi chỉ yêu cầu âm thanh không gian tĩnh. Cơ chế điều chỉnh độ trễ phổ biến nhất là giảm hoặc mở rộng kích thước vùng đệm độ trễ trong tai nghe Bluetooth.

Hãy xem bài viết Theo dõi chuyển động của âm thanh năng lượng thấp để biết cách điều chỉnh chế độ độ trễ cho Âm thanh năng lượng thấp.