Bluetooth Low Energy (LE) Audio

Artikel ini memberikan gambaran umum tentang Bluetooth LE Audio yang diperkenalkan dalam Windows 11 versi 22H2 (KB5026446).

Pengantar

Bluetooth LE Audio memungkinkan streaming unicast atau menyiarkan audio ke perangkat Bluetooth LE melalui transportasi isochronous. Pada versi 5.3 dari spesifikasi inti Bluetooth, tidak ada antarmuka pengontrol host (HCI) yang ditentukan standar untuk platform host untuk mengirim dan menerima data isochronous ke dan dari pengontrol Bluetooth. Dokumen ini mendefinisikan jalur audio khusus vendor Bluetooth Windows (VSAP) untuk memungkinkan platform menggunakan solusi khusus vendor untuk mengaktifkan streaming Bluetooth LE Audio. Antarmuka perangkat lunak VSAP menggunakan ekstensi kelas audio Windows (ACX) dan lebih banyak properti antarmuka yang ditentukan dalam dokumen ini.

Terminologi dan prasyarat

Selain istilah yang ditentukan dalam tabel ini, dokumen ini juga mereferensikan istilah yang ditentukan oleh ekstensi kelas audio Windows.

Istilah Definisi
Audio LE Kependek dari Bluetooth LE Audio
Audio klasik Streaming audio Bluetooth yang menggunakan profil hands-free (HFP) dan profil distribusi audio tingkat lanjut (A2DP)
Perangkat Audio Satu perangkat Bluetooth LE Audio jarak jauh atau sekumpulan perangkat Bluetooth LE Audio yang bersama-sama menyusun satu titik akhir audio dari perspektif Windows.
BAP Profil Audio Dasar menentukan bagaimana perangkat dapat mendistribusikan dan mengonsumsi audio menggunakan komunikasi Bluetooth Low Energy (LE).
TMAP Profil Audio Telepon dan Media menentukan konfigurasi yang dapat dioperasikan dari layanan dan profil audio tingkat bawah.
ASCS Layanan Kontrol Aliran Audio mendefinisikan cara standar bagi perangkat Audio LE Bluetooth untuk mengonfigurasi dan membuat aliran audio unicast.
PACS Layanan Kemampuan Audio yang Diterbitkan mendefinisikan cara standar bagi perangkat Bluetooth LE Audio untuk melaporkan kemampuan codec audio yang didukung.
CIS Transportasi Connected Isochronous Streams digunakan untuk mengirim dan menerima data audio unicast antara perangkat Bluetooth LE.
BIS Transportasi Streaming Isochronous Siaran digunakan untuk transfer data audio tanpa koneksi.
ACX Kependekan dari ekstensi kelas audio, yang merupakan model driver yang diperlukan oleh semua driver audio untuk mendukung Bluetooth LE Audio di Windows.
Sirkuit streaming Satu atau beberapa objek ACXCIRCUIT yang dibuat oleh Vendor Specific Audio Driver Stack untuk jalur streamingnya.
Sirkuit profil Objek ACXCIRCUIT yang dibuat oleh implementasi profil Bluetooth LE Audio di Windows. ACXCIRCUIT ini berfungsi sebagai sirkuit kepala seperti yang didefinisikan dalam spesifikasi ACX dan bukan sirkuit streaming.

Dokumen ini mengasumsikan keakraban dengan istilah yang ditentukan sebelumnya dan perintah HCI berikut yang ditentukan dalam spesifikasi Bluetooth Core 5.3:

  • HCI_Read_Local_Supported_Codecs (v2)
  • HCI_Read_Local_Supported_Codec_Capabilities
  • HCI_LE_Set_CIG_Parameters
  • HCI_LE_Create_CIS
  • HCI_Configure_Data_Path
  • HCI_LE_Setup_ISO_Data_Path
  • HCI_LE_Remove_ISO_Data_Path
  • HCI_LE_Remove_CIG

Bluetooth LE Audio VSAP memerlukan driver audio untuk menggunakan kerangka kerja ACX. Mengadopsi ACX untuk Bluetooth LE Audio memberikan beberapa keuntungan, seperti:

  • Mendukung model driver audio pilihan untuk Windows ke depannya.
  • Menggunakan dukungan asli ACX untuk solusi audio multi tumpukan tanpa memerlukan DDI khusus antar driver.
  • Tidak memerlukan driver audio IHV untuk menyampaikan permintaan dari sistem audio ke tumpukan Bluetooth. Sebagai gantinya, ACX dapat mengirim permintaan langsung ke tumpukan Bluetooth melalui sirkuit profil.

Arsitektur

Definisi

Komponen berikut terlibat dalam varian arsitektur VSAP yang berbeda.

Kerangka kerja WINDOWS ACX

Komponen ini memungkinkan dukungan untuk titik akhir audio multi-stack. Untuk Bluetooth LE Audio, komponen perangkat lunak yang menyusun titik akhir audio adalah tumpukan driver audio khusus vendor dan profil Windows Bluetooth LE Audio.

Tumpukan driver audio spesifik vendor

