Stärkere native Echounterdrückung

Wir setzen den vorherigen Test fort und haben in Chrome M68 eine experimentelle MediaStreamTrack-Einschränkung hinzugefügt, um zu steuern, welcher Echounterdrücker verwendet wird. Außerdem haben wir die Unterstützung für einen nativen Echounterdrücker unter Windows hinzugefügt und die Funktionalität des nativen Echounterdrückers unter macOS verbessert. Wie bereits erwähnt, ist all dies Teil eines Ursprungstests. Sie müssen sich also registrieren oder Chrome mit einem Befehlszeilen-Flag starten, um es auszuprobieren. Weitere Informationen finden Sie unten.

Das ist neu

In erster Linie ist es jetzt möglich, zu steuern, welcher Echounterdrücker verwendet wird. Dazu fügen Sie Ihren getUserMedia-Aufrufen eine neue Einschränkung hinzu, z. B.:

echoCancellationType: type

Dabei kann type für folgendes stehen:

  • browser, um die vom Browser bereitgestellte Softwareimplementierung zu verwenden, oder
  • system, um die vom zugrunde liegenden System bereitgestellte Implementierung zu verwenden. Derzeit ist dies eine der Implementierungen unter macOS und Windows.

Wenn Sie die Einschränkung weglassen, wählt Chrome den Echounterdrücker wie gewohnt aus: Wenn eine Hardware-Echounterdrückung vorhanden ist, wird sie verwendet, andernfalls der Software-Echounterdrücker von Chrome. Ohne Angabe der Einschränkung wählt Chrome nie einen der beiden experimentellen Echounterdrücker aus, die Teil dieses Tests sind.

Da echoCancellationType wie jede andere Einschränkung funktioniert, können Sie system als idealen Wert angeben und Chrome verwenden, wenn er verfügbar ist, oder andernfalls auf browser zurückgreifen. browser echoCancellationType ist in Chrome immer verfügbar. Wenn Sie herausfinden möchten, welcher Echo-Canceller ausgewählt wurde, können Sie getSettings() auf dem getUserMedia-Audiotrack aufrufen und den Wert des Felds echoCancellationType prüfen.

Schließlich können Sie prüfen, welche Echounterdrückungen für eine MediaStreamTrack verfügbar sind, indem Sie getCapabilities() darauf aufrufen. echoCancellationType ist jedoch noch nicht für InputDeviceInfo implementiert.

Unterstützung der Windows-Echounterdrückung

Wir haben die Unterstützung für die native Echounterdrückung auf Windows mit der Komponente Voice Capture DSP ausgeweitet. Wie beim macOS-Echo-Canceller möchten wir die Leistung bewerten und herausfinden, ob es Fälle gibt, in denen es besser funktioniert als unsere Softwarelösung, wenn es nur näher an der Audiohardware platziert wird. Im Gegensatz zu macOS waren unsere ersten Tests unter Windows nicht sehr vielversprechend. Wir werden die Implementierung weiter optimieren, um die Leistung zu verbessern. Im Moment ist es am besten, den Windows-Echo-Canceller nicht in größerem Maßstab zu testen. Testen Sie es in kontrollierten Umgebungen, z. B. auf Ihrem lokalen Computer, aber erwarten Sie nicht, dass es einwandfrei funktioniert.

Verbesserte Unterstützung der Echounterdrückung unter macOS

Bei dem vorherigen Test konnte mit der macOS-Implementierung nicht korrekt erfasst werden, welches Ausgabegerät verwendet wurde. Das bedeutete, dass es nicht möglich war, den Echo von Geräten zu entfernen, die nicht das Standardgerät des Computers waren. In vielen Fällen war das möglicherweise kein Problem, da macOS das Standardgerät automatisch wechseln kann, wenn Headsets usw. angeschlossen oder getrennt werden. Das funktioniert jedoch nicht in allen Fällen richtig.

Diese Funktion wurde Chrome M68 hinzugefügt und ist sowohl für den macOS- als auch den Windows-Echo-Canceller implementiert. Die Software-Echounterdrückung von Chrome ist von diesem Funktionsausfall nicht betroffen, da sie einen internen Rückkopplungspfad verwendet, um das Abspielen von Audio zu unterdrücken.

Test aktivieren

Damit dieses neue Verhalten auf Ihrer Website aktiviert wird, müssen Sie sich für den Ursprungstest „Experimenteller Support für native AEC“ registrieren. Wenn Sie den Test nur lokal ausprobieren möchten, können Sie ihn über die Befehlszeile aktivieren:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Wenn Sie dieses Flag in der Befehlszeile übergeben, wird die neue echoCancellationType-Einschränkung in Chrome für die aktuelle Sitzung global verfügbar gemacht. Mit dieser Einschränkung können Sie dann die nativen Echounterdrücker in Ihrer App wie oben beschrieben testen. Dies ist dasselbe Befehlszeilen-Flag wie bei der vorherigen Testversion. In Chrome M68 wird damit die neue Funktion aktiviert. Wenn Sie den neuen Test für Ursprünge aktivieren, wird nur die neue Funktion aktiviert. Der vorherige Test wird in älteren Chrome-Versionen nicht ausgelöst.

Feedback senden

Wie beim vorherigen Test interessiert uns die qualitative Leistung der Echounterdrückung unter macOS und Windows, vor allem die von macOS. Wir würden auch gerne wissen, wie gut die neue echoCancellationType-Einschränkung in der Praxis funktioniert und wie einfach sie zu verwenden ist. Das gilt auch für die Einbeziehung in getSettings und getCapabilities.

Wir sind auch daran interessiert, wie Chrome mit anderen Anwendungen interagiert, wenn diese nativen Echounterdrücker verwendet werden, sowie an Stabilitätsproblemen oder anderen Problemen bei der Implementierung.

Wenn Sie diese Funktion ausprobieren, können Sie Ihr Feedback in diesem Fehlerbericht senden. Geben Sie nach Möglichkeit an, welche Hardware verwendet wurde (Betriebssystemversion, Hardwaremodell, Mikrofon/Headset usw.). Bei größeren Tests sind Links zu vergleichenden Statistiken zur Audioanrufqualität hilfreich, unabhängig davon, ob sie objektiv oder subjektiv sind.