Mais cancelamento de eco nativo

Continuando do experimento anterior e no Chrome M68, adicionamos uma restrição experimental MediaStreamTrack para controlar qual cancelador de eco está sendo usado, foi adicionado suporte a um cancelador de eco nativo no Windows, bem como melhoramos a funcionalidade do cancelador de eco nativo no macOS: Como antes, tudo isso está por trás de um teste de origem, então você vai precisar se inscrever ou iniciar o Chrome com uma sinalização de linha de comando, se quiser testá-lo. Para mais mais informações, veja abaixo.

O que há de novo?

Em primeiro lugar, agora é possível controlar qual cancelador de eco está sendo usado incluindo uma nova restrição nas chamadas de getUserMedia, por exemplo:

echoCancellationType: type

em que type pode ser:

  • browser usar a implementação de software fornecida pelo navegador; ou
  • system para usar a implementação fornecida pelo sistema. Atualmente, essa é uma das implementações no macOS e no Windows.

Se você não aplicar a restrição, o Chrome vai selecionar um cancelamento de eco semelhante sempre teve: se houver cancelamento de eco do hardware, ele será usado. Caso contrário, ele será usado. O cancelamento de eco do software do Chrome vai funcionar. Sem especificar a restrição, o Chrome nunca escolherá um dos dois canceladores de eco experimentais que fazem parte do durante o teste.

Como echoCancellationType funciona como qualquer outra restrição, é possível especificar system como um valor ideal e configurar o Chrome para usá-lo, se disponível; ou voltar para o browser, caso contrário. O echoCancelType browser é sempre disponível no Chrome. Para descobrir qual cancelador de eco foi escolhido, pode chamar getSettings() na faixa de áudio getUserMedia e verificar o valor no campo echoCancellationType.

Por fim, é possível verificar quais canceladores de eco estão disponíveis para um MediaStreamTrack chamando getCapabilities() nele. No entanto, echoCancellationType ainda não foi implementado para InputDeviceInfo.

Suporte ao cancelamento de eco do Windows

Ampliamos o suporte ao cancelamento de eco nativo para incluir o Windows usando o DSP de captura de voz componente. Assim como no cancelamento de eco do macOS, queremos avaliar o desempenho e verifique se há casos em que ele tem um desempenho melhor de software, se for apenas para ficar mais perto do hardware de áudio. Ao contrário do caso do macOS, nossos testes iniciais no Windows não foram muito promissores. Vamos continuar ajustando a implementação para tentar resolver o problema. para ter um melhor desempenho. Por enquanto, provavelmente é melhor evitar testar Cancelador de eco do Windows em qualquer escala maior. Teste em configurações controladas, na sua máquina local, mas não espere que funcione perfeitamente.

Melhorias no suporte ao cancelamento de eco do macOS

Durante o experimento anterior, a implementação do macOS não conseguia rastrear corretamente qual dispositivo de saída estava sendo usado. Isso significava que seria não foi possível cancelar o eco de nenhum dispositivo que não seja o padrão do computador dispositivo. Em muitos casos, isso pode não ter sido um problema, já que o macOS pode alternar automaticamente entre dispositivos padrão quando fones de ouvido etc. estiverem conectados ou desconectado. No entanto, ele não funcionaria corretamente em todos os casos.

Essa funcionalidade foi adicionada ao Chrome M68 e foi implementada para os Cancelador de eco do macOS e do Windows. O cancelamento de eco do software do Chrome ainda não foi ser afetado por essa falta de funcionalidade, já que usa um loopback interno para o áudio da reprodução para cancelar.

Como ativar o experimento

Para que esse novo comportamento apareça no seu site, inscreva-se no "Suporte experimental" para AEC nativo" Teste de origem. Se você quiser apenas testá-lo localmente, o pode ser ativado na linha de comando:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Transmitir essa flag na linha de comando torna o novo echoCancellationType disponível globalmente no Chrome para a sessão atual. Usar este restrição, é possível testar os canceladores de eco nativos no aplicativo, descritas acima. Essa é a mesma flag de linha de comando do teste anterior. ativado no Chrome M68, a nova funcionalidade será ativada. Como ativar o novo teste de origem ativará apenas a nova funcionalidade, não acionará a anterior de teste em versões mais antigas do Chrome.

Como passar feedback

Assim como no experimento anterior, estamos interessados no desempenho qualitativo dos canceladores de eco do macOS e do Windows; principalmente o primeiro. Também como feedback sobre o funcionamento da nova restrição echoCancellationType prática, facilidade de uso etc. Isso inclui a inclusão em getSettings e getCapabilities.

Também estamos interessados em como o Chrome interage com outros aplicativos ao usar esses canceladores de eco nativos, além de quaisquer problemas de estabilidade ou outros problemas com a implementação.

Se você estiver testando isso, envie seu feedback neste bug. Se possível, inclua qual hardware foi usado (versão do SO, modelo de hardware, microfone/fone de ouvido etc.). Se você realizar mais experimentos em grande escala, inclua links para estatísticas comparativas da qualidade das chamadas de áudio são apreciadas; seja objetivo ou subjetivos.