Bluetooth Low Energy (LE) Audio

Cet article fournit une vue d’ensemble de Bluetooth LE Audio introduit dans Windows 11 version 22H2 (KB5026446).

Introduction

Bluetooth LE Audio permet la diffusion en continu d'audio unicast ou broadcast vers les appareils Bluetooth LE via un transport isochrone. Depuis la version 5.3 de la spécification de base Bluetooth, il n'existe pas d'interface de contrôleur hôte (HCI) standard pour les plates-formes hôtes permettant d'envoyer et de recevoir des données isochrones vers et depuis le contrôleur Bluetooth. Ce document définit le chemin d’accès audio spécifique du fournisseur Bluetooth Windows (VSAP) pour permettre aux plateformes d’utiliser des solutions spécifiques au fournisseur pour activer le streaming audio Bluetooth LE. L’interface logicielle VSAP utilise des extensions de classe audio Windows (ACX) et d’autres propriétés d’interface définies dans ce document.

Terminologie et conditions préalables

Outre les termes définis dans ce tableau, ce document fait également référence aux termes définis par les extensions de classe audio Windows.

Terme Définition
Audio LE Short for Bluetooth LE Audio
Audio classique Streaming audio Bluetooth qui utilise le profil mains libres (HFP) et le profil de distribution audio avancé (A2DP)
Périphérique audio Un seul appareil Bluetooth LE Audio distant ou un ensemble d’appareils Bluetooth LE Audio qui composent ensemble un point de terminaison audio unique du point de vue de Windows.
BAP Le profil audio de base définit la façon dont les appareils peuvent distribuer et consommer de l’audio à l’aide des communications Bluetooth Low Energy (LE).
TMAP Le profil audio de téléphonie et de média spécifie des configurations interopérables des services et profils audio de niveau inférieur.
ASCS Le service de contrôle de flux audio définit un moyen standard pour les appareils Bluetooth LE Audio de configurer et d’établir des flux audio monodiffusion.
PACS Le service fonctionnalités audio publiées définit un moyen standard pour les appareils Bluetooth LE Audio de signaler ses fonctionnalités de codec audio prises en charge.
CIS Le transport de flux isochronous connectés est utilisé pour envoyer et recevoir des données audio monodiffusion entre les appareils Bluetooth LE.
BIS Le transport stream isochronous de diffusion est utilisé pour les transferts de données audio sans connexion.
ACX Bref pour les extensions de classe audio, qui est le modèle de pilote requis par tous les pilotes audio pour prendre en charge Bluetooth LE Audio sur Windows.
Circuits de diffusion en continu Un ou plusieurs objets ACXCIRCUIT créés par la pile de pilotes audio spécifique du fournisseur pour son chemin de diffusion en continu.
Circuit de profil Objet ACXCIRCUIT créé par l’implémentation de profil Audio Bluetooth LE sur Windows. Ce circuit ACXCIRCUIT sert de circuit principal tel que défini dans la spécification ACX et n’est pas un circuit de diffusion en continu.

Ce document suppose une connaissance des termes définis précédemment et des commandes HCI suivantes définies dans la spécification 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 nécessite que les pilotes audio utilisent l’infrastructure ACX. L’adoption d’ACX pour Bluetooth LE Audio offre plusieurs avantages, tels que :

  • Prend en charge le modèle de pilote audio préféré pour Windows à l’avenir.
  • Utilise la prise en charge native d’ACX pour les solutions audio multi stack sans nécessiter de DDI dédié entre les pilotes.
  • Ne nécessite pas de pilotes audio IHV pour relayer les requêtes du système audio vers la pile Bluetooth. Au lieu de cela, ACX peut envoyer des requêtes directement à la pile Bluetooth via le circuit de profil.

Architecture

Définitions

Les composants suivants sont impliqués dans les différentes variantes d’architecture VSAP.

Infrastructure ACX Windows

Ce composant permet la prise en charge d’un point de terminaison audio multi stack. Pour Bluetooth LE Audio, les composants logiciels qui composent un point de terminaison audio sont la pile de pilotes audio spécifique du fournisseur et le profil Audio Windows Bluetooth LE.

Pile de pilotes audio spécifique au fournisseur

Ce composant spécifique au fournisseur est chargé d’envoyer et de recevoir des données Audio Bluetooth LE vers et depuis un contrôleur Bluetooth via une interface audio définie par le fournisseur. Il se compose au minimum d’un pilote de streaming ACX pour gérer les données audio entrantes et sortantes. D’autres pilotes ACX peuvent être inclus s’ils sont nécessaires dans les parties du point de terminaison audio ACX multi circuit. Ce composant est également appelé pilote de streaming ACX IHV dans ce document.

Profil Audio Windows Bluetooth LE

Ce composant contient l’implémentation du profil audio de base (BAP), du profil de contrôle de volume et du profil de contrôle du microphone. Il est chargé de créer la tête ACXCIRCUIT pour chaque appareil Bluetooth LE Audio ou ensemble d’appareils jumelés à Windows, de signaler les formats audio signalés par l’appareil distant et le contrôleur Bluetooth, et de gérer l’état des canaux et groupes isochrones.

