Maggiore cancellazione dell'eco nativo

Continuiamo dall'esperimento precedente e in Chrome M68, abbiamo aggiunto un vincolo sperimentale MediaStreamTrack per controllare di cancellazione dell'eco in uso, è stato aggiunto il supporto di un dispositivo di cancellazione dell'eco nativo Windows e la funzionalità di cancellazione dell'eco nativa è stata migliorata macOS. Come in precedenza, tutto questo è dietro una prova dell'origine, quindi dovrai registrarti o avviare Chrome con un flag della riga di comando, se vuoi provarlo. Per ulteriori informazioni informazioni, vedi sotto.

Novità

Innanzitutto, ora è possibile controllare quale dispositivo di cancellazione dell'eco viene Utilizzato includendo un nuovo vincolo nelle chiamate getUserMedia, ad esempio:

echoCancellationType: type

dove type può essere uno dei seguenti:

  • browser per usare l'implementazione software fornita dal browser; o
  • system per utilizzare l'implementazione fornita dall'entità di un sistema operativo completo. Attualmente, questa è una delle implementazioni su macOS e Windows.

Se non mantieni il vincolo, Chrome selezionerà la cancellazione dell'eco in modo simile ha sempre: se è presente la cancellazione dell'eco hardware, verrà usata, altrimenti Lo farà il software di cancellazione dell'eco di Chrome. Senza specificare il vincolo, Chrome non sceglierà mai uno dei due cancelli sperimentali dell'eco che fanno parte di questa prova.

Poiché echoCancellationType funziona come qualsiasi altro vincolo, è possibile specificare system come valore ideale e chiedere a Chrome di utilizzarlo, se disponibile oppure torna a browser. Il valore echoAnnullationType di browser è sempre disponibili in Chrome. Per capire quale cancellatore eco è stato scelto, puoi chiamare getSettings() sulla traccia audio getUserMedia e controllare il valore di il campo echoCancellationType.

Infine, puoi controllare quali dispositivi di cancellazione dell'eco sono disponibili per un MediaStreamTrack chiamando il numero getCapabilities(). Tuttavia, echoCancellationType non è ancora implementato per InputDeviceInfo.

Supporto della cancellazione eco in Windows

Abbiamo esteso il supporto nativo della cancellazione dell'eco per includere Windows utilizzando DSP Voice Capture di strumento di authoring. Come per macOS Echo Canceller, vogliamo valutarne le prestazioni e capire se in alcuni casi funziona meglio rispetto alle nostre soluzione software, se solo per il posizionamento più vicino all'hardware audio. Al contrario di macOS, i nostri test iniziali su Windows non sono stati molto promettente. Continueremo a modificare l'implementazione per vedere se è possibile per migliorare le prestazioni. Per ora, probabilmente è meglio evitare di sperimentare con Cancellatore echo Windows su scala più ampia. Fai una prova nelle impostazioni controllate, ad esempio sulla tua macchina locale, ma non aspettarti che funzioni in modo impeccabile.

Supporto migliorato per la cancellazione dell'eco in macOS

Durante l’esperimento precedente, l’implementazione di macOS non era in grado di tenere traccia in modo corretto del dispositivo di output utilizzato. Ciò significava che sarebbe stato impossibile annullare l'eco da un dispositivo non predefinito del computer dispositivo. In molti casi, questo potrebbe non essere un problema, dato che macOS può il passaggio automatico tra dispositivi predefiniti quando sono collegate cuffie e altri dispositivi non è collegato alla corrente. Tuttavia, non funzionerebbe correttamente in tutti i casi.

Questa funzionalità è stata aggiunta a Chrome M68 ed è implementata per entrambe le versioni Annullatore echo per macOS e Windows. Il software di cancellazione dell'eco del software di Chrome non è stato interessati da questa mancanza di funzionalità, in quanto utilizza un loopback interno per l'audio del playout per annullare.

Come attivare l'esperimento

Per applicare questo nuovo comportamento sul tuo sito, devi registrarti al programma di assistenza sperimentale per AEC nativa" Prova dell'origine. Se vuoi solo provarlo localmente, l'esperimento può essere abilitato dalla riga di comando:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Il passaggio di questo flag alla riga di comando rende il nuovo echoCancellationType vincolo disponibile a livello globale in Chrome per la sessione corrente. Utilizzo di questo di eco, puoi quindi testare i sistemi di cancellazione dell'eco nativi nella tua app, descritti sopra. Si tratta dello stesso flag della riga di comando della prova precedente; attivo In Chrome M68 verranno attivate le nuove funzionalità. Abilitazione della nuova prova dell'origine attiverà solo la nuova funzionalità, non attiverà la precedente nelle versioni precedenti di Chrome.

Invio di feedback in corso...

Come per l'esperimento precedente, ci interessa il rendimento qualitativo degli canceller echo di macOS e Windows; principalmente il primo. Vorremmo anche come feedback sull'efficacia del nuovo vincolo echoCancellationType in pratica, la facilità di utilizzo e così via. È compresa l'inclusione getSettings e getCapabilities.

Ci interessa anche il modo in cui Chrome interagisce con altre applicazioni quando utilizza a cancellazione dell'eco nativi, nonché eventuali problemi di stabilità con l'implementazione.

Se stai provando questo approccio, invia il tuo feedback in questo bug. Se possibile, includi l'hardware utilizzato (versione del sistema operativo, modello hardware, microfono / cuffie / ecc.). Se esegui più esperimenti su larga scala, il link le statistiche comparative sulla qualità delle chiamate audio sono apprezzate; se l'obiettivo o soggettivi.