Meer native echo-onderdrukking

We gaan verder op het vorige experiment en hebben in Chrome M68 een experimentele MediaStreamTrack beperking toegevoegd om te bepalen welke echo-onderdrukker wordt gebruikt, ondersteuning toegevoegd voor een eigen echo-onderdrukker op Windows en de functionaliteit van de eigen echo-onderdrukker verbeterd op macOS. Net als voorheen bevindt dit zich allemaal achter een Origin-proefversie , dus u moet zich aanmelden of Chrome starten met een opdrachtregelvlag als u het wilt uitproberen. Zie hieronder voor meer informatie.

Wat is er nieuw?

Eerst en vooral is het nu mogelijk om te bepalen welke echo-onderdrukker wordt gebruikt door een nieuwe beperking op te nemen in uw getUserMedia aanroepen, bijvoorbeeld:

echoCancellationType: type

waarbij type een van de volgende kan zijn:

  • browser om de software-implementatie van de browser te gebruiken; of
  • system om de implementatie van het onderliggende systeem te gebruiken. Momenteel is dit een van de implementaties op macOS en op Windows.

Als u deze beperking weglaat, selecteert Chrome de echo-onderdrukking zoals het altijd heeft gedaan: als er hardware-echo-onderdrukking is, wordt deze gebruikt, anders wordt de software-echo-onderdrukking van Chrome gebruikt. Zonder de beperking op te geven, zal Chrome nooit een van de twee experimentele echo-onderdrukkers kiezen die deel uitmaken van deze proef.

Omdat echoCancellationType net als elke andere beperking werkt, is het mogelijk om system als ideale waarde te specificeren en Chrome dit te laten gebruiken als het beschikbaar is, of anders terug te vallen op de browser . De browser echoCancellationType is altijd beschikbaar in Chrome. Om erachter te komen welke echo-onderdrukker is gekozen, kunt u getSettings() aanroepen op de getUserMedia-audiotrack en de waarde van het veld echoCancellationType controleren.

Ten slotte kunt u controleren welke echo-onderdrukkers beschikbaar zijn voor een MediaStreamTrack door getCapabilities() erop aan te roepen. echoCancellationType is echter nog niet geïmplementeerd voor InputDeviceInfo .

Ondersteuning voor echo-onderdrukking van Windows

We hebben de native ondersteuning voor echo-onderdrukking uitgebreid naar Windows met behulp van de Voice Capture DSP -component. Net als bij de macOS-echo-onderdrukker willen we de prestaties ervan evalueren en kijken of er gevallen zijn waarin deze beter presteert dan onze softwareoplossing, al was het maar omdat hij dichter bij de audiohardware is geplaatst. In tegenstelling tot het geval met macOS waren onze eerste tests op Windows niet erg veelbelovend. We zullen de implementatie blijven aanpassen om te zien of we deze beter kunnen laten presteren. Voorlopig is het waarschijnlijk het beste om niet op grotere schaal te experimenteren met de Windows-echo-onderdrukking. Probeer het uit in gecontroleerde instellingen, zoals op uw lokale computer, maar verwacht niet dat het feilloos werkt!

Verbeterde ondersteuning voor echo-onderdrukking in macOS

Tijdens het vorige experiment ontbrak het de macOS-implementatie aan de mogelijkheid om correct bij te houden welk uitvoerapparaat werd gebruikt. Dit betekende dat het de echo niet kon annuleren van elk apparaat dat niet het standaardapparaat van de computer was. In veel gevallen is dit misschien geen probleem geweest, omdat macOS automatisch van standaardapparaat kan wisselen wanneer headsets, enz. worden aangesloten of losgekoppeld. Het zou echter niet in alle gevallen correct werken.

Deze functionaliteit is toegevoegd aan Chrome M68 en is geïmplementeerd voor zowel de macOS- als Windows-echo-onderdrukker. De software-echo-onderdrukking van Chrome heeft geen last van dit gebrek aan functionaliteit, omdat het een interne loopback gebruikt om de afgespeelde audio te annuleren.

Hoe u het experiment kunt inschakelen

Om dit nieuwe gedrag op uw site te krijgen, moet u zich aanmelden voor de Origin-proefversie "Experimentele ondersteuning voor native AEC". Als je het gewoon lokaal wilt uitproberen, kan het experiment op de opdrachtregel worden ingeschakeld:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Als u deze vlag op de opdrachtregel doorgeeft, wordt de nieuwe beperking echoCancellationType wereldwijd beschikbaar in Chrome voor de huidige sessie. Met behulp van deze beperking kunt u vervolgens de eigen echo-onderdrukkers in uw app testen, zoals hierboven beschreven. Dit is dezelfde opdrachtregelvlag als in de vorige proefversie; op Chrome M68 zal het de nieuwe functionaliteit inschakelen. Als u de nieuwe origin-proefperiode inschakelt, wordt alleen de nieuwe functionaliteit geactiveerd; de vorige proefperiode in oudere versies van Chrome wordt niet geactiveerd.

Feedback indienen

Net als bij het vorige experiment zijn we geïnteresseerd in de kwalitatieve prestaties van de echo-onderdrukkers van macOS en Windows; vooral eerstgenoemde. We willen ook graag feedback over hoe goed de nieuwe beperking echoCancellationType in de praktijk werkt, hoe gemakkelijk deze te gebruiken is, enz. Dit omvat de opname ervan in getSettings en getCapabilities .

We zijn ook geïnteresseerd in de interactie van Chrome met andere applicaties bij het gebruik van deze native echo-onderdrukkers, en in eventuele stabiliteitsproblemen of andere problemen met de implementatie.

Als u dit uitprobeert, geef dan uw feedback op in deze bug . Vermeld indien mogelijk welke hardware is gebruikt (OS-versie, hardwaremodel, microfoon/headset/etc.). Als er op grotere schaal wordt geëxperimenteerd, worden links naar vergelijkende statistieken over de kwaliteit van audiogesprekken op prijs gesteld; Of het nu objectief of subjectief is.