Partager via


Architecture d’objet de traitement audio

Les objets de traitement audio (API), fournissent un traitement de signal numérique basé sur un logiciel personnalisable pour les flux audio Windows.

Vue d’ensemble des objets de traitement audio

Windows permet aux fabricants oem et aux fabricants de matériel audio tiers d’inclure des effets de traitement de signal numériques personnalisés dans le cadre des fonctionnalités ajoutées de leur pilote audio. Ces effets sont emballés sous forme d'objets de traitement audio (APO) en mode utilisateur du système.

Les objets de traitement audio (API), fournissent un traitement de signal numérique basé sur logiciel pour les flux audio Windows. Une APO est un objet hôte COM qui contient un algorithme écrit pour fournir un effet DSP (Digital Signal Processing) spécifique. Cette fonctionnalité est connue de façon informelle comme un « effet audio ». Par exemple, les APO incluent des égaliseurs graphiques, des réverbérations, des tremolos, la suppression de l'écho acoustique (AEC) et un contrôle automatique de gain (AGC). Les APO sont des objets COM en temps réel, intégrés au processus.

Note Les descriptions et la terminologie de cette documentation font principalement référence aux périphériques de sortie, tels que les haut-parleurs. Toutefois, la technologie est symétrique et fonctionne essentiellement en inverse pour les périphériques d’entrée.

API logicielles et DSP matériel

Un processeur de signal numérique matériel (DSP) est un microprocesseur spécialisé (ou un bloc SIP), avec son architecture optimisée pour les besoins opérationnels du traitement du signal numérique. Il peut y avoir des avantages significatifs à implémenter le traitement audio dans du matériel conçu spécifiquement plutôt que d'utiliser un APO logiciel. L’un des avantages est que l’utilisation du processeur et la consommation d’alimentation associée peuvent être inférieures avec un DSP implémenté par le matériel.

Il existe d’autres avantages et inconvénients à prendre en compte, spécifiques à vos projets objectifs et contraintes que vous souhaiterez prendre en compte avant d’implémenter une APO basée sur logiciel.

Les effets logiciels sont insérés dans le canal d’appareil logiciel lors de l’initialisation de flux. Ces solutions effectuent tous leurs traitements d’effets sur le processeur principal et ne s’appuient pas sur du matériel externe. Ce type de solution est idéal pour les solutions audio Windows traditionnelles telles que les périphériques HDAudio, USB et Bluetooth lorsque le pilote et le matériel prennent uniquement en charge le traitement RAW. Pour plus d’informations sur le traitement RAW, consultez Modes de traitement du signal audio.

Proxy APO pour DSP matériel

Tous les effets appliqués dans le DSP matériel doivent être publiés via un proxy APO. Microsoft fournit un proxy PAR défaut APO (MsApoFxProxy.dll). Pour utiliser l'APO fournie par Microsoft, ce jeu de propriétés et cette propriété doivent être supportés.

Si vous le souhaitez, vous pouvez implémenter votre propre proxy APO.

APOs fournies par Windows (système)

Windows installe un ensemble par défaut d’API qui fournit un certain nombre d’effets audio différents. Pour obtenir la liste des effets APO fournis par le système, consultez Modes de traitement du signal audio.

Les oem peuvent inclure toutes les API fournies par le système ou remplacer certaines ou toutes d’entre elles par des API personnalisées.

API personnalisées

Il est possible de créer des API personnalisées pour améliorer l’expérience audio Windows en ajoutant des effets audio supplémentaires.

L’OEM peut inclure n’importe quelle combinaison des API Windows fournies et des API personnalisées lors de l’expédition de Windows.

Une APO personnalisée peut être installée par un OEM ou un tiers pour améliorer l’expérience audio après l’achat de l’appareil. Lorsque les utilisateurs installent un pilote de périphérique audio à l’aide du fichier INF standard, ils ont automatiquement accès aux API du système. Les fournisseurs de matériel indépendants (IHV) et les fabricants d’équipement d’origine (OEM) peuvent fournir des effets système personnalisés supplémentaires tout en utilisant les pilotes de classe Microsoft. Ils le font en empaquetant leurs algorithmes DSP en tant qu’API et en modifiant le fichier INF standard pour insérer leurs API dans le graphique de traitement du signal du moteur audio.

Pour plus d’informations sur la création d’API personnalisées, consultez Implémentation d’objets de traitement audio.

Application de support APO personnalisée

Pour permettre à l’utilisateur de configurer les paramètres associés à votre apo personnalisée, l’approche recommandée consiste à créer une application de support matériel. Pour plus d'informations, voir Application d'assistance matérielle (HSA) : étapes pour les développeurs de pilotes.

Tests et exigences APO personnalisés

Microsoft HLK fournit des tests qui peuvent être utilisés avec des API. Pour plus d’informations sur les tests audio, consultez Device.Audio Testing et Device.Audio Tests.

Ces deux tests peuvent être particulièrement utiles lors de l’utilisation des API.

Vérifier Audio EffectsDiscovery (Manuel) - Certification

SysFX Test

Pour plus d’informations sur la configuration audio requise pour prendre en charge les API, consultez Device.Audio Requirements.

Outils et utilitaires APO personnalisés

Vous pouvez utiliser l'« exemple de découverte d’effets audio » pour explorer les effets audio disponibles. Cet exemple montre comment interroger des effets audio sur les périphériques audio de rendu et de capture et comment surveiller les modifications avec les effets audio. Il est inclus dans les exemples du Kit de développement logiciel (SDK) et peut être téléchargé à l’aide de ce lien :

Exemple de découverte d’effets audio

Sensibilisation aux effets audio de l’application

Les applications ont la possibilité d’appeler des API pour déterminer quels effets audio sont actuellement actifs sur le système. Pour plus d’informations sur les API de sensibilisation aux effets audio, consultez la classe AudioRenderEffectsManager.

Architecture des objets de traitement audio

Placement des effets audio

Il existe trois emplacements différents pour les effets audio implémentés en tant qu’API. Ils se trouvent dans les effets Stream (SFX), les effets Mode (MFX) et les effets Endpoint (EFX).

Stream Effect (SFX)

Un APO avec effet appliqué au flux a une instance de cet effet pour chaque flux. Les effets de flux se situent avant le mixage (rendu) ou après la dérivation (capture) pour un mode donné et peuvent être utilisés pour modifier le nombre de canaux avant le mixeur. Les effets de flux ne sont pas utilisés pour les flux bruts.

Certaines versions de Windows, en tant qu’optimisation, ne chargent pas les API SFX ou MFX en mode RAW.

  • Windows 8.1 ne charge pas RAW SFX ou RAW MFX
  • Windows 10 charge RAW MFX, mais pas RAW SFX

Effet de mode (MFX)

Les effets de mode (MFX) sont appliqués à tous les flux mappés au même mode. Les effets de mode sont appliqués après la combinaison (rendu) ou avant le tee (capture) pour un mode donné, mais avant la combinaison (rendu) ou après le tee (capture) pour tous les modes. Tout effet ou effet spécifique de scénario qui n’a pas besoin des spécificités de l’effet de flux doit être placé ici. Il est plus efficace d’utiliser un effet de mode, car il existe une instance pour plusieurs flux qui partagent les mêmes caractéristiques telles que la périodicité et le format.

Effet de point de terminaison (EFX)

L’effet de point de terminaison (EFX) est appliqué à tous les flux qui utilisent le même point de terminaison. Un effet de point de terminaison est toujours appliqué, même aux flux bruts. Autrement dit, il se trouve après la combinaison (rendu) ou avant le tee (capture) de tous les modes. Les effets du point de terminaison doivent être utilisés avec soin et, dans le doute, un effet doit être placé dans la zone Mode. Certains effets qui doivent être placés dans la zone de point de terminaison sont la protection de l’orateur et la compensation de l’orateur.

Ce diagramme montre les emplacements possibles pour les effets de flux (SFX), de mode (MFX) et de point de terminaison (EFX) pour Windows 10.

Diagramme illustrant le positionnement des effets de flux, de mode et de point de terminaison dans Windows 10.

Effets APO personnalisés multiples

Il est possible de configurer plusieurs effets basés sur APO pour travailler avec différentes applications.

Ce diagramme montre comment plusieurs applications peuvent accéder à plusieurs combinaisons d’effets APO de flux, de mode et de point de terminaison. Toutes les API sont basées sur COM et s’exécutent en mode utilisateur. Dans ce scénario, aucun des effets ne s’exécute en mode matériel ou en mode noyau.

Diagramme montrant comment plusieurs applications peuvent accéder à différentes combinaisons d’effets APO de flux, de mode et de point de terminaison.

Note Vous pouvez utiliser la barre de défilement en bas de cette page pour afficher tout ce diagramme.

Effets du mode logiciel et effets du point de terminaison matériel pour le rendu et la capture

Ce diagramme illustre les effets du mode logiciel et les effets du point de terminaison matériel pour le rendu et la capture.

Diagramme affichant les effets du mode logiciel et les effets du point de terminaison matériel pour les processus de rendu et de capture.

Système équipé de DSP avec effets matériels

Ce diagramme illustre un système équipé de DSP qui implémente des effets dans le matériel. Dans ce scénario, une APO proxy doit être créée pour informer les applications des effets implémentés dans le matériel.

Diagramme illustrant un système équipé de DSP implémentant des effets dans le matériel.

Objets de traitement audio Windows

Implémentation du pilote audio géré par le matériel