Komponen khusus vendor ini bertanggung jawab untuk mengirim dan menerima data Bluetooth LE Audio ke dan dari pengontrol Bluetooth melalui antarmuka audio yang ditentukan vendor. Ini harus terdiri dari minimal driver streaming ACX untuk mengelola data audio masuk dan keluar. Lebih banyak driver ACX dapat disertakan jika diperlukan bagian dari titik akhir audio ACX multi sirkuit. Komponen ini juga disebut sebagai Driver Streaming IHV ACX dalam dokumen ini.

Profil Windows Bluetooth LE Audio

Komponen ini berisi implementasi Profil Audio Dasar (BAP), Profil Kontrol Volume, dan Profil Kontrol Mikrofon. Ini bertanggung jawab untuk membuat kepala ACXCIRCUIT untuk setiap perangkat Bluetooth LE Audio atau set perangkat yang dipasangkan ke Windows, melaporkan format audio yang dilaporkan oleh perangkat jarak jauh dan pengontrol Bluetooth, dan mengelola status saluran dan grup isochronous.

Tumpukan inti Windows Bluetooth

Komponen ini menyediakan antarmuka untuk memungkinkan Profil Audio LE Bluetooth Windows untuk mengkueri kemampuan codec yang didukung dari pengontrol Bluetooth lokal dan mengelola status saluran dan grup isochronous.

Codec LC3

Subkomponen ini bertanggung jawab untuk menerjemahkan antara audio LC3 terkompresi dan audio PCM. Ini akan mendukung kemampuan pengodean dan pendekodean dan dapat diimplementasikan baik dalam perangkat lunak sebagai bagian dari tumpukan driver audio spesifik vendor (VSAP), atau dalam perangkat keras sebagai bagian dari DSP audio atau Pengontrol Bluetooth. Diagram ini menyebutkan LC3 berdasarkan nama karena ini adalah codec standar yang didukung oleh Bluetooth SIG. Namun, codec di masa mendatang dan codec khusus vendor yang didukung oleh Windows juga dapat dimasukkan ke dalam arsitektur dengan cara yang sama.

Varian Arsitektur

Arsitektur BLUETOOTH LE Audio VSAP mendukung varian yang berbeda untuk streaming.

  1. Streaming Audio LE Bluetooth Sideband tanpa offload audio
  2. Streaming Audio LE Sideband Bluetooth dengan offload audio
  3. Vendor khusus inband Bluetooth LE Audio streaming

Dalam diagram berikut, komponen berbayang disediakan oleh IHV dan komponen yang tidak dibayangkan disediakan oleh OS.

Arsitektur Audio LE Sideband Bluetooth tanpa offload audio

Arsitektur sideband menggunakan antarmuka audio khusus vendor untuk memungkinkan tumpukan driver audio mengirim dan menerima data audio ke pengontrol Bluetooth. Jalur data ini terpisah dari jalur data HCI yang digunakan untuk data Bluetooth lainnya, seperti memberi sinyal pesan antara klien unicast dan server unicast jarak jauh. Diagram berikut memodelkan arsitektur sideband tempat codec LC3 dihosting di pengontrol Bluetooth. Ini juga valid untuk memiliki codec LC3 yang dihosting sebagai bagian dari Vendor Specific Audio Driver Stack untuk pengodean dan decoding perangkat lunak. Dalam hal ini, audio yang dikirim ke pengontrol Bluetooth akan diformat sebagai bingkai audio LC3 alih-alih audio PCM.

Diagram berikut menunjukkan arsitektur Bluetooth LE Audio sideband dengan codec LC3 di pengontrol Bluetooth.

Diagram arsitektur SIDEBAND Bluetooth LE Audio dengan codec LC3 yang terletak di pengontrol Bluetooth.

Diagram berikut menunjukkan arsitektur Le Audio Bluetooth sideband dengan codec LC3 di tumpukan driver audio.

Diagram arsitektur SIDEBAND Bluetooth LE Audio dengan codec LC3 yang terletak di tumpukan driver audio.

Arsitektur Audio LE Sideband Bluetooth dengan offload audio

Arsitektur sideband dengan offload audio mencakup komponen perangkat keras DSP audio untuk memberikan solusi streaming Bluetooth LE Audio dengan manfaat penghematan daya. Diagram berikut menunjukkan kemungkinan arsitektur dengan codec LC3 di pengontrol Bluetooth dan codec di DSP audio.

Diagram berikut menunjukkan Sideband Bluetooth LE Audio dengan arsitektur offload audio dengan codec LC3 di pengontrol Bluetooth.

Diagram Sideband Bluetooth LE Audio dengan arsitektur offload audio, menampilkan codec LC3 di pengontrol Bluetooth.

Diagram berikut menunjukkan Audio LE Bluetooth sideband dengan arsitektur offload audio dengan codec LC3 di DSP audio.

Diagram Sideband Bluetooth LE Audio dengan arsitektur offload audio, menampilkan codec LC3 di DSP audio.

Vendor khusus arsitektur Inband Bluetooth LE Audio

