Meilleure annulation de l'écho natif

Nous poursuivons le test précédent. Dans Chrome M68, nous avons ajouté une contrainte MediaStreamTrack expérimentale pour contrôler le suppresseur d'écho utilisé, ajouté la prise en charge d'un suppresseur d'écho natif sous Windows et amélioré le fonctionnement du suppresseur d'écho natif sous macOS. Comme auparavant, tout cela est disponible dans une phase d'évaluation de l'origine. Vous devrez donc vous inscrire ou démarrer Chrome avec un indicateur de ligne de commande si vous souhaitez l'essayer. Pour en savoir plus, cliquez ici.

Nouveautés

Tout d'abord, il est désormais possible de contrôler quel annulateur d'écho est utilisé en incluant une nouvelle contrainte dans vos appels getUserMedia, par exemple:

echoCancellationType: type

type peut avoir l'une des valeurs suivantes:

  • browser pour utiliser l'implémentation logicielle fournie par le navigateur ; ou
  • system pour utiliser l'implémentation fournie par le système sous-jacent. Il s'agit actuellement de l'une des implémentations sur macOS et Windows.

Si vous ne spécifiez pas de contrainte, Chrome sélectionnera la suppression de l'écho comme d'habitude: si la suppression de l'écho matérielle est disponible, elle sera utilisée, sinon la suppression de l'écho logicielle de Chrome sera utilisée. Sans spécifier la contrainte, Chrome ne choisira jamais l'un des deux systèmes de suppression de l'écho expérimentaux qui font partie de cet essai.

Comme echoCancellationType fonctionne comme n'importe quelle autre contrainte, vous pouvez spécifier system comme valeur idéale et demander à Chrome de l'utiliser s'il est disponible, ou de revenir à browser dans le cas contraire. La valeur echoCancellationType browser est toujours disponible dans Chrome. Pour déterminer quel annulateur d'écho a été sélectionné, vous pouvez appeler getSettings() sur la piste audio getUserMedia et vérifier la valeur du champ echoCancellationType.

Enfin, vous pouvez vérifier les annulateurs d'écho disponibles pour un MediaStreamTrack en appelant getCapabilities() dessus. Toutefois, echoCancellationType n'est pas encore implémenté pour InputDeviceInfo.

Prise en charge de l'annulation de l'écho sous Windows

Nous avons étendu la compatibilité avec la suppression du bruit de fond native à Windows à l'aide du composant DSP de capture vocale. Comme pour la suppression de l'écho macOS, nous souhaitons évaluer ses performances et voir s'il est plus performant que notre solution logicielle, ne serait-ce que parce qu'il est placé plus près du matériel audio. Contrairement à macOS, nos tests initiaux sur Windows n'ont pas été très prometteurs. Nous allons continuer à ajuster l'implémentation pour voir si nous pouvons améliorer ses performances. Pour le moment, il est probablement préférable d'éviter d'expérimenter le suppresseur d'écho Windows à plus grande échelle. Essayez-la dans des conditions contrôlées, comme sur votre ordinateur local, mais ne vous attendez pas à ce qu'elle fonctionne parfaitement.

Amélioration de la compatibilité avec l'annulation de l'écho macOS

Lors de l'expérience précédente, l'implémentation macOS ne permettait pas de suivre correctement l'appareil de sortie utilisé. Cela signifie qu'il ne pouvait pas annuler l'écho de tout appareil qui n'était pas l'appareil par défaut de l'ordinateur. Dans de nombreux cas, cela n'aurait pas été un problème, car macOS peut automatiquement changer d'appareil par défaut lorsque des casques, etc. sont branchés ou débranchés. Cependant, cela ne fonctionnera pas correctement dans tous les cas.

Cette fonctionnalité a été ajoutée à Chrome M68 et est implémentée à la fois pour le réducteur d'écho macOS et Windows. L'annulation logicielle de l'écho de Chrome n'a pas été affectée par ce manque de fonctionnalité, car elle utilise un retour en boucle interne pour annuler l'audio de lecture.

Activer le test

Pour obtenir ce nouveau comportement sur votre site, vous devez vous inscrire au test Origin "Compatibilité expérimentale avec l'AEC native". Si vous souhaitez simplement l'essayer en local, vous pouvez activer le test sur la ligne de commande:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Si vous transmettez cet indicateur sur la ligne de commande, la nouvelle contrainte echoCancellationType est disponible dans le monde entier dans Chrome pour la session en cours. À l'aide de cette contrainte, vous pouvez ensuite tester les annulateurs d'écho natifs de votre application, comme décrit ci-dessus. Il s'agit du même indicateur de ligne de commande que dans le test précédent. Sur Chrome M68, il active la nouvelle fonctionnalité. L'activation du nouveau test d'origine n'activera que la nouvelle fonctionnalité. Elle ne déclenchera pas le test précédent dans les anciennes versions de Chrome.

Envoyer des commentaires

Comme pour l'expérience précédente, nous nous intéressons aux performances qualitatives des systèmes de suppression d'écho macOS et Windows, en particulier le premier. Nous aimerions également connaître votre avis sur le fonctionnement de la nouvelle contrainte echoCancellationType en pratique, sa facilité d'utilisation, etc., y compris son inclusion dans getSettings et getCapabilities.

Nous nous intéressons également à la façon dont Chrome interagit avec d'autres applications lors de l'utilisation de ces systèmes de suppression de l'écho natifs, ainsi qu'à tout problème de stabilité ou autre problème lié à l'implémentation.

Si vous essayez cette fonctionnalité, veuillez nous faire part de vos commentaires dans ce bug. Si possible, indiquez le matériel utilisé (version de l'OS, modèle de matériel, micro/casque, etc.). Si vous effectuez des tests à plus grande échelle, des liens vers des statistiques comparatives sur la qualité des appels audio sont les bienvenus, qu'ils soient objectifs ou subjectifs.