Mise en œuvre d'un son spatial dynamique et du suivi des mouvements de la tête

Android 13 prend en charge le son spatial en fournissant API permettant aux développeurs d'applications de déterminer si la combinaison actuelle de implémentation, casque connecté et paramètres utilisateur permettent de lire les des contenus audio multicanaux de manière immersive.

Les OEM peuvent fournir un effet audio spatialisant compatible avec le suivi de la tête avec le niveau de performances et de latence requis à l'aide du nouveau pipeline audio ; et l'intégration du framework de capteurs. La Le protocole HID indique comment Connecter un appareil de suivi de la tête via Bluetooth et le rendre disponible en tant que HID via le framework du capteur Android. Consultez la page Son spatial et suivi des mouvements de la tête. pour plus d'exigences et de validation.

Les consignes figurant sur cette page s'appliquent aux solutions de son spatial dynamique qui utilisent la technologie API de son spatialisé et architecture audio avec un téléphone Android exécutant Android 13 ou version ultérieure, et casques compatibles avec de suivi de la tête.

Consignes d'implémentation des modes de son spatial dynamique et statique

Le son spatial statique ne nécessite pas de suivi de la tête, donc spécifique fonctionnalité n'est pas requise dans le casque. Tous les casques filaires et sans fil sont compatibles avec un son spatial statique.

Implémentation d'API

Les OEM DOIVENT implémenter le Spatializer introduite dans Android 12. La mise en œuvre doit réussir les tests CTS. présenté pour la classe Spatializer.

Une implémentation d'API robuste garantit que les développeurs d'applications, en particulier les médias des services de streaming, peuvent s'appuyer sur un comportement cohérent dans l'ensemble de l'écosystème choisir le meilleur contenu en fonction des capacités de l'appareil, du rendu actuel le contexte et les choix des utilisateurs.

Interface utilisateur

Après avoir implémenté Spatializer , vérifiez que votre interface utilisateur a le comportement suivant:

  • Lorsque le casque compatible avec le son spatial est associé, l'appareil Bluetooth paramètres de ce casque affichent un bouton Son spatial:

    interface-audio-spatiale

    Figure 1 : Paramètre de son spatial.

  • Les paramètres sont disponibles lorsque le casque est déconnecté.

  • Après l'association initiale du casque, le son spatialisé est activé par défaut. définie sur enabled ;

  • Que l'état sélectionné par l'utilisateur soit activé ou désactivé, le téléphone conserve redémarrer, dissocier et associer le casque.

Comportement fonctionnel

Formats audio

Les formats audio suivants DOIVENT être rendus par l'effet spatialisant lorsque le son spatial est activé et l'appareil de rendu est un appareil filaire ou Bluetooth casque:

  • AAC, 5.1 canaux
  • PCM brutes, 5.1 canaux

Pour une meilleure expérience utilisateur, nous vous recommandons vivement de prendre en charge les éléments suivants formats/configurations de chaînes:

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

Lecture de contenu stéréo

Le contenu stéréo ne doit pas être affiché à l'aide du moteur d'effet de spatialisation, même si le son spatial est activé. Si une implémentation autorise le contenu stéréo la spatialisation, elle doit présenter une interface utilisateur personnalisée qui permet à l'utilisateur d'activer facilement. Lorsque le son spatial est activé, il doit être possible transition entre la lecture de contenu multicanal spatialisé et du contenu stéréo non spatialisé sans qu'il soit nécessaire de modifier les paramètres de l'utilisateur ou de reconnexion ou de reconfiguration du casque. La transition entre le son spatial les contenus stéréo et vidéo doivent entraîner le moins d'interruptions possible du son.

Transitions de cas d'utilisation et simultanéité

Gérez les cas d'utilisation particuliers comme suit:

  • Les notifications doivent être mélangées au contenu audio spatial dans la même qu'avec les contenus audio non spatiaux.
  • Vous devez autoriser les sonneries avec du son spatialisé. Toutefois, par défaut, le mécanisme de focus audio met en pause le contenu audio spatial quand il y a une sonnerie.
  • Lorsque vous répondez à un appel téléphonique ou passez une visioconférence, la lecture audio doit être mise en pause. La lecture du son spatial doit reprendre paramètres de son spatialisé à la fin de l'appel. Reconfigurer un chemin audio le passage du son spatial au mode conversationnel doit se faire rapidement de façon fluide et fluide pour ne pas nuire à l'expérience d'appel.

Rendu sur des enceintes

La prise en charge de la spatialisation audio sur haut-parleurs ou du mode transaural n'est pas obligatoire.

Consignes pour la mise en œuvre du suivi de la tête

Cette section porte sur le son spatial dynamique, associé à un casque spécifique exigences.

Interface utilisateur