Arsitektur inband VSAP memungkinkan alur kustom untuk mengirim dan menerima data Bluetooth LE Audio dari tumpukan driver audio khusus vendor ke HCI pengontrol Bluetooth. Arsitektur ini mencakup komponen baru, "Komponen Penggabungan ISO IHV." Komponen ini bertanggung jawab untuk mengelola kontrol alur untuk data ISO. Ini juga harus berbagi kontrol alur perintah HCI dengan Windows Bluetooth Core Stack jika perlu mengirim perintah HCI.

Diagram berikut menunjukkan arsitektur KHUSUS vendor inband Bluetooth LE Audio.

Diagram arsitektur AUDIO LE Bluetooth inband khusus vendor.

Desain terperinci

Persyaratan format audio

Durasi bingkai audio

Profil Audio LE Bluetooth memungkinkan implementasi untuk mendukung streaming audio dengan durasi bingkai audio 7,5 milidetik atau 10 milidetik. Windows memerlukan codec yang disediakan oleh IHV untuk mendukung kedua durasi bingkai untuk memastikan interoperabilitas dengan perangkat aksesori Bluetooth LE Audio dan koeksistensi kualitas dengan perangkat Bluetooth LE lainnya yang terhubung ke sistem.

Definisi mode pemrosesan sinyal

Bluetooth LE Audio mendukung berbagai format streaming untuk mendukung skenario pengguna yang berbeda. Spesifikasi BAP dan TMAP menentukan format wajib yang didukung untuk sertifikasi. Windows menerapkan mode pemrosesan sinyal audio untuk menghubungkan format yang akan digunakan dengan skenario yang dilakukan oleh sistem. Driver audio yang mendukung Bluetooth LE Audio akan menunjukkan dukungan untuk mode dan format pemrosesan sinyal dalam tabel berikut. Selain itu, Bluetooth LE Audio tidak mendukung mode pemrosesan sinyal mentah, sehingga driver audio tidak boleh mengiklankan format yang didukung untuk mode ini.

Merender mode pemrosesan sinyal audio streaming

Audio LE Bluetooth mengharuskan format audio render dinyatakan untuk mode pemrosesan sinyal berikut:

  • Default (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
    • Mode ini digunakan untuk skenario render searah, seperti pemutaran musik, pemberitahuan, dan audio permainan video.
  • Komunikasi (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
    • Mode ini digunakan untuk skenario dua arah, seperti panggilan suara.

Tabel berikut adalah daftar format untuk setiap kasus penggunaan dan mode pemrosesan sinyal. Format audio diurutkan dari yang paling disukai daripada yang paling tidak disukai.

Suara sistem, pemutaran musik, dan audio permainan video saat terhubung ke perangkat stereo atau sekumpulan perangkat terkoordinasi

Mode pemrosesan sinyal: Default

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Laju Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP)
48 kHz 2 16 7,5 mdtk 96 kbps 48_3
48 kHz 2 16 7,5 mdtk 80 kbps 48_1
48 kHz 2 16 10 md 96 kbps 48_4
48 kHz 2 16 10 md 80 kbps 48_2
24 kHz 2 16 7,5 mdtk 48 kbps 24_1
24 kHz 2 16 10 md 48 kbps 24_2
Suara sistem, pemutaran musik, dan audio video game saat terhubung ke satu anggota set terkoordinasi (earbud tunggal atau alat bantu dengar)

Mode pemrosesan sinyal: Default

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Laju Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP)
48 kHz 1 16 7,5 mdtk 96 kbps 48_3
48 kHz 1 16 7,5 mdtk 80 kbps 48_1
48 kHz 1 16 10 md 96 kbps 48_4
48 kHz 1 16 10 md 80 kbps 48_2
24 kHz 1 16 7,5 mdtk 48 kbps 24_1
24 kHz 1 16 10 md 48 kbps 24_2
16 kHz 1 16 7,5 mdtk 32 kbps 16_1
16 kHz 1 16 10 md 32 kbps 16_2
Merender perekam suara, panggilan VOIP, atau audio game video dengan obrolan suara

Mode pemrosesan sinyal: Komunikasi

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Laju Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP)
32 kHz 1 16 7,5 mdtk 64 kbps 32_1
32 kHz 1 16 10 md 64 kbps 32_2
24 kHz 1 16 7,5 mdtk 48 kbps 24_1
24 kHz 1 16 10 md 48 kbps 24_2
16 kHz 1 16 7,5 mdtk 32 kbps 16_1
16 kHz 1 16 10 md 32 kbps 16_2
Mengambil mode pemrosesan sinyal audio aliran

Audio LE Bluetooth mengharuskan pengambilan format audio dideklarasikan untuk mode pemrosesan sinyal Default (AUDIO_SIGNALPROCESSINGMODE_DEFAULT). Daftar format pengambilan yang didukung ada dalam tabel berikut.

Format audio diurutkan dari yang paling disukai daripada yang paling tidak disukai.

Mengambil perekam suara, panggilan VOIP, atau audio video game dengan obrolan suara

