Partager via


Bluetooth Low Energy (LE) Audio

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

Présentation

Bluetooth LE Audio permet la diffusion d'audio unicast ou broadcast vers des appareils Bluetooth LE via un transport isochrone. Depuis la version 5.3 de la spécification de base Bluetooth, il n’existe aucune interface de contrôleur hôte définie standard (HCI) pour que les plateformes hôtes envoient et reçoivent 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 prérequis

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
LE audio Abréviation pour 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 une manière standard pour les appareils Bluetooth LE Audio de configurer et d'établir des flux audio unicast.
PACS Le Service des capacités audio publiées définit un moyen standard pour les appareils Bluetooth LE Audio de signaler leurs fonctionnalités de codec audio prises en charge.
CIS Le transport de flux isochrones connectés est utilisé pour envoyer et recevoir des données audio unicast entre les appareils Bluetooth LE.
BRI Le transport du Stream Isochrone de Diffusion est utilisé pour les transferts de données audio sans connexion.
ACX Abréviation de extensions de classe audio, qui est le modèle de pilote requis par tous les pilotes audio pour prendre en charge le 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_Lire_Capacités_Prises_en_Charge_Codec_Local
  • 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 couche Bluetooth via le circuit de gestion des profils.

Architecture

Définitions

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

Cadre 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 propre 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 des composants nécessaires du point final audio ACX multi circuit. Ce composant est également appelé pilote de streaming ACX IHV dans ce document.

Profil audio Bluetooth LE de Windows

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 le contrôle 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 protocoles 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 doit prendre en charge à la fois les capacités d’encodage et de décodage et peut être implémenté soit dans le logiciel, dans le cadre de la pile du pilote audio spécifique du fournisseur, soit 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 en sous-bande sans transfert d’audio
  2. Streaming audio Bluetooth LE en bande latérale avec transfert de la charge audio
  3. Audio Bluetooth LE en bande spécifique au fournisseur

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 possible d'héberger le codec LC3 au sein de la pile de pilotes audio spécifique au fournisseur pour l'encodage et le décodage logiciel. 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 schéma suivant montre une architecture Bluetooth LE Audio 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 avec un codec LC3 dans la pile du pilote 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 dispositif audio Bluetooth LE en bande latérale avec une architecture de déchargement audio, comprenant un codec LC3 dans le contrôleur Bluetooth.

Diagramme de l’audio Bluetooth LE en bande de fréquence latérale avec architecture de transfert audio, intégrant le codec LC3 dans le contrôleur Bluetooth.

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

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

Architecture audio Bluetooth LE spécifique au fournisseur en bande

L’architecture inband VSAP permet à un pipeline personnalisé d’envoyer et de recevoir des données Audio Bluetooth LE depuis la pile de pilotes audio spécifique du fournisseur vers l'HCI du contrôleur Bluetooth. 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 en bande spécifique au fournisseur.

Conception détaillée

Configuration requise pour le format audio

Durées de trames 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 IHV prennent en charge les deux durées de trames pour garantir l'interopérabilité avec les 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 en 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 du plus 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 bits 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 bits 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 bits 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 des signaux audio pour la 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 du plus 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 bits 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 Rendre :
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 Rendu :
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
Diffusion de jeux vidéo Rendu :
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 : haute fiabilité Allocation de canal audio : avant gauche et avant droit
Jouabilité des 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
Jouer aux 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 Rendre:
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
Jeux vidéo en direct avec chat vocal Rendre:
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 Rendre:
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 Rendre:
Mode de traitement du signal : communications
Nombre de canaux : 2
Capturer:
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 du groupe dispose d'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 Rendre:
Mode de traitement du signal : communications
Nombre de canaux : 1
Capturer:
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 chat vocal Rendre:
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
Capturer:
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
Capturer:
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
Capturer:
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 DDISACXOBJECTBAG 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 la DDI AcxObjectBagAddBlob 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.

Terrain Octet
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.

Terrain Octet
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_Configuration du chemin de données

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 de 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 :

Terrain Octet
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 l'usine 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 support 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. Le service audio Bluetooth de Windows surveille cette interface et attend qu'elle soit prête 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 est chargé et qu’il 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 les liaisons de modèle Bluetooth avec ACX en utilisant les ID définis dans 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. Consulte 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. Après que l’ACXCIRCUIT est créé, ACX demande au fabricant de circuits 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 LC3 ou spécifique au fournisseur est hébergé dans le pilote audio ou le DSP, alors 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 le rappel EvtAcxPinConnected est invoqué, le pilote de streaming ACX IHV :
    1. Récupère la broche de pont du circuit de profil avec les APIs AcxTarget... pour récupérer les formats pris en charge par le circuit de profil.
    2. Parcourt la liste des éléments ACXDATAFORMAT dé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 le pin 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 à sa passerelle de flux. Cela déclenche, dans le profil Audio Bluetooth LE, le rappel EvtCircuitCreateStream.
  3. Quand le rappel EvtAcxCircuitCreateStream est déclenché, 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 utilisé pour le flux unicast 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 de données en fonction des valeurs du conteneur d’objets définies par le profil, il peut invoquer les opérations 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 de 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 passant d’un état moins actif à un état plus actif, le circuit de profil reçoit d’abord l’événement, suivi du circuit de streaming.
  • Pour les flux de rendu qui passent d’un état plus actif à un état moins actif, le circuit de streaming reçoit d’abord l’événement, suivi par le circuit de profil. 
  • Pour les flux de capture passant d’un état moins actif à un état plus actif, le circuit de streaming 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 recevra l'événement en premier, suivi du circuit de flux.

Préparer le flux de diffusion

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

  1. Alloue des ressources pour un flux de monodiffusion par :
    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 sa fonction de rappel EvtAcxStreamPrepareHardware est invoquée, le pilote de streaming ACX IHV alloue les ressources de streaming nécessaires et initialise le pipeline audio pour être dans l'état acquis.

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

Démarrer le streaming

Quand sa fonction de rappel EvtAcxStreamRun est invoquée, 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 d'activation du flux de monodiffusion BAP :
      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 de préparation du démarrage du 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

Lorsque le rappel EvtAcxStreamPause est invoqué, le profil Audio Bluetooth LE :

  1. Exécute la procédure de désactivation du flux unicast 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 de préparation pour le récepteur ASCS si le flux audio est un flux de capture en unicast.

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

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 publication

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 libération ASCS à l’appareil Bluetooth LE Audio distant
  2. Déconnecter le CIS si 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 libération des flux Audio Bluetooth LE pour un circuit de profil audio.

Lorsque sa fonction de rappel EvtAcxStreamReleaseHardware est invoquée, le pilote de streaming ACX de l'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 de 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 reprise.

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 unicast 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 audio Bluetooth LE. Cette opération entraîne l'invocation des rappels de pause et de libération 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 de la fonction de nettoyage du circuit par le WDF.
  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 afin de 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 changements de volume et la désactivation des points de terminaison audio monodiffusion.

Si l’appareil Audio LE Bluetooth 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 du moteur audio doivent servir de solution de repli pour gérer les demandes de modification du système audio. Le système audio Windows gère les modifications du volume et du mode silencieux. 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.