Après la mise en œuvre et l'association du casque compatible avec le son spatial, valider que votre interface utilisateur se comporte comme suit:

  • Dans les paramètres de l'appareil Bluetooth, lorsque le paramètre Son spatial de l'appareil est activé, le paramètre Suivi de la tête s'affiche sous Son spatial:

    UI

    Figure 2. Son spatial et paramètre de suivi de la tête.

  • Le paramètre de suivi de la tête n'est PAS visible lorsque le son spatial est désactivé.

  • L'état par défaut du suivi de la tête après l'association initiale du casque est définie sur enabled ;

  • L'état sélectionné par l'utilisateur, qu'il soit activé ou désactivé, doit être conservé pendant redémarrer le téléphone, ou découpler et associer le casque.

Comportement fonctionnel

Rapports sur la posture du visage

  • Informations sur la posture du visage, en coordonnées X, Y et Z, envoyées par le casque à l'appareil Android, doit refléter rapidement les mouvements de la tête de l'utilisateur avec précision.
  • Les rapports sur la position du visage sur le lien Bluetooth doivent respecter le protocole défini sur HID.
  • Le casque doit envoyer les informations de suivi des mouvements de la tête au téléphone Android Uniquement lorsque l'utilisateur active Suivi de la tête dans les paramètres de l'appareil Bluetooth UI.

Performances

Tardive

La latence du suivi de la tête est définie comme le temps nécessaire au mouvement de la tête. capturées par l'unité de mesure inertie (IMU) aux transducteurs du casque pour détecter les variations sonores causées par ce mouvement. Latence du suivi des mouvements de la tête ne doit pas dépasser 150 ms.

Taux de signalement des postures du visage

Lorsque le suivi de la tête est activé, le casque doit signaler la position de la tête sur un base périodique recommandée d'environ 20 ms. Pour éviter de déclencher l'obsolescence logique de détection d'entrée sur le téléphone lors d'une gigue de transmission Bluetooth, le délai maximal entre deux mises à jour ne doit pas dépasser 40 ms.

Optimisation de l'énergie

Pour optimiser la consommation d'énergie, nous vous recommandons d'utiliser Basculement de codec Bluetooth et de sélection du mode de latence fournis par le HAL audio et HAL Bluetooth audio de commande.

Les implémentations AOSP du framework audio et de la pile Bluetooth sont déjà prendre en charge les signaux pour contrôler le changement de codec. Si l'implémentation de l'OEM utilise principale HAL pour l'audio Bluetooth, appelée mode de déchargement du codec, L'OEM doit s'assurer que le HAL audio transmet ces signaux et la pile Bluetooth.

Changement de codec

Lorsque le son spatial dynamique et le suivi de la tête sont activés, utilisez un codec à faible latence, comme Opus. Lors de la lecture d'un contenu non spatial contenu audio, utilisez un codec basse consommation Code audio avancé (AAC).

Suivez ces règles lors du changement de codec:

  • Suivre uniquement l'activité sur les flux de sortie HAL audio suivants: <ph type="x-smartling-placeholder">
      </ph>
    • Sortie dédiée à la spatialisation
    • Flux spécifiques aux contenus multimédias, tels que la mise en mémoire tampon profonde ou le déchargement compressé lecture
  • Lorsque tous les flux concernés sont inactifs et que le flux de spatialisation démarre, le flux Bluetooth avec isLowLatency défini sur true pour spécifier un codec à faible latence.

  • Lorsque tous les flux concernés sont inactifs et qu'un flux multimédia démarre, Flux Bluetooth avec isLowLatency défini sur false pour spécifier un codec basse consommation.

  • Si un flux multimédia est actif et que le flux de spatialisation démarre, redémarrez la Flux Bluetooth avec isLowLatency défini sur true.

Côté casque, le casque doit être compatible à la fois avec les modes Faible latence et Écoénergétiques. des décodeurs et implémenter le protocole de sélection de codec standard.

Ajustement du mode de latence

L'ajustement du mode de latence se produit lorsque le codec à faible latence est sélectionné.

Selon que le suivi de la tête est activé ou désactivé, l'ajustement du mode de latence utilise mécanismes disponibles permettant de réduire ou d'augmenter la latence afin d'obtenir un compromis entre latence, puissance et qualité audio. Lorsque le son spatial est et le suivi de la tête est activé, le mode à faible latence est choisi. Quand ? le son spatial est activé et le suivi de la tête est désactivé, le mode de latence sans frais est sélectionnée. L'ajustement de la latence permet de réduire considérablement la consommation d'énergie et d'augmenter de la fiabilité du lien audio Bluetooth lorsque seul le son spatial statique demandée. Le mécanisme d'ajustement de la latence le plus courant est la réduction ou extension de la taille de la mémoire tampon de gigue dans le casque Bluetooth.