Mode pemrosesan sinyal: Default

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Laju Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP)
32 kHz 1 16 7,5 mdtk 64 kbps 32_1
32 kHz 1 16 10 md 64 kbps 32_2
24 kHz 1 16 7,5 mdtk 48 kbps 24_1
24 kHz 1 16 10 md 48 kbps 24_2
16 kHz 1 16 7,5 mdtk 32 kbps 16_1
16 kHz 1 16 10 md 32 kbps 16_2

Konfigurasi aliran dan topologi yang ditentukan

Konfigurasi khusus render
Konfigurasi profil audio dasar 1

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 1.

PC terhubung ke satu perangkat audio yang mendukung aliran mono. Perangkat tunggal mungkin merupakan perangkat mandiri atau satu anggota yang terhubung dari satu set terkoordinasi.

Contoh Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Render:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan BAP QoS: Keandalan tinggi
Panggilan suara tanpa mikrofon di perangkat audio Render:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Pemutaran video game Render:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Konfigurasi profil audio dasar 4

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 4.

PC terhubung ke satu perangkat audio yang mendukung aliran stereo. Perangkat audio mampu memproses dua saluran audio pada satu CIS.

Contoh Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Render: Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Alokasi Saluran Audio Dengan Keandalan Tinggi: Kiri depan dan kanan depan
Pemutaran video game Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Alokasi Saluran Audio: Kiri depan dan kanan depan
Konfigurasi profil audio dasar 6(i)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 6 I.

PC terhubung ke satu perangkat audio yang mendukung aliran stereo. Perangkat audio hanya mampu memproses satu saluran audio di masing-masing dari dua CIS

Contoh Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Keandalan tinggi
Panggilan suara tanpa mikrofon di perangkat audio Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Alokasi Saluran Audio: Kiri depan atau kanan depan
Pemutaran video game Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Alokasi Saluran Audio: Kiri depan dan kanan depan
Konfigurasi profil audio dasar 6(ii)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 6 II.

PC terhubung ke sekumpulan perangkat audio terkoordinasi. Set ini mampu memproses dua saluran audio dengan setiap anggota memproses satu saluran.

Contoh Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Keandalan tinggi
Panggilan suara tanpa mikrofon di salah satu perangkat Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Pemutaran video game Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Konfigurasi dua arah

Konfigurasi dua arah digunakan saat profil Bluetooth LE Audio mendeteksi bahwa aplikasi berniat untuk membuat tangkapan dan merender aliran ke perangkat jarak jauh atau sekumpulan perangkat. Karena aplikasi mengontrol pengambilan dan render aliran secara terpisah, driver audio IHV dan pengontrol Bluetooth akan memungkinkan audio mengalir melalui satu arah CIS dua arah setelah disediakan menggunakan perintah HCI Mengonfigurasi Jalur Data dan Jalur Data ISO Penyiapan LE.

Konfigurasi profil audio dasar 3

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 3.

PC terhubung ke satu perangkat audio dengan aliran mono dua arah yang dibuat pada satu CIS.

Kasus penggunaan 6 Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Pemutaran video game dengan obrolan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Konfigurasi profil audio dasar 8(i)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 8 I.

PC terhubung ke satu perangkat audio yang mendukung aliran render stereo dan aliran pengambilan mono. Perangkat ini mampu memproses satu saluran audio pada satu CIS untuk arah tertentu.

Kasus penggunaan 6 Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Pemutaran video game dengan obrolan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 2
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Konfigurasi profil audio dasar 8(ii)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 8 II.

PC terhubung ke sekumpulan perangkat audio terkoordinasi. Setiap anggota set menerima satu saluran audio render. Satu anggota set memiliki aliran pengambilan yang ditetapkan. Anggota set dengan aliran pengambilan adalah anggota set pertama yang terhubung ke PC yang juga mendukung aliran pengambilan.

Kasus penggunaan 6 Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Pemutaran video game dengan obrolan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 2
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Konfigurasi khusus pengambilan
Konfigurasi profil audio dasar 2

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 2.

PC terhubung ke satu perangkat audio yang mendukung aliran pengambilan mono.

Kasus penggunaan 6 Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara tanpa speaker di perangkat Render: Tidak ada
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Konfigurasi profil audio dasar 9(i)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 9 I.

PC terhubung ke satu perangkat audio yang mendukung pengiriman data audio stereo. Perangkat ini mampu mengodekan satu saluran audio pada satu CIS.

Kasus penggunaan 6 Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pengambilan mikrofon multi saluran Render: Tidak ada
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah
Konfigurasi profil audio dasar 9(ii)

PC terhubung ke satu perangkat audio yang mendukung aliran pengambilan mono.

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram memperlihatkan konfigurasi profil audio dasar 9(ii) dengan PC yang terhubung ke satu perangkat audio.

PC terhubung ke satu set perangkat audio. Setiap anggota set mengirimkan satu saluran audio ke PC.

Kasus penggunaan 6 Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pengambilan mikrofon multi saluran Render: Tidak ada
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi Rendah

Jika perangkat jarak jauh atau set perangkat mendukung audio dua arah, konfigurasi untuk aliran pengambilan saja sama dengan konfigurasi dua arah. Ini memungkinkan transisi dari skenario hanya tangkap ke skenario dua arah tanpa perlu membuat ulang aliran.

Struktur data