Pile de cœurs Bluetooth Windows

Ce composant fournit une interface pour permettre au profil audio Windows Bluetooth LE d’interroger les fonctionnalités de codec prises en charge à partir du contrôleur Bluetooth local et de gérer l’état des canaux et groupes isochrones.

Codec LC3

Ce sous-composant est responsable de la traduction entre l’audio LC3 compressé et l’audio PCM. Il prend en charge à la fois les fonctionnalités d’encodage et de décodage et peut être implémentée dans le logiciel dans le cadre de la pile VSAP (Fournisseur de pilotes audio spécifique), ou dans le matériel dans le cadre du DSP audio ou du contrôleur Bluetooth. Le diagramme mentionne LC3 par nom, car il s’agit du codec standard pris en charge par bluetooth SIG. Toutefois, les codecs futurs et les codecs spécifiques du fournisseur pris en charge par Windows peuvent également être incorporés dans l’architecture de manière similaire.

Variantes d’architecture

L’architecture VSAP Bluetooth LE Audio prend en charge différentes variantes pour la diffusion en continu.

  1. Streaming audio Bluetooth LE de bande latérale sans déchargement audio
  2. Streaming audio Bluetooth LE de bande latérale avec déchargement audio
  3. Fournisseur spécifique à la bande Bluetooth LE Audio streaming

Dans les diagrammes suivants, les composants ombrés sont fournis par l’IHV et les composants non éthérés sont fournis par le système d’exploitation.

Architecture Audio Bluetooth LE de bande latérale sans déchargement audio

Une architecture de bande latérale utilise une interface audio spécifique au fournisseur pour permettre à la pile des pilotes audio d’envoyer et de recevoir des données audio au contrôleur Bluetooth. Ce chemin de données est distinct du chemin de données HCI utilisé pour d’autres données Bluetooth, telles que la signalisation des messages entre le client monodiffusion et le serveur de monodiffusion distant. Le diagramme suivant modélise une architecture de bande latérale où le codec LC3 est hébergé dans le contrôleur Bluetooth. Il est également valide de disposer du codec LC3 hébergé dans le cadre de la pile de pilotes audio spécifique du fournisseur pour l’encodage et le décodage logiciels. Dans ce cas, l’audio envoyé au contrôleur Bluetooth serait mis en forme en tant que trames audio LC3 au lieu de l’audio PCM.

Le diagramme suivant montre une architecture Bluetooth LE Audio bluetooth avec un codec LC3 dans le contrôleur Bluetooth.

Diagramme de l’architecture audio Bluetooth LE de bande latérale avec codec LC3 situé dans le contrôleur Bluetooth.

Le diagramme suivant montre une architecture Bluetooth LE Audio Bluetooth LE avec un codec LC3 dans la pile des pilotes audio.

Diagramme de l’architecture audio Bluetooth LE de bande latérale avec codec LC3 situé dans la pile des pilotes audio.

Architecture Audio Bluetooth LE de bande latérale avec déchargement audio

Une architecture de bande latérale avec déchargement audio inclut un composant matériel DSP audio pour fournir une solution de streaming Audio Bluetooth LE avec des avantages d’économie d’énergie. Les diagrammes suivants illustrent une architecture possible avec le codec LC3 dans le contrôleur Bluetooth et le codec dans le DSP audio.

Le diagramme suivant montre un audio Bluetooth LE avec une architecture de déchargement audio avec un codec LC3 dans le contrôleur Bluetooth.

Diagramme de l’audio Bluetooth LE de bande latérale avec architecture de déchargement audio, avec codec LC3 dans le contrôleur Bluetooth.

Le diagramme suivant montre un audio Bluetooth LE Audio de bande latérale avec une architecture de déchargement audio avec un codec LC3 dans le DSP audio.

Diagramme de l’audio Bluetooth LE de bande latérale avec architecture de déchargement audio, avec codec LC3 dans le DSP audio.

Architecture audio Bluetooth LE spécifique du fournisseur spécifique à un fournisseur

L’architecture enband VSAP permet à un pipeline personnalisé d’envoyer et de recevoir des données Audio Bluetooth LE du fournisseur spécifiques à la pile de pilotes audio spécifique au contrôleur Bluetooth HCI. Cette architecture comprend un nouveau composant, le « composant de fusion ISO IHV ». Ce composant est chargé de gérer le contrôle de flux pour les données ISO. Il doit également partager le contrôle de flux de commande HCI avec la pile Windows Bluetooth Core s’il doit envoyer des commandes HCI.

Le diagramme suivant montre une architecture audio Bluetooth LE spécifique d’un fournisseur.

Diagramme de l’architecture Bluetooth LE Audio spécifique au fournisseur.

Conception détaillée

Configuration requise pour le format audio

Durées d’images audio

