Stiamo continuando l'esperimento precedente e in Chrome M68 abbiamo aggiunto un vincolo MediaStreamTrack
sperimentale per controllare quale eliminatore dell'eco viene utilizzato, abbiamo aggiunto il supporto di un eliminatore dell'eco nativo su Windows e abbiamo migliorato la funzionalità dell'eliminatore dell'eco nativo su macOS. Come in precedenza, tutto questo è disponibile nell'ambito di una prova dell'origine, quindi dovrai registrarti o avviare Chrome con un flag della riga di comando per provarlo. Per maggiori informazioni, vedi di seguito.
Novità
Innanzitutto, ora è possibile controllare quale eliminatore di eco viene utilizzato includendo un nuovo vincolo nelle chiamate getUserMedia
, ad esempio:
echoCancellationType: type
dove type
può essere uno dei seguenti:
browser
per utilizzare l'implementazione software fornita dal browser;system
per utilizzare l'implementazione fornita dal sistema di base. Attualmente, questa è una delle implementazioni su macOS e Windows.
Se non specifichi il vincolo, Chrome selezionerà la cancellazione dell'eco come sempre: se è presente la cancellazione dell'eco hardware, verrà utilizzata, altrimenti verrà utilizzata la cancellazione dell'eco software di Chrome. Senza specificare la limitazione, Chrome non sceglierà mai uno dei due eliminatori di eco sperimentali che fanno parte di questa prova.
Poiché echoCancellationType
funziona come qualsiasi altro vincolo, è possibile
specificare system
come valore ideale e consentire a Chrome di utilizzarlo se è disponibile oppure
ricadere su browser
in caso contrario. Il valore browser
echoCancellationType è sempre disponibile in Chrome. Per capire quale eliminatore di eco è stato scelto, puoi chiamare getSettings()
sulla traccia audio getUserMedia e controllare il valore del campo echoCancellationType
.
Infine, puoi controllare quali eliminatori di eco sono disponibili per un
MediaStreamTrack
chiamando getCapabilities()
. Tuttavia,
echoCancellationType
non è ancora implementato per InputDeviceInfo
.
Supporto della cancellazione dell'eco di Windows
Abbiamo esteso il supporto del cancellatore di eco nativo per includere Windows utilizzando il componente DSP di acquisizione vocale. Come per il cancellatore dell'eco di macOS, vogliamo valutarne il rendimento e capire se in alcuni casi funziona meglio della nostra soluzione software, anche solo perché è posizionato più vicino all'hardware audio. A differenza di quanto accaduto su macOS, i nostri test iniziali su Windows non sono stati molto promettenti. Continueremo a perfezionare l'implementazione per vedere se possiamo migliorare il rendimento. Per il momento, è meglio evitare di fare esperimenti con la funzionalità di cancellazione dell'eco di Windows su larga scala. Provalo in ambienti controllati, come sulla tua macchina locale, ma non aspettarti che funzioni perfettamente.
Miglioramento del supporto della cancellazione eco su macOS
Durante l'esperimento precedente, l'implementazione per macOS non era in grado di monitorare correttamente il dispositivo di output in uso. Ciò significa che non sarebbe stato possibile annullare l'eco da nessun dispositivo diverso da quello predefinito del computer. In molti casi, questo potrebbe non essere stato un problema, poiché macOS può cambiare automaticamente i dispositivi predefiniti quando le cuffie e così via vengono collegate o scollegate. Tuttavia, non funzionerebbe correttamente in tutti i casi.
Questa funzionalità è stata aggiunta a Chrome M68 ed è implementata sia per la cancellazione dell'eco su macOS sia su Windows. La funzionalità di cancellazione dell'eco software di Chrome non è stata interessata da questa mancanza di funzionalità, in quanto utilizza un loopback interno per annullare l'audio di riproduzione.
Come attivare l'esperimento
Per applicare questo nuovo comportamento al tuo sito, devi aver effettuato la registrazione per la prova dell'origine "Supporto sperimentale per l'AEC nativo". Se vuoi solo provarlo localmente, l'esperimento può essere attivato sulla riga di comando:
chrome --enable-blink-features=ExperimentalHardwareEchoCancellation
Se passi questo flag nella riga di comando, il nuovo vincolo echoCancellationType
viene reso disponibile a livello globale in Chrome per la sessione corrente. Utilizzando questo vincolo, puoi testare gli eliminatori di eco nativi nella tua app, come descritto sopra. Si tratta dello stesso flag a riga di comando della prova precedente; su Chrome M68 attiverà la nuova funzionalità. L'attivazione della prova della nuova origine attiva solo la nuova funzionalità e non attiverà la prova precedente nelle versioni precedenti di Chrome.
Invio di feedback
Come per l'esperimento precedente, ci interessa il rendimento qualitativo degli eliminatori di eco di macOS e Windows, in particolare del primo. Inoltre, vorremmo ricevere un feedback sul funzionamento del nuovo vincolo echoCancellationType
in pratica, sulla sua facilità d'uso e così via. Ciò include la sua inclusione in getSettings
e getCapabilities
.
Ci interessa anche sapere in che modo Chrome interagisce con altre applicazioni quando utilizza questi eliminatori di eco nativi, nonché eventuali problemi di stabilità o altri problemi con l'implementazione.
Se stai provando questa funzionalità, invia il tuo feedback in questo bug. Se possibile, includi l'hardware utilizzato (versione del sistema operativo, modello hardware, microfono/cuffie e così via). Se esegui esperimenti su larga scala, sono apprezzati i link a statistiche comparative sulla qualità audio delle chiamate, oggettive o soggettive.