Properti antarmuka Bluetooth LE Audio yang ditentukan Microsoft

Properti pembuatan aliran

Properti berikut dibagikan antara tumpukan driver audio khusus vendor dan Profil Audio LE Bluetooth melalui ACXOBJECTBAGDDIs untuk menginformasikan keputusan tentang pembuatan dan konfigurasi titik akhir aliran, seperti yang ditunjukkan dalam skenario Pembuatan Stream .

BluetoothLEAudio_CodecCapabilities

Properti ini diatur oleh driver audio untuk menunjukkan dukungan untuk kemampuan streaming audio yang didukung di driver audio atau DSP audio. Nilai properti diatur menggunakan DDI AcxObjectBagAddBlob dan format nilainya sama dengan catatan PAC seperti yang ditentukan dalam spesifikasi PACS.

Profil Windows Bluetooth LE Audio membaca properti untuk menentukan kemungkinan konfigurasi codec dan komposisi streaming yang akan digunakan.

Bidang Oktet
Jumlah Kapabilitas 0
ID Codec[i] 1-6
Panjang Kapabilitas Khusus Codec[i] 7
Kemampuan Khusus Codec 8... n
Panjang Metadata (m) n + 1
Metadata n+2... M

Nilai bidang ditentukan dalam tabel 3.2 dan 3.4 dari spesifikasi PACS.

Bluetooth_DatapathID

Properti ini diatur oleh driver audio untuk menunjukkan ID jalur data yang digunakan sebagai parameter untuk perintah HCI_LE_Setup_ISO_Data_Path dan HCI_Configure_Data_Path. Nilai properti diatur menggunakan AcxObjectBagAddUI8 DDI.

Profil Audio LE Bluetooth membaca dan menggunakan properti ini adalah sebagai parameter dalam perintah HCI_Configure_Data_Path dan HCI_LE_Setup_ISO_Data_Path. ID ini diterapkan untuk semua aliran isochronous yang dibuat untuk ACXSTREAM yang terkait dengan tas objek.

Bidang Oktet
ID jalur data 0

Jika properti tidak diatur oleh driver audio, maka OS menggunakan nilai 1 sebagai parameter untuk perintah HCI.

Bluetooth_DatapathConfiguration

Properti ini diatur oleh driver audio untuk menyediakan konfigurasi khusus vendor ke pengontrol Bluetooth melalui perintah HCI_Configure_Data_Path. Ini tidak boleh lebih besar dari 255 byte, yang merupakan payload terbesar yang diterima pengontrol Bluetooth untuk perintah HCI. Nilai properti diatur menggunakan AcxObjectBagAddBlob DDI. Konfigurasi ini diterapkan untuk semua ID jalur data yang ditetapkan oleh driver audio.

BluetoothLEAudio_CodecConfiguration

Properti ini harus diatur oleh profil Audio LE Bluetooth menggunakan DDI AcxObjectBagAddBlob setelah konfigurasi codec dikonfigurasi dengan perangkat audio. Struktur nilainya adalah:

Bidang Oktet
Jumlah Konfigurasi 0
Format Pengkodian[i] 3
ID Perusahaan[i] 1-2
ID Codec Spesifik Vendor[i] 3-4
Panjang Konfigurasi Khusus Codec[i] 5
Konfigurasi Khusus Codec[i] 6... n

Nilai bidang ditentukan dalam tabel 4.3 dari Spesifikasi Layanan Kontrol Aliran Audio Bluetooth.

Tumpukan driver audio khusus vendor harus membaca properti ini jika codec LC3 berada di driver streaming ACX atau DSP audio.

Antarmuka

ID pengikatan templat titik akhir audio

Digunakan oleh pabrik sirkuit ACX driver audio untuk mengetahui kapan sirkuit ACX untuk perangkat Bluetooth yang dipasangkan dibuat.

ID komponen berikut digunakan untuk membuat sirkuit Bluetooth LE Audio:

// {5C52FDB5-722A-4AB7-A342-70163B7E9B5C}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_RENDER_COMPONENT_ID,
0x5c52fdb5, 0x722a, 0x4ab7, 0xa3, 0x42, 0x70, 0x16, 0x3b, 0x7e, 0x9b, 0x5c);

// {1DFF2EE3-AE89-441C-BDE3-24F885C55DF8}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_CAPTURE_COMPONENT_ID,
0x1dff2ee3, 0xae89, 0x441c, 0xbd, 0xe3, 0x24, 0xf8, 0x85, 0xc5, 0x5d, 0xf8);

Antarmuka dukungan Bluetooth LE Audio

Digunakan oleh tumpukan driver audio untuk menunjukkan bahwa itu tersedia untuk streaming Bluetooth LE Audio. Watch tingkat layanan Windows Bluetooth Audio untuk antarmuka ini dan tunggu hingga diterbitkan sebelum mengaktifkan dukungan Bluetooth LE Audio.

ID antarmuka berikut digunakan untuk menerbitkan antarmuka dukungan Bluetooth LE Audio:

