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; ousystem
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.