Les profils Bluetooth LE Audio permettent aux implémentations de prendre en charge la diffusion en continu audio avec des durées d’images audio de 7,5 millisecondes ou 10 millisecondes. Windows exige que les codecs fournis par les IHD prennent en charge les deux durées d’images pour garantir l’interopérabilité avec les appareils accessoires Bluetooth LE Audio et la coexistence de qualité avec d’autres appareils Bluetooth LE connectés au système.

Définitions du mode de traitement des signaux

Bluetooth LE Audio prend en charge un large éventail de formats de streaming pour prendre en charge différents scénarios utilisateur. Les spécifications BAP et TMAP définissent des formats obligatoires pris en charge pour la certification. Windows applique les modes de traitement de signal audio pour mettre en corrélation le format à utiliser avec le scénario exécuté par le système. Les pilotes audio qui prennent en charge Bluetooth LE Audio doivent indiquer la prise en charge des modes et formats de traitement des signaux dans le tableau suivant. En outre, Bluetooth LE Audio ne prend pas en charge le mode de traitement du signal brut. Par conséquent, les pilotes audio ne publient aucun format pris en charge pour ce mode.

Afficher les modes de traitement du signal audio de flux

Bluetooth LE Audio nécessite que les formats audio de rendu soient déclarés pour les modes de traitement de signal suivants :

  • Par défaut (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
    • Ce mode est utilisé pour les scénarios de rendu unidirectionnels, tels que la lecture musicale, les notifications et l’audio du jeu vidéo.
  • Communications (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
    • Ce mode est utilisé pour les scénarios bidirectionnels, tels que les appels vocaux.

Les tableaux suivants sont des listes de formats pour chaque cas d’usage et mode de traitement des signaux. Les formats audio sont classés de la plupart des formats préférés au moins préférés.

Sons système, lecture de musique et audio de jeu vidéo lorsqu’il est connecté à un appareil stéréo ou à un ensemble coordonné d’appareils

Mode de traitement du signal : par défaut

Fréquence d’échantillonnage Nombre de canaux Profondeur de couleurs Durée du frame Débit de données audio ID de configuration du codec BAP (tableau 3.11 de la spécification BAP)
48 kHz 2 16 7,5 ms 96 Kbits/s 48_3
48 kHz 2 16 7,5 ms 80 Kbits/s 48_1
48 kHz 2 16 10 ms 96 Kbits/s 48_4
48 kHz 2 16 10 ms 80 Kbits/s 48_2
24 kHz 2 16 7,5 ms 48 Kbits/s 24_1
24 kHz 2 16 10 ms 48 Kbits/s 24_2
Sons système, lecture musicale et audio de jeu vidéo lorsqu’il est connecté à un seul membre d’un ensemble coordonné (écouteur unique ou aide auditive)

Mode de traitement du signal : par défaut

Fréquence d’échantillonnage Nombre de canaux Profondeur de couleurs Durée du frame Débit de données audio ID de configuration du codec BAP (tableau 3.11 de la spécification BAP)
48 kHz 1 16 7,5 ms 96 Kbits/s 48_3
48 kHz 1 16 7,5 ms 80 Kbits/s 48_1
48 kHz 1 16 10 ms 96 Kbits/s 48_4
48 kHz 1 16 10 ms 80 Kbits/s 48_2
24 kHz 1 16 7,5 ms 48 Kbits/s 24_1
24 kHz 1 16 10 ms 48 Kbits/s 24_2
16 kHz 1 16 7,5 ms 32 Kbits/s 16_1
16 kHz 1 16 10 ms 32 Kbits/s 16_2
Afficher l’enregistreur vocal, les appels VOIP ou l’audio de jeu vidéo avec conversation vocale

Mode de traitement des signaux : Communications

Fréquence d’échantillonnage Nombre de canaux Profondeur de couleurs Durée du frame Débit de données audio ID de configuration du codec BAP (tableau 3.11 de la spécification BAP)
32 kHz 1 16 7,5 ms 64 Kbits/s 32_1
32 kHz 1 16 10 ms 64 Kbits/s 32_2
24 kHz 1 16 7,5 ms 48 Kbits/s 24_1
24 kHz 1 16 10 ms 48 Kbits/s 24_2
16 kHz 1 16 7,5 ms 32 Kbits/s 16_1
16 kHz 1 16 10 ms 32 Kbits/s 16_2
Modes de traitement du signal audio de capture de flux

Bluetooth LE Audio nécessite que les formats audio de capture soient déclarés pour le mode de traitement du signal par défaut (AUDIO_SIGNALPROCESSINGMODE_DEFAULT). La liste des formats de capture pris en charge se trouve dans le tableau suivant.

Les formats audio sont classés de la plupart des formats préférés au moins préférés.

Capturer l’enregistreur vocal, les appels VOIP ou l’audio de jeu vidéo avec conversation vocale

Mode de traitement du signal : par défaut

Fréquence d’échantillonnage Nombre de canaux Profondeur de couleurs Durée du frame Débit de données audio ID de configuration du codec BAP (tableau 3.11 de la spécification BAP)
32 kHz 1 16 7,5 ms 64 Kbits/s 32_1
32 kHz 1 16 10 ms 64 Kbits/s 32_2
24 kHz 1 16 7,5 ms 48 Kbits/s 24_1
24 kHz 1 16 10 ms 48 Kbits/s 24_2
16 kHz 1 16 7,5 ms 32 Kbits/s 16_1
16 kHz 1 16 10 ms 32 Kbits/s 16_2

Configurations et topologies de flux définies

Configurations de rendu uniquement
Configuration de profil audio de base 1

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 1.

Le PC est connecté à un seul appareil audio qui prend en charge les flux mono. L’appareil unique peut être un appareil autonome ou un membre connecté unique d’un ensemble coordonné.

Exemples de cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Lecture de contenu multimédia Render :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Capture : Aucun
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : fiabilité élevée
Appel vocal sans microphone sur un appareil audio Render :
Mode de traitement du signal : communications
Nombre de canaux : 1
Capture : Aucun
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Lecture de jeux vidéo Render :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Capture : Aucun
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Configuration de profil audio de base 4

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 4.

Le PC est connecté à un seul appareil audio qui prend en charge les flux stéréo. L’appareil audio est capable de traiter deux canaux audio sur un seul CIS.

Exemples de cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Lecture de contenu multimédia Rendu : Mode de traitement du signal : par défaut
Nombre de canaux : 2
Capture : Aucun
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : Allocation de canal audio haute fiabilité : Front left et front right
Lecture de jeux vidéo Mode de traitement du signal : par défaut
Nombre de canaux : 2
Capture : Aucun
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Allocation de canal audio : front gauche et front droit
Configuration de profil audio de base 6(i)

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 6 I.

Le PC est connecté à un seul appareil audio qui prend en charge les flux stéréo. L’appareil audio ne peut traiter qu’un seul canal audio sur chacun des deux CIS

Exemples de cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Lecture de contenu multimédia Mode de traitement du signal : par défaut
Nombre de canaux : 2
Capture : Aucun
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : fiabilité élevée
Appel vocal sans microphone sur un appareil audio Mode de traitement du signal : communications
Nombre de canaux : 1
Capture : Aucun
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Allocation de canal audio : front gauche ou front droit
Lecture de jeux vidéo Mode de traitement du signal : par défaut
Nombre de canaux : 2
Capture : Aucun
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Allocation de canal audio : front gauche et front droit
Configuration de profil audio de base 6(ii)

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 6 II.

Le PC est connecté à un ensemble coordonné d’appareils audio. L’ensemble est capable de traiter deux canaux audio avec chaque membre traitant un seul canal.

Exemples de cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Lecture de contenu multimédia Mode de traitement du signal : par défaut
Nombre de canaux : 2
Capture : Aucun
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : fiabilité élevée
Appel vocal sans microphone sur l’un ou l’autre appareil Mode de traitement du signal : communications
Nombre de canaux : 1
Capture : Aucun
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Lecture de jeux vidéo Mode de traitement du signal : par défaut
Nombre de canaux : 2
Capture : Aucun
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Configurations bidirectionnelles

Les configurations bidirectionnelles sont utilisées lorsque le profil Bluetooth LE Audio détecte qu’une application a l’intention de créer à la fois une capture et un flux de rendu sur un appareil distant ou un ensemble d’appareils. Étant donné que les applications contrôlent les flux de capture et de rendu séparément, les pilotes audio IHV et les contrôleurs Bluetooth autorisent le flux audio sur une direction unique d’un CIS bidirectionnel après son approvisionnement à l’aide des commandes HCI Configure Data Path et LE Setup ISO Data Path.

Configuration de profil audio de base 3

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 3.

Le PC est connecté à un seul appareil audio avec un flux mono bidirectionnel établi sur un seul CIS.

Cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Appel vocal Render :
Mode de traitement du signal : communications
Nombre de canaux : 1
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Lecture de jeux vidéo avec conversation vocale Render :
Mode de traitement du signal : communications
Nombre de canaux : 1
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Configuration de profil audio de base 8(i)

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 8 I.

Le PC est connecté à un seul appareil audio qui prend en charge les flux de rendu stéréo et les flux de capture mono. L’appareil est capable de traiter un canal audio sur un seul CIS pour une direction donnée.

Cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Appel vocal Render :
Mode de traitement du signal : communications
Nombre de canaux : 1
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Lecture de jeux vidéo avec conversation vocale Render :
Mode de traitement du signal : communications
Nombre de canaux : 2
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Configuration de profil audio de base 8(ii)

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 8 II.

Le PC est connecté à un ensemble coordonné d’appareils audio. Chaque membre défini reçoit un canal de rendu audio. Un seul membre set a un flux de capture établi. Le membre défini avec le flux de capture est le premier membre défini qui se connecte au PC qui prend également en charge les flux de capture.

Cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Appel vocal Render :
Mode de traitement du signal : communications
Nombre de canaux : 1
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Lecture de jeux vidéo avec conversation vocale Render :
Mode de traitement du signal : communications
Nombre de canaux : 2
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Configurations de capture uniquement
Configuration de profil audio de base 2

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 2.

Le PC est connecté à un seul appareil audio qui prend en charge les flux de capture mono.

Cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Appel vocal sans haut-parleur sur l’appareil Rendu : Aucun
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 1
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Configuration de profil audio de base 9(i)

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme illustrant la configuration de profil audio de base 9 I.

Le PC est connecté à un seul appareil audio qui prend en charge l’envoi de données audio stéréo. L’appareil est capable d’encodage d’un canal audio sur un seul CIS.

Cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Capture de microphone multicanal Rendu : Aucun
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence
Configuration de profil audio de base 9(ii)

Le PC est connecté à un seul appareil audio qui prend en charge les flux de capture mono.

La configuration audio suivante est définie dans le tableau 4.1 de la spécification Bluetooth BAP

Diagramme montrant la configuration de profil audio de base 9(ii) avec PC connecté à un seul appareil audio.

Le PC est connecté à un ensemble d’appareils audio. Chaque membre défini envoie un canal d’audio au PC.

Cas d’usage Paramètres audio Windows Paramètres du contrôleur Bluetooth
Capture de microphone multicanal Rendu : Aucun
Capture :
Mode de traitement du signal : par défaut
Nombre de canaux : 1
Nombre CIS : 2
Nombre de CIG : 1
Paramètres de qualité de service BAP : faible latence

Si l’appareil distant ou l’ensemble d’appareils prend en charge l’audio bidirectionnel, les configurations d’un flux de capture uniquement sont identiques aux configurations bidirectionnelles. Cela permet de passer des scénarios de capture uniquement à des scénarios bidirectionnels sans avoir à recréer les flux.

Structures de données

Propriétés de l’interface audio Bluetooth LE définie par Microsoft

Propriétés de création de flux

Les propriétés suivantes sont partagées entre la pile de pilotes audio spécifique du fournisseur et le profil audio Bluetooth LE via les DDIS ACXOBJECTBAG pour informer les décisions sur la création et la configuration du point de terminaison de flux, comme indiqué dans le scénario de création de flux.

BluetoothLEAudio_CodecCapabilities

Cette propriété est définie par le pilote audio pour indiquer la prise en charge des fonctionnalités de streaming audio prises en charge dans le pilote audio ou le DSP audio. La valeur de propriété est définie à l’aide de l’acxObjectBagAddBlob DDI et le format de la valeur est identique à un enregistrement PAC tel que défini dans la spécification PACS.

Le profil Audio Windows Bluetooth LE lit la propriété pour déterminer les configurations de codec possibles et la composition de flux à utiliser.

Champ Octuor
Nombre de capacités 0
ID de codec[i] 1 à 6
Longueur des fonctionnalités spécifiques au codec[i] 7
Fonctionnalités spécifiques au codec 8... n
Longueur des métadonnées (m) n + 1
Métadonnées n+2... m

Les valeurs de champ sont définies dans les tables 3.2 et 3.4 de la spécification PACS.

Bluetooth_DatapathID

Cette propriété est définie par le pilote audio pour indiquer l’ID de chemin d’accès aux données utilisé comme paramètre pour les commandes HCI_LE_Setup_ISO_Data_Path et HCI_Configure_Data_Path. La valeur de propriété est définie à l’aide de l’acxObjectBagAddUI8 DDI.

Le profil Bluetooth LE Audio lit et utilise cette propriété comme paramètre dans les commandes HCI_Configure_Data_Path et HCI_LE_Setup_ISO_Data_Path. Cet ID est appliqué pour tous les flux isochrones créés pour ACXSTREAM associé au conteneur d’objets.

Champ Octuor
ID du chemin d’accès aux données 0

Si la propriété n’est pas définie par le pilote audio, le système d’exploitation utilise la valeur 1 comme paramètre pour les commandes HCI.

Bluetooth_DatapathConfiguration

Cette propriété est définie par le pilote audio pour fournir des configurations spécifiques au fournisseur au contrôleur Bluetooth via la commande HCI_Configure_Data_Path. Il ne doit pas dépasser 255 octets, ce qui est la charge utile la plus importante qu’un contrôleur Bluetooth accepte pour une commande HCI. La valeur de propriété est définie à l’aide d’AcxObjectBagAddBlob DDI. Cette configuration est appliquée pour tout l’ID de chemin de données défini par le pilote audio.

BluetoothLEAudio_CodecConfiguration

Cette propriété doit être définie par le profil Audio Bluetooth LE à l’aide de LDI AcxObjectBagAddBlob une fois la configuration du codec configurée avec un périphérique audio. La structure de la valeur est la suivante :

Champ Octuor
Nombre de configurations 0
Format de codage[i] 3
ID d’entreprise[i] 1-2
ID de codec spécifique au fournisseur[i] 3-4
Longueur de configuration spécifique du codec[i] 5
Configuration spécifique du codec[i] 6... n

Les valeurs de champ sont définies dans le tableau 4.3 de la spécification du service de contrôle de flux audio Bluetooth.

La pile de pilotes audio spécifique au fournisseur doit lire cette propriété si le codec LC3 se trouve dans le pilote de streaming ACX ou le DSP audio.

Interfaces

ID de liaison de modèle de point de terminaison audio

Utilisé par la fabrique de circuits ACX du pilote audio pour savoir quand un circuit ACX pour un appareil Bluetooth jumelé est créé.

Les ID de composant suivants sont utilisés pour créer des circuits Audio Bluetooth LE :

// {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);

Interface de prise en charge bluetooth LE Audio

Utilisé par la pile de pilotes audio pour indiquer qu’il est disponible pour la diffusion en continu de l’audio Bluetooth LE. Montre au niveau du service Audio Bluetooth Windows pour cette interface et attendez qu’elle soit publiée avant d’activer la prise en charge de Bluetooth LE Audio.

Les ID d’interface suivants sont utilisés pour publier l’interface de prise en charge 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);

Séquences

Initialisation du pilote audio

Lorsque le pilote IHV ACX Streaming charge et détermine qu’il prend en charge le streaming audio Bluetooth LE, il affiche la prise en charge de la technologie en créant un objet ACXFACTORYCIRCUIT et en inscrivant des liaisons de modèle Bluetooth avec ACX à l’aide des ID définis dans les ID de liaison de modèle de point de terminaison audio.

Organigramme illustrant la séquence d’initialisation du pilote Bluetooth LE Audio.

Création d’un point de terminaison

  1. Lorsqu’un appareil LE Audio est associé au système, le profil audio Bluetooth LE :
    1. Lit les fonctionnalités audio publiées de l’appareil distant.
    2. Découvre les fonctionnalités prises en charge par le contrôleur en envoyant les commandes HCI_Read_Local_Support_Codecs [v2] et HCI_Read_Local_Supported_Codec_Capabilities.
    3. Crée un ACXCIRCUIT avec les formats pris en charge définis en fonction des fonctionnalités de codec prises en charge par le contrôleur Bluetooth et l’appareil audio distant. Si le contrôleur ne prend pas en charge les codecs, car la prise en charge du codec se trouve dans le DSP audio ou le pilote audio, les formats pris en charge sont définis sur les formats pris en charge par le périphérique audio distant.
  2. Une fois l’ACXCIRCUIT créé, ACX demande à l’usine de circuit ACX du pilote de streaming ACX IHV de créer un ACXCIRCUIT pour le traitement de flux.
  3. Lorsqu’une demande de création d’un circuit est reçue, le pilote de streaming ACX IHV :
    1. Crée des objets ACXCIRCUIT, ACXPIN, ACXOBJECTBAG et ACXSTREAMBRIDGE .
    2. Si le codec spécifique du LC3 ou du fournisseur est hébergé dans le pilote audio ou DSP, le pilote de streaming ACX IHV définit la propriété BluetoothLEAudio_CodecCapabilities sur ACXOBJECTBAG.
    3. Le pilote de streaming ACX IHV peut définir Bluetooth_DatapathID ou Bluetooth_DatapathConfiguration sur ACXOBJECTBAG s’il est connu pour l’instant.
  4. Une fois les deux circuits créés, ACX appelle le rappel EvtAcxPinConnected sur la broche de pont du pilote ACX IHV.
  5. Quand il s’agit du rappel EvtAcxPinConnected est appelé, le pilote de streaming ACX IHV :
    1. Récupère la broche de pont du circuit de profil avec AcxTarget... API pour récupérer les formats pris en charge par le circuit de profil.
    2. Itère dans la liste des éléments ACXDATAFORMATdéfinis par le circuit de profil. Si le codec audio Bluetooth est hébergé dans le pilote audio ou le DSP audio, le pilote audio IHV met à jour ses fichiers ACXDATAFORMATavec les formats pris en charge par le codec et le circuit de profil. Sinon, tous les formats sont copiés dans la broche hôte du pilote de streaming ACX IHV.
    3. Définit la liste de format mise à jour sur la broche de pont si un moteur audio est créé pour décharger le streaming.
  6. Une fois les formats mis à jour, ACX active les deux interfaces et un point de terminaison audio est créé.

Organigramme illustrant le processus de création du point de terminaison Audio Bluetooth LE.

Création de flux

  1. Lorsqu’une application demande de créer un flux audio, ACX appelle les rappels EvtCircuitCreateStream inscrits pour chaque circuit, en commençant par le pilote de streaming ACX IHV.
  2. Quand son rappel EvtCircuitCreateStream est appelé, le pilote de streaming ACX IHV :
    1. Définit ou met à jour les propriétés Bluetooth_DatapathId et Bluetooth_DataPathConfiguration sur ACXOBJECTBAG attachées à ACXSTREAMBRIDGE.
    2. Crée un ACXSTREAM avec des rappels définis pour les transitions d’état de flux et le traitement de flux RT
    3. Crée un élément de moteur audio sur le flux si le pipeline audio prend en charge le déchargement de streaming.
    4. Ajoute ACXSTREAM à son pont de flux. Cela appelle le rappel EvtCircuitCreateStream du profil Audio Bluetooth LE.
  3. Quand son rappel EvtAcxCircuitCreateStream est appelé, le profil Audio Bluetooth LE :
    1. Enregistre les propriétés localement à partir de l’ACXOBJECTBAG défini par le pilote de streaming ACX IHV pour les rappels de transition de flux futurs.
    2. Si le point de terminaison audio est destiné à la diffusion en continu unidiffusion du profil Audio Bluetooth LE :
      1. Effectue l’opération de codec de configuration telle que définie dans la spécification BAP. Les paramètres de l’opération sont dérivés de l’ACXDATAFORMAT spécifié dans le rappel EvtAcxCircuitCreateStream et les autres paramètres de flux dans ACXOBJECTBAG ou les fonctionnalités de codec prises en charge par le contrôleur Bluetooth.
      2. Définit la propriété BluetoothLEAudio_CodecConfiguration sur ACXOBJECTBAG avec la valeur utilisée pour configurer les périphériques audio distants.
  4. Si le pilote de streaming ACX IHV doit mettre à jour son ID de chemin de données ou sa configuration de chemin d’accès aux données en fonction des valeurs du conteneur d’objets définies par le profil, il peut appeler les opérations de jeu KSPROPERTY pour mettre à jour la valeur stockée par le circuit de profil.
    1. Crée un ACXSTREAM avec des rappels définis pour les transitions d’état de flux.

Organigramme montrant le processus de création de flux Audio Bluetooth LE.

Transitions d’état du flux

ACX détermine l’ordre de circuit des transitions d’état de flux en fonction du flux audio et indique si l’état passe à un état plus actif ou moins actif.

  • Pour les flux de rendu allant d’un état moins actif à un état plus actif, le circuit de profil reçoit d’abord l’événement, suivi du circuit de diffusion en continu.
  • Pour les flux de rendu allant d’un état plus actif à un état moins actif, le circuit de diffusion en continu reçoit d’abord l’événement, suivi du circuit de profil. 
  • Pour les flux de capture allant d’un état moins actif à un état plus actif, le circuit de diffusion en continu reçoit d’abord l’événement, suivi du circuit de profil. 
  • Pour les flux de capture allant d’un état plus actif à un état moins actif, le circuit de profil avec réception de l’événement en premier, suivi du circuit de diffusion en continu.

Préparer le flux

Quand son rappel EvtAcxStreamPrepareHardware est appelé, le profil Audio Bluetooth LE :

  1. Alloue des ressources pour un flux de monodiffusion en :
    1. Configuration d’un CIG avec la commande HCI_LE_Set_CIG_Parameters.
    2. Envoi de l’opération QoS de configuration ASCS pour synchroniser les paramètres avec l’appareil distant.

Organigramme illustrant la préparation du flux audio Bluetooth LE pour un circuit de profil.

Lorsque son rappel EvtAcxStreamPrepareHardware est appelé, le pilote de streaming ACX IHV alloue les ressources de streaming nécessaires et initialise le pipeline audio à être dans l’état acquis.

Organigramme illustrant la préparation du flux audio Bluetooth LE pour un circuit de diffusion en continu.

Flux de démarrage

Quand son rappel EvtAcxStreamRun est appelé, le profil Audio Bluetooth LE :

  1. Applique tous les paramètres de configuration de chemin de données définis par le pilote de streaming ACX dans la procédure de création de flux à l’aide de la commande HCI_Configure_Data_Path.
  2. Commence la procédure de démarrage du flux en procédant comme suit :
    1. Exécution de la procédure Activer le flux de monodiffusion BAP pour un flux de monodiffusion :
      1. Envoi de l’opération Activer aux points de terminaison distants.
      2. Création de CIS s’ils ne sont pas déjà créés à l’aide de la commande HCI_LE_Create_CIS.
  3. Si le chemin de données n’est pas déjà configuré, le profil Audio Bluetooth LE :
    1. Établit les chemins de données ISO à l’aide de la commande HCI_LE_Setup_ISO_Data_Path
      1. Si le pilote de streaming ACX IHV définit la propriété BluetoothLEAudio_CodecCapabilities , la valeur du champ Codec_ID dans HCI_LE_Setup_ISO_Data_Path doit être définie sur transparente (0x3) comme défini dans les numéros attribués Bluetooth. Sinon, la valeur doit être identique à l’ID de codec utilisé dans l’opération de codec de configuration dans la procédure de création de flux.
  4. Si le flux audio est un flux de capture monodiffusion, le profil Audio Bluetooth LE effectue l’opération prête pour le récepteur BAP.

Organigramme montrant le processus de démarrage du flux Audio Bluetooth LE pour un circuit de profil.

Lorsque son rappel EvtAcxStreamRun est appelé, le pilote de streaming ACX IHV démarre le traitement des données audio entrantes à partir du système audio Windows (rendu) ou du contrôleur Bluetooth (capture).

Organigramme illustrant le processus de démarrage du flux audio Bluetooth LE pour un circuit de diffusion en continu.

Suspendre le flux

Quand son rappel EvtAcxStreamPause est appelé, le profil Audio Bluetooth LE :

  1. Exécute la procédure de désactivation du flux de monodiffusion BAP.
  2. Supprime le chemin des données ISO à l’aide de la commande HCI_LE_Remove_ISO_Data_Path.
  3. Exécute la procédure prête pour le récepteur ASCS si le flux audio est un flux de capture monodiffusion.

Organigramme illustrant le processus de suspension du flux Audio Bluetooth LE pour un circuit de profil.

Lorsque son rappel EvtAcxStreamPause est appelé, le pilote de streaming ACX IHV interrompt son pipeline de traitement audio.

Organigramme montrant le processus de suspension du flux Audio Bluetooth LE pour un circuit de diffusion en continu.

Flux de mise en production

Quand son rappel EvtAcxStreamReleaseHardware est appelé, le profil audio Bluetooth LE effectue la procédure de publication de flux monodiffusion BAP en procédant comme suit :

  1. Envoi de l’opération de mise en production ASCS à l’appareil Bluetooth LE Audio distant
  2. Déconnexion du cis s’il n’est pas utilisé par un autre flux actif.
  3. Suppression du CIG si tous les CIS sont déconnectés.

Organigramme illustrant le processus de publication de flux Audio Bluetooth LE pour un circuit de profil.

Quand son rappel EvtAcxStreamReleaseHardware est appelé, le pilote de streaming ACX IHV libère ses ressources de pipeline audio.

Organigramme illustrant le processus de publication de flux Audio Bluetooth LE pour un circuit de diffusion en continu.

Déconnexion du point de terminaison

Le profil Audio Windows Bluetooth LE met à jour l’état de connexion d’un point de terminaison si l’appareil monodiffusion distant n’a pas de connexion LE-ACL au PC ou signale via ses contextes audio disponibles PACS qu’il n’est pas disponible pour la diffusion en continu. Lorsque le point de terminaison est déconnecté, le service audio Windows invalide tous les flux actifs vers le point de terminaison. Cela entraîne la suspension du flux et les séquences de mise en production.

Suppression du point de terminaison

Un point de terminaison Audio Bluetooth LE est supprimé du système lorsque le circuit de profil ou le circuit de streaming est détruit. Le circuit de profil peut être supprimé lorsque le jumelage de l’appareil monodiffusion distant est supprimé de Windows ou que la radio Bluetooth est désactivée.

  1. Lorsque le profil Audio Bluetooth LE Windows supprime son circuit, ACX désactive ses interfaces de point de terminaison pour signaler au service audio Windows que le point de terminaison doit être supprimé.
  2. Lorsque les interfaces sont désactivées, le service audio Windows invalide tous les flux actifs vers le point de terminaison Bluetooth LE Audio, cette opération entraîne l’appel des rappels de flux et de mise en production sur le circuit de streaming.
  3. Pour terminer la suppression du point de terminaison, ACX invalide le circuit du pilote de streaming ACX IHV, ce qui entraîne l’appel du rappel de nettoyage du circuit.
  4. Lorsque son rappel de nettoyage est appelé, le pilote de streaming ACX IHV libère son circuit.

Organigramme montrant le processus de suppression du point de terminaison Bluetooth LE Audio.

Volume et muet

Le circuit de streaming ACX IHV ne doit inclure que des éléments de volume et de désactivation si le pilote de diffusion en continu nécessite un moteur audio. Lorsque vous utilisez un moteur audio, les indicateurs de configuration doivent être définis comme suit :

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.

Cela est nécessaire pour permettre aux points de terminaison Bluetooth LE Audio d’utiliser les profils de contrôle de volume et de microphone définis par Bluetooth SIG pour les modifications de volume et de désactivation des points de terminaison audio monodiffusion.

Si l’appareil Bluetooth LE Audio distant ne prend pas en charge les services de contrôle de volume ou de microphone, ou si le point de terminaison est créé pour la diffusion audio, le volume et les éléments de son-moteur doivent servir de secours pour gérer les demandes de modification du système audio. Le système audio Windows gère les modifications apportées au volume et au son. S’il n’existe aucun moteur audio et que l’appareil distant ne prend pas en charge le volume, ou que les services de microphone ou le point de terminaison audio sont destinés à la diffusion audio.

Coexistence audio Bluetooth LE et classique

Windows doit s’assurer que seul l’audio classique ou LE est actif pour un appareil audio Bluetooth jumelé qui prend en charge les deux technologies. Si l’audio LE est actif, les DDIs de bande latérale pour A2DP et HFP pour l’appareil distant sont désactivées et le circuit de profil est créé pour le point de terminaison audio LE. Si l’audio classique est actif, les DDIS de bande latérale pour A2DP et HFP pour l’appareil distant sont activées et le circuit de profil n’est pas créé pour le point de terminaison audio LE.

Gestion de l'alimentation

Bluetooth LE Audio n’a pas de configuration ou de flux de gestion de l’alimentation en dehors de ce qui est déjà défini par WDF.