// {BA02FA1B-0FD0-4A0F-A748-4FAE2E2D2F67}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_SUPPORT_INTERFACE, 
0xba02fa1b, 0x0fd0, 0x4a0f, 0xa7, 0x48, 0x4f, 0xae, 0x2e, 0x2d, 0x2f, 0x67);

Urutan

Inisialisasi driver audio

Ketika driver Streaming IHV ACX memuat dan menentukan bahwa ia mendukung streaming Bluetooth LE Audio, itu akan menunjukkan dukungan untuk teknologi dengan membuat objek ACXFACTORYCIRCUIT dan mendaftar untuk pengikatan templat Bluetooth dengan ACX menggunakan ID yang ditentukan dalam ID Pengikatan Templat Titik Akhir Audio.

Diagram alur yang mengilustrasikan urutan inisialisasi driver Bluetooth LE Audio.

Pembuatan titik akhir

  1. Saat perangkat LE Audio dipasangkan dengan sistem, Profil Audio LE Bluetooth:
    1. Membaca kemampuan audio yang diterbitkan dari perangkat jarak jauh.
    2. Menemukan kemampuan yang didukung pengontrol dengan mengirim perintah HCI_Read_Local_Support_Codecs [v2] dan HCI_Read_Local_Supported_Codec_Capabilities.
    3. Membuat ACXCIRCUIT dengan format yang didukung yang ditetapkan berdasarkan kemampuan codec yang didukung oleh pengontrol Bluetooth dan perangkat audio jarak jauh. Jika pengontrol tidak mendukung codec apa pun karena dukungan codec ada di DSP audio atau driver audio, maka format yang didukung diatur ke format yang didukung oleh perangkat audio jarak jauh.
  2. Setelah ACXCIRCUIT dibuat, ACX meminta pabrik sirkuit ACX driver streaming IHV ACX untuk membuat ACXCIRCUIT untuk pemrosesan streaming.
  3. Ketika permintaan untuk membuat sirkuit diterima, driver streaming IHV ACX:
    1. Membuat objek ACXCIRCUIT, ACXPIN, ACXOBJECTBAG, dan ACXSTREAMBRIDGE .
    2. Jika kodek khusus LC3 atau vendor dihosting di driver audio atau DSP, driver streaming IHV ACX mengatur properti BluetoothLEAudio_CodecCapabilities pada ACXOBJECTBAG.
    3. Driver streaming IHV ACX dapat mengatur Bluetooth_DatapathID atau Bluetooth_DatapathConfiguration pada ACXOBJECTBAG jika diketahui saat ini.
  4. Setelah kedua sirkuit dibuat, ACX memanggil panggilan balik EvtAcxPinConnected pada pin penghubung driver IHV ACX.
  5. Ketika panggilan balik EvtAcxPinConnected dipanggil, driver streaming IHV ACX:
    1. Mengambil pin jembatan sirkuit profil dengan AcxTarget... API untuk mengambil format yang didukung oleh sirkuit profil.
    2. Melakukan iterasi melalui daftar ACXDATAFORMATyang ditetapkan oleh sirkuit profil. Jika codec audio Bluetooth dihosting di driver audio atau DSP audio, maka driver audio IHV memperbarui ACXDATAFORMAT-nyadengan format yang didukung oleh codec dan sirkuit profil. Jika tidak, semua format disalin ke pin host driver streaming IHV ACX.
    3. Mengatur daftar format yang diperbarui pada pin jembatan jika mesin audio dibuat untuk streaming offload.
  6. Setelah format diperbarui, ACX mengaktifkan kedua antarmuka, dan titik akhir audio dibuat.

Diagram alur yang menggambarkan proses pembuatan titik akhir Bluetooth LE Audio.

Pembuatan aliran

  1. Ketika aplikasi meminta untuk membuat aliran audio, ACX memanggil panggilan balik EvtCircuitCreateStream terdaftar untuk setiap sirkuit, dimulai dengan driver streaming IHV ACX.
  2. Ketika panggilan balik EvtCircuitCreateStream dipanggil, driver streaming IHV ACX:
    1. Mengatur atau memperbarui properti Bluetooth_DatapathId dan Bluetooth_DataPathConfiguration pada ACXOBJECTBAG yang dilampirkan ke ACXSTREAMBRIDGE.
    2. Membuat ACXSTREAM dengan panggilan balik yang ditetapkan untuk transisi status aliran dan pemrosesan aliran RT
    3. Membuat elemen mesin audio pada aliran jika alur audio mendukung streaming offload.
    4. Menambahkan ACXSTREAM ke jembatan alirannya. Ini memanggil panggilan balik EvtCircuitCreateStream profil Bluetooth LE Audio.
  3. Ketika panggilan balik EvtAcxCircuitCreateStream dipanggil, profil Audio LE Bluetooth:
    1. Menyimpan properti secara lokal dari ACXOBJECTBAG yang ditetapkan oleh driver streaming IHV ACX untuk panggilan balik transisi streaming di masa mendatang.
    2. Jika titik akhir audio adalah untuk streaming unicast profil Bluetooth LE Audio:
      1. Melakukan Operasi Kodek Konfigurasi seperti yang didefinisikan dalam spesifikasi BAP. Parameter untuk operasi berasal dari ACXDATAFORMAT yang ditentukan dalam panggilan balik EvtAcxCircuitCreateStream dan parameter aliran lainnya di ACXOBJECTBAG atau kemampuan codec yang didukung oleh Pengontrol Bluetooth.
      2. Mengatur properti BluetoothLEAudio_CodecConfiguration pada ACXOBJECTBAG dengan nilai yang digunakan untuk mengonfigurasi perangkat audio jarak jauh.
  4. Jika driver streaming IHV ACX perlu memperbarui ID jalur data atau konfigurasi jalur data berdasarkan nilai tas objek yang ditetapkan oleh profil, maka itu dapat memanggil operasi set KSPROPERTY untuk memperbarui nilai yang disimpan oleh sirkuit profil.
    1. Membuat ACXSTREAM dengan panggilan balik yang diatur untuk transisi status aliran.

