Implementasi audio spasial dan pelacakan gerakan kepala berkualitas tinggi

Android 13 memperkenalkan dukungan untuk audio spasial dengan menyediakan API yang memungkinkan pengembang aplikasi mengetahui apakah kombinasi ponsel saat ini implementasi, headset yang terhubung, dan setelan pengguna memungkinkan pemutaran konten audio multisaluran dengan cara yang imersif.

OEM dapat memberikan efek audio spatializer dengan dukungan untuk pelacakan gerakan kepala dengan tingkat performa dan latensi yang diperlukan, menggunakan pipeline audio baru arsitektur dan framework sensor. Tujuan Protokol HID menentukan cara memasang perangkat pelacakan kepala melalui Bluetooth dan menyediakannya sebagai HID perangkat melalui framework sensor Android. Lihat Audio Spasial dan Pelacakan Kepala untuk persyaratan dan validasi lebih lanjut.

Panduan di halaman ini berlaku untuk solusi audio spasial yang mengadopsi API audio spasial dan arsitektur audio baru dengan ponsel Android yang menjalankan Headset Android 13 dan yang lebih baru yang kompatibel dengan sensor pelacakan gerakan kepala.

Panduan penerapan mode audio spasial dinamis dan statis

Audio spasial statis tidak memerlukan pelacakan gerakan kepala, sehingga fungsionalitasnya tidak diperlukan dalam headset. Semua headset berkabel dan nirkabel dapat mendukung audio spasial statis.

Implementasi API

OEM HARUS menerapkan Spatializer yang diperkenalkan di Android 12. Implementasi harus lulus uji CTS diperkenalkan untuk class Spatializer.

Implementasi API yang tangguh memastikan bahwa developer aplikasi, khususnya media layanan {i>streaming<i}, dapat mengandalkan perilaku yang konsisten di seluruh ekosistem dan memilih konten terbaik berdasarkan kemampuan perangkat, rendering saat ini konteks, dan pilihan pengguna.

Antarmuka pengguna

Setelah menerapkan Spatializer validasi bahwa UI Anda memiliki perilaku berikut:

  • Saat headset berkemampuan audio spasial disambungkan, perangkat Bluetooth setelan untuk headset ini menampilkan tombol Audio Spasial:

    UI-audio-spasial

    Gambar 1. Setelan audio spasial.

  • Setelan tersedia saat headset terputus.

  • Status default untuk audio spasial setelah memasangkan headset adalah disetel ke enabled.

  • Status yang dipilih pengguna, baik diaktifkan maupun dinonaktifkan, akan mempertahankan ponsel memulai ulang atau melepaskan sambungan dan menyambungkan headset.

Perilaku fungsional

Format audio

Format audio berikut HARUS dirender oleh efek spatializer saat audio spasial diaktifkan dan perangkat rendering adalah berkabel atau Bluetooth {i>headset<i}:

  • AAC, channel 5.1
  • PCM mentah, saluran 5.1

Untuk memberikan pengalaman pengguna yang lebih baik, sebaiknya dukung hal-hal berikut format/konfigurasi channel:

  • Dolby Digital Plus
  • 5.1.2, 7.1, 7.1.2, 7.1.4 saluran

Pemutaran konten stereo

Konten stereo tidak boleh dirender melalui mesin efek spatializer, meskipun jika audio spasial diaktifkan. Jika implementasi memungkinkan konten stereo spasial, fitur ini harus menampilkan UI kustom yang memungkinkan pengguna mengaktifkan fitur ini menyalakan atau mematikannya dengan mudah. Saat audio spasial diaktifkan, Anda harus dapat transisi antara pemutaran konten multisaluran dengan spasial ke konten stereo nonspasialisasi tanpa memerlukan perubahan pada pengaturan pengguna atau penyambungan atau konfigurasi ulang headset. Transisi antara audio spasial dan konten stereo harus terjadi dengan gangguan audio minimal.

Transisi kasus penggunaan dan konkurensi

Tangani kasus penggunaan khusus sebagai berikut:

  • Notifikasi harus digabungkan dengan konten audio spasial dengan cara yang sama dibandingkan dengan konten audio nonspasial.
  • Nada dering harus diizinkan tercampur dengan konten audio spasial. Namun, secara default, mekanisme fokus audio menjeda konten audio spasial saat ada nada dering.
  • Saat menjawab atau melakukan panggilan telepon atau konferensi video, respons pemutaran audio harus dijeda. Pemutaran audio spasial harus dilanjutkan dengan pengaturan audio spasial saat panggilan berakhir. Konfigurasi ulang jalur audio beralih dari mode audio spasial ke mode percakapan harus dilakukan dengan cepat dan cukup lancar sehingga tidak mempengaruhi pengalaman panggilan.

Rendering melalui pembicara

Dukungan untuk spasialisasi audio melalui speaker, atau mode transaural, tidak tidak diperlukan.

Panduan penerapan pelacakan gerak kepala

Bagian ini berfokus pada audio spasial dinamis, yang memiliki headset tertentu lainnya.

