In Chrome 64 testen wir ein neues Verhalten für getUserMedia-Audiostreams, für die die Einschränkung echoCancellation
aktiviert ist. Neu ist, dass bei solchen Streams die Hardware-Rauschunterdrückung für die Dauer des Streams vorübergehend deaktiviert wird. Wir gehen davon aus, dass dadurch die Leistung des Echo-Cancellers verbessert wird. Da diese Funktion experimentell ist, muss sie explizit aktiviert werden. Weitere Informationen finden Sie unten.
Dieses Verhalten wird derzeit nur für bestimmte Eingabegeräte und nur unter macOS unterstützt. Die Unterstützung ist auf Geräte beschränkt, auf denen die Funktion „Reduzierung von Umgebungsgeräuschen“ in den Systemeinstellungen unter Ton umgeschaltet werden kann.
Hintergrund
Eine Echounterdrückung versucht, alle über die Lautsprecher wiedergegebenen Geräusche aus dem Audiosignal zu entfernen, das vom Mikrofon aufgenommen wird. Andernfalls wird das, was Sie als Teilnehmer eines Anrufs sagen, vom Mikrofon der anderen Teilnehmer aufgenommen und dann an Sie zurückgesendet. Sie hören dann ein Echo von sich selbst.
Damit Echos erfolgreich entfernt werden können, muss der Echo-Canceller von WebRTC (der in Chrome verwendet wird) ein möglichst sauberes Audiosignal vom Mikrofon erhalten. Eine Verarbeitung, die vor dem Erreichen des Echo-Cancellers angewendet wird, z. B. die Hardware-Rauschunterdrückung, beeinträchtigt in der Regel die Leistung. Außerdem gibt es bereits eine Software zur Geräuschunterdrückung, aber erst nach der Verarbeitung durch den Echounterdrücker.
Details zum neuen Verhalten
Webentwickler können das neue Verhalten auf ihren Websites aktivieren, indem sie an einem Origin Trial teilnehmen. Endnutzer können die Funktion global aktivieren, indem sie beim Starten von Chrome ein Befehlszeilen-Flag übergeben. Weitere Informationen finden Sie unten.
Wenn diese Option aktiviert ist und eine Webseite getUserMedia aufruft, um Audio von einem Eingabegerät abzurufen, geschieht Folgendes:
Wenn die Einschränkung
echoCancellation
aktiviert ist, wird die Hardware-Rauschunterdrückung für die Dauer des neu erstellten Audiostreams deaktiviert.Da diese Einstellung systemweit gilt, wird sie auf alle Audioeingangsstreams vom selben Gerät (d.h. vom selben Mikrofon) angewendet.
Sobald der letzte Stream geschlossen wird, für den die Hardware-Geräuschunterdrückung deaktiviert werden soll, wird sie wieder aktiviert.
Wenn die Hardware-Rauschunterdrückung bereits deaktiviert war, ändert Chrome den Status nicht.
Wenn getUserMedia aufgerufen wird, ohne dass
echoCancellation
aktiviert ist, nimmt Chrome keine Änderungen an der Hardware-Rauschunterdrückung vor.
Da diese Einstellung auch vom Nutzer gesteuert werden kann, gibt es einige bestimmte Interaktionen mit dem Nutzer:
Wenn Chrome die Hardware-Rauschunterdrückung deaktiviert hat und der Nutzer sie wieder aktiviert, versucht Chrome nicht, sie für diesen Stream noch einmal zu deaktivieren.
Wenn Chrome die Hardware-Rauschunterdrückung deaktiviert hat und der Nutzer sie wieder aktiviert und dann wieder deaktiviert, aktiviert Chrome sie nach Ende des Streams wieder.
Das Verhalten tritt in Kraft, sobald Sie den Test aktivieren. Es sind keine API-Änderungen erforderlich.
Test aktivieren
Damit diese neue Funktion auf deiner Website verfügbar ist, musst du dich für den Origin-Test zur Deaktivierung der Hardware-Rauschunterdrückung registrieren. Wenn Sie es nur lokal ausprobieren möchten, können Sie es auch über die Befehlszeile aktivieren:
chrome --enable-blink-features=DisableHardwareNoiseSuppression
Wenn Sie dieses Flag in der Befehlszeile übergeben, wird die Funktion für die aktuelle Sitzung global aktiviert.
Mit diesem Test möchten wir einige Aspekte bewerten:
Qualitative Unterschiede zwischen der Hardware-Rauschunterdrückung, die aktiviert oder deaktiviert ist.
Wie wirkt sich die Änderung dieser Einstellung in Chrome auf den Endnutzer und andere Software aus, die er möglicherweise verwendet?
Wir sind an Feedback zu beiden Aspekten interessiert. Sind Anrufe mit aktivierter Funktion besser oder schlechter? Gibt es Probleme mit der Implementierung, die zu unerwartetem Verhalten führen? Wenn Sie diese Funktion ausprobieren, geben Sie bitte Feedback zu diesem Fehler. Geben Sie nach Möglichkeit an, welches Mikrofon bzw. Headset verwendet wurde und ob es die Geräuschunterdrückung unterstützt. Bei größeren Tests sind Links zu Vergleichsstatistiken zur Audioanrufqualität hilfreich.