Diagram alur memperlihatkan proses pembuatan aliran Bluetooth LE Audio.

Transisi status aliran

ACX memutuskan urutan sirkuit transisi status aliran berdasarkan aliran audio dan apakah status beralih ke status yang lebih aktif atau kurang aktif.

  • Untuk Streaming render dari status kurang aktif ke status yang lebih aktif, sirkuit profil menerima peristiwa terlebih dahulu, diikuti oleh sirkuit streaming.
  • Untuk Streaming render dari status yang lebih aktif ke status kurang aktif, sirkuit streaming menerima peristiwa terlebih dahulu, diikuti oleh sirkuit profil. 
  • Untuk aliran Capture dari status kurang aktif ke status yang lebih aktif, sirkuit streaming menerima peristiwa terlebih dahulu, diikuti oleh sirkuit profil. 
  • Untuk aliran Capture dari status yang lebih aktif ke status kurang aktif, sirkuit profil dengan menerima peristiwa terlebih dahulu, diikuti oleh sirkuit streaming.

Menyiapkan aliran

Ketika panggilan balik EvtAcxStreamPrepareHardware dipanggil, profil Audio LE Bluetooth:

  1. Mengalokasikan sumber daya untuk aliran unicast dengan:
    1. Mengonfigurasi CIG dengan perintah HCI_LE_Set_CIG_Parameters.
    2. Mengirim operasi QoS konfigurasi ASCS untuk menyinkronkan pengaturan dengan perangkat jarak jauh.

Diagram alur yang mengilustrasikan persiapan aliran Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamPrepareHardware dipanggil, driver streaming IHV ACX mengalokasikan sumber daya streaming yang diperlukan dan menginisialisasi alur audio untuk berada dalam status diperoleh.

Diagram alur yang menggambarkan persiapan streaming Bluetooth LE Audio untuk sirkuit streaming.

Mulai streaming

Ketika panggilan balik EvtAcxStreamRun dipanggil, profil Audio LE Bluetooth:

  1. Menerapkan pengaturan konfigurasi jalur data apa pun yang diatur oleh driver streaming ACX dalam prosedur pembuatan aliran menggunakan perintah HCI_Configure_Data_Path.
  2. Memulai prosedur mulai aliran dengan:
    1. Melakukan aliran unicast BAP Aktifkan prosedur untuk aliran unicast:
      1. Mengirim operasi Aktifkan ke titik akhir jarak jauh.
      2. Membuat CIS jika belum dibuat menggunakan perintah HCI_LE_Create_CIS.
  3. Jika jalur data belum dikonfigurasi, profil Audio LE Bluetooth:
    1. Menetapkan jalur data ISO menggunakan perintah HCI_LE_Setup_ISO_Data_Path
      1. Jika driver streaming IHV ACX mengatur properti BluetoothLEAudio_CodecCapabilities , nilai bidang Codec_ID di HCI_LE_Setup_ISO_Data_Path harus diatur ke transparan (0x3) seperti yang didefinisikan dalam Bluetooth Assigned Numbers. Jika tidak, nilainya harus sama dengan ID Codec yang digunakan dalam operasi codec konfigurasi dalam prosedur pembuatan aliran.
  4. Jika aliran audio adalah aliran pengambilan unicast, profil Audio LE Bluetooth melakukan operasi siap mulai penerima BAP.

Diagram alur memperlihatkan proses memulai aliran Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamRun dipanggil, driver streaming IHV ACX mulai memproses data audio masuk dari sistem audio Windows (render) atau pengontrol Bluetooth (ambil).

Diagram alur yang mengilustrasikan proses memulai aliran Bluetooth LE Audio untuk sirkuit streaming.

Menjeda aliran

Ketika panggilan balik EvtAcxStreamPause dipanggil, profil Audio LE Bluetooth:

  1. Melakukan prosedur nonaktifkan aliran unicast BAP.
  2. Menghapus jalur data ISO menggunakan perintah HCI_LE_Remove_ISO_Data_Path.
  3. Melakukan prosedur siap berhenti penerima ASCS jika aliran audio adalah aliran pengambilan unicast.

Diagram alur yang menggambarkan proses jeda aliran Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamPause dipanggil, driver streaming IHV ACX menjeda alur pemrosesan audionya.