Antarmuka pengguna

Setelah penerapan dan penyambungan headset yang mendukung audio spasial, validasi bahwa UI Anda memiliki perilaku berikut:

  • Di setelan perangkat Bluetooth, saat setelan Audio Spasial untuk headset diaktifkan, setelan Pelacakan gerak kepala akan muncul di bagian Audio Spasial:

    HT-UI

    Gambar 2. Setelan audio spasial dan pelacakan kepala.

  • Setelan pelacakan kepala TIDAK akan terlihat saat audio spasial dinonaktifkan.

  • Status default untuk pelacakan gerakan kepala setelah mula-mula memasangkan headset adalah disetel ke enabled.

  • Status yang dipilih pengguna, baik aktif maupun nonaktif, harus tetap ada melalui memulai ulang ponsel atau melepas sambungan dan menyambungkan headset.

Perilaku fungsional

Pelaporan pose kepala

  • Informasi pose kepala, dalam koordinat x, y, dan z, yang dikirim dari headset ke perangkat Android, harus merefleksikan gerakan kepala pengguna dengan cepat dan secara akurat.
  • Pelaporan pose kepala melalui link Bluetooth harus mengikuti protokol yang ditentukan melalui HID.
  • Headset harus mengirimkan informasi pelacakan gerakan kepala ke ponsel Android hanya jika pengguna mengaktifkan Pelacakan gerak kepala di setelan perangkat Bluetooth UI.

Performa

Latensi

Latensi pelacakan kepala didefinisikan sebagai waktu yang diperlukan dari gerakan kepala ditangkap oleh unit pengukuran inersia (IMU) ke transduser headphone deteksi perubahan suara yang disebabkan oleh gerakan ini. Latensi pelacakan kepala tidak boleh lebih dari 150 md.

Rasio pelaporan pose kepala

Saat pelacakan gerakan kepala aktif, headset harus melaporkan pose kepala pada secara berkala yang disarankan sekitar 20 milidetik. Untuk menghindari pemicuan yang tidak sesuai logika deteksi input di ponsel selama jitter transmisi dari Bluetooth, waktu maksimum antara dua update tidak boleh lebih dari 40 md.

Pengoptimalan daya

Untuk mengoptimalkan daya, sebaiknya penerapan menggunakan Pengalihan codec Bluetooth dan Mekanisme pemilihan mode latensi yang disediakan oleh HAL audio dan HAL audio Bluetooth antarmuka.

Implementasi AOSP dari framework audio dan stack Bluetooth sudah mendukung sinyal untuk mengontrol pengalihan codec. Jika penerapan OEM menggunakan HAL audio utama untuk audio Bluetooth, yang dikenal sebagai mode codec offload, OEM harus memastikan bahwa HAL audio menyampaikan sinyal tersebut di antara HAL audio dan tumpukan Bluetooth.

Beralih codec

Saat audio spasial dinamis dan pelacakan gerakan kepala aktif, gunakan codec latensi rendah, seperti Opus. Saat memutar audio nonspasial konten audio, gunakan codec berdaya rendah, seperti Advanced Audio Coding (AAC).

Ikuti aturan berikut selama beralih codec:

  • Hanya lacak aktivitas di streaming output HAL audio berikut:
    • Output spatializer khusus
    • Streaming khusus media, seperti deep buffer atau offload terkompresi pemutaran
  • Saat semua streaming yang relevan tidak ada aktivitas dan streaming spatializer dimulai, mulai streaming Bluetooth dengan isLowLatency yang disetel ke true untuk menentukan codec latensi rendah.

  • Jika semua streaming yang relevan tidak ada aktivitas dan streaming media dimulai, mulai Streaming Bluetooth dengan isLowLatency disetel ke false untuk menentukan codec daya rendah.

  • Jika streaming media aktif dan streaming spatializer dimulai, mulai ulang Streaming Bluetooth dengan isLowLatency disetel ke true.

Di sisi headset, headset harus mendukung latensi rendah dan daya rendah decoder dan mengimplementasikan protokol pemilihan codec standar.

Penyesuaian mode latensi

Penyesuaian mode latensi terjadi saat codec latensi rendah dipilih.

Berdasarkan apakah pelacakan gerak kepala aktif atau nonaktif, penyesuaian mode latensi menggunakan mekanisme yang tersedia untuk mengurangi atau meningkatkan latensi guna mencapai kompromi antara latensi, daya, dan kualitas audio. Ketika audio spasial dan pelacakan gerak kepala diaktifkan, mode latensi rendah akan dipilih. Kapan audio spasial diaktifkan dan pelacakan gerakan kepala dinonaktifkan, mode latensi gratis dipilih. Penyesuaian latensi memberikan penghematan daya yang signifikan dan peningkatan keandalan link audio Bluetooth saat hanya audio spasial statis yang diminta. Mekanisme penyesuaian latensi yang paling umum adalah pengurangan atau tambahan ukuran buffer jitter di headset Bluetooth.