Désactiver la suppression du bruit matériel

Dans Chrome 64, nous testons un nouveau comportement pour les flux audio getUserMedia pour lesquels la contrainte echoCancellation est activée. La nouveauté est que ces flux désactivent temporairement la suppression du bruit du matériel pendant toute la durée du flux. Nous pensons que cela améliorera les performances de l'annulation d'écho. Cette fonctionnalité étant expérimentale, vous devez l'activer explicitement (voir ci-dessous).

À ce stade, ce comportement n'est compatible qu'avec certains périphériques d'entrée et uniquement sous macOS. La prise en charge est limitée aux appareils dont l'option "réduction du bruit ambiant" peut être activée dans le panneau Son des Préférences système.

Contexte

Un dispositif d'annulation d'écho tente de supprimer du signal audio capté par le micro tout son émis sur les haut-parleurs. Sans cela, ce que vous dites en tant que partie d'un appel sera récupéré par le micro des autres parties, puis renvoyé à vous. Vous allez entendre un écho de vous-même !

Pour supprimer l'écho, l'outil d'annulation de l'écho de WebRTC (utilisé dans Chrome) doit recevoir un signal audio aussi propre que possible du micro. Le traitement appliqué avant que l'audio n'atteigne l'outil d'annulation de l'écho, tel que la suppression du bruit matériel, en nuit normalement aux performances. De plus, la suppression du bruit logicielle est déjà en place, mais seulement après que l'annulation de l'écho a terminé son traitement.

Détails du nouveau comportement

Les développeurs Web peuvent activer le nouveau comportement sur leurs sites en activant une phase d'évaluation. Les utilisateurs finaux peuvent l'activer à l'échelle mondiale en transmettant un indicateur de ligne de commande au démarrage de Chrome. Pour en savoir plus, consultez les informations ci-dessous.

Lorsque cette option est activée et qu'une page Web appelle getUserMedia pour obtenir du contenu audio à partir d'un périphérique d'entrée, voici ce qui se produit:

  • Si la contrainte echoCancellation est activée, la suppression du bruit matériel est désactivée pendant la durée du flux audio nouvellement créé.

  • Comme ce paramètre s'applique à l'ensemble du système, il s'applique à tous les flux d'entrée audio du même appareil (c'est-à-dire le même micro).

  • Une fois que le dernier flux pour lequel la suppression du bruit du matériel est désactivé est fermé, la suppression du bruit matériel est réactivée.

  • Si la suppression du bruit du matériel a déjà été désactivée, Chrome ne modifie pas son état.

  • Si getUserMedia est appelé sans que echoCancellation n'est activé, Chrome ne touche pas la suppression du bruit matériel.

Comme ce paramètre peut également être contrôlé par l'utilisateur, il existe des interactions spécifiques avec lui:

  • Si Chrome a désactivé la suppression du bruit du matériel et que l'utilisateur la réactive, Chrome n'essayera pas de la désactiver à nouveau pour ce flux.

  • Si Chrome a désactivé la suppression du bruit du matériel et que l'utilisateur la réactive, puis la désactive, Chrome la réactivera une fois le flux terminé.

Il suffit d'activer le test pour appliquer ce comportement. Aucune modification de l'API n'est nécessaire.

Activer le test

Pour profiter de ce nouveau comportement sur votre site, vous devez vous inscrire à la phase d'évaluation "Désactiver la suppression du bruit matériel". Si vous souhaitez simplement l'essayer en local, vous pouvez également l'activer via la ligne de commande:

chrome --enable-blink-features=DisableHardwareNoiseSuppression

La transmission de cet indicateur sur la ligne de commande active la fonctionnalité dans le monde entier pour la session en cours.

Nous souhaitons évaluer certains aspects de cette expérience:

  • Différences qualitatives sur le terrain entre l'activation ou la désactivation de la suppression du bruit du matériel.

  • En quoi la modification de ce paramètre dans Chrome affecte-t-elle l'utilisateur final et les autres logiciels qu'il peut exécuter ?

Votre avis sur ces deux points nous intéresse. Est-ce que les appels sont plus ou moins bons lorsque cette fonctionnalité est activée ? Y a-t-il des problèmes d'implémentation qui provoquent des comportements inattendus ? Dans tous les cas, si vous essayez ceci, veuillez nous envoyer des commentaires sur ce bug. Si possible, indiquez le micro, le casque, etc. utilisé(s) et indiquez s'il est compatible avec la réduction du bruit ambiant. Si vous effectuez des tests à plus grande échelle, nous vous recommandons d'inclure des liens vers des statistiques comparatives sur la qualité des appels audio.