Diagram alur memperlihatkan proses jeda aliran Audio LE Bluetooth untuk sirkuit streaming.

Aliran rilis

Ketika panggilan balik EvtAcxStreamReleaseHardware dipanggil, Profil Audio LE Bluetooth melakukan prosedur rilis aliran unicast BAP dengan:

  1. Mengirim operasi Rilis ASCS ke perangkat Bluetooth LE Audio jarak jauh
  2. Memutuskan sambungan CIS jika tidak digunakan oleh aliran aktif lain.
  3. Menghapus CIG jika semua CIS terputus.

Diagram alur yang mengilustrasikan proses pelepasan aliran Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamReleaseHardware dipanggil, driver streaming IHV ACX merilis sumber daya alur audionya.

Diagram alur yang menggambarkan proses merilis aliran Bluetooth LE Audio untuk sirkuit streaming.

Pemutusan titik akhir

Profil Windows Bluetooth LE Audio memperbarui status koneksi titik akhir jika perangkat unicast jarak jauh tidak memiliki koneksi LE-ACL ke PC atau melaporkan melalui konteks audio PACS yang tersedia yang tidak tersedia untuk streaming. Ketika titik akhir terputus, layanan audio Windows membatalkan aliran aktif apa pun ke titik akhir. Ini menghasilkan jeda aliran dan urutan rilis yang akan terjadi.

Penghapusan titik akhir

Titik akhir Bluetooth LE Audio dihapus dari sistem saat sirkuit profil atau sirkuit streaming dihancurkan. Sirkuit profil dapat dihapus ketika pemasangan perangkat unicast jarak jauh dihapus dari Windows atau radio Bluetooth dinonaktifkan.

  1. Ketika profil Windows Bluetooth LE Audio menghapus sirkuitnya, ACX menonaktifkan antarmuka titik akhirnya untuk memberi sinyal ke layanan audio Windows bahwa titik akhir harus dihapus.
  2. Ketika antarmuka dinonaktifkan, layanan audio Windows membatalkan aliran aktif apa pun ke titik akhir Bluetooth LE Audio, operasi ini menghasilkan jeda aliran dan merilis panggilan balik untuk dipanggil di sirkuit streaming.
  3. Untuk menyelesaikan penghapusan titik akhir, ACX membatalkan sirkuit driver streaming IHV ACX, yang mengakibatkan WDF memanggil panggilan balik pembersihan sirkuit.
  4. Ketika panggilan balik pembersihannya dipanggil, driver streaming IHV ACX merilis sirkuitnya.

Diagram alur memperlihatkan proses penghapusan titik akhir Bluetooth LE Audio.

Volume dan bisu

Sirkuit streaming IHV ACX hanya boleh menyertakan elemen volume dan bisukan jika driver streaming memerlukan mesin audio. Saat menggunakan mesin audio, bendera konfigurasi harus diatur seperti:

ACX_AUDIOENGINE_CONFIG audioEngineCfg;
ACX_AUDIOENGINE_CONFIG_INIT(&audioEngineCfg);
…

audioEngineCfg.Flags |= AcxAudioEngineConfigVolumeSecondary; // Use this control only if endpoint doesn't have one.

audioEngineCfg.MuteElement = muteElement;

audioEngineCfg.Flags |= AcxAudioEngineConfigMuteSecondary; // Use this control only if endpoint doesn't have one.

audioEngineCfg.PeakMeterElement = peakmeterElement;
    
audioEngineCfg.Flags |= AcxAudioEngineConfigPeakMeterSecondary; // Use this control only if endpoint doesn't have one.

Ini diperlukan untuk memungkinkan titik akhir Bluetooth LE Audio menggunakan volume yang ditentukan Bluetooth SIG dan profil kontrol mikrofon untuk volume dan membisukan perubahan untuk titik akhir audio unicast.

Jika perangkat Bluetooth LE Audio jarak jauh tidak mendukung layanan kontrol volume atau mikrofon, atau titik akhir dibuat untuk audio siaran, maka elemen volume dan bisu di mesin audio akan berfungsi sebagai fallback untuk menangani permintaan perubahan dari sistem audio. Sistem audio Windows menangani perubahan pada volume dan bisukan. Jika tidak ada mesin audio dan perangkat jarak jauh tidak mendukung volume, atau layanan mikrofon atau titik akhir audio adalah untuk audio siaran.

Bluetooth LE dan koeksistensi audio klasik

Windows harus memastikan bahwa hanya audio klasik atau audio LE yang aktif untuk perangkat audio Bluetooth yang dipasangkan yang mendukung kedua teknologi tersebut. Jika audio LE aktif, maka DDI sideband untuk A2DP dan HFP untuk perangkat jarak jauh dinonaktifkan dan sirkuit profil dibuat untuk titik akhir audio LE. Jika audio klasik aktif, DDI sideband untuk A2DP dan HFP untuk perangkat jarak jauh diaktifkan dan sirkuit profil tidak dibuat untuk titik akhir audio LE.

Manajemen daya

Bluetooth LE Audio tidak memiliki persyaratan atau alur manajemen daya di luar apa yang sudah ditentukan oleh WDF.