Más cancelación del eco nativo

Continuamos con el experimento anterior y en Chrome M68, agregamos una restricción MediaStreamTrack experimental para controlar qué cancelador de eco se está usando, se agregó compatibilidad con un cancelador de eco nativo en Windows. Además, mejoró la funcionalidad del cancelador de eco nativo en macOS. Como antes, todo esto se encuentra detrás de una prueba de origen, por lo que deberás registrarte o iniciar Chrome con una función experimental de línea de comandos, si deseas probarlo. Para ver más consulta a continuación.

Novedades

En primer lugar, ahora es posible controlar qué cancelador de eco se está recibiendo Se usa incluyendo una nueva restricción en tus llamadas a getUserMedia, p. ej.:

echoCancellationType: type

En el ejemplo anterior, type puede ser uno de los siguientes:

  • browser para usar la implementación de software proporcionada por el navegador. o
  • system para usar la implementación proporcionada por el en un sistema de archivos. Actualmente, esta es una de las implementaciones en macOS y Windows.

Si omites la restricción, Chrome seleccionará el cancelador de eco de esta manera. siempre tiene: si hay cancelación del eco de hardware, se usará; de lo contrario, El cancelador de eco del software de Chrome lo hará. Sin especificar la restricción, Chrome elegiremos nunca uno de los dos canceladores de eco experimentales que forman parte del esta prueba.

Como echoCancellationType funciona como cualquier otra restricción, es posible especificar system como un valor ideal y hacer que Chrome lo use si está disponible De lo contrario, recurrirá al browser. El valor de echoCancellationType browser es siempre disponible en Chrome. Para saber qué cancelador de eco se seleccionó, puedes llamar a getSettings() en la pista de audio getUserMedia y verificar el valor de el campo echoCancellationType.

Por último, puedes comprobar qué canceladores de eco se encuentran disponibles para una MediaStreamTrack llamando a getCapabilities() en él. Sin embargo, echoCancellationType aún no se implementó para InputDeviceInfo.

Compatibilidad con la cancelación del eco de Windows

Ampliamos la compatibilidad del cancelador de eco nativo para incluir a Windows usando DSP de captura de voz este componente. Al igual que con el cancelador de eco de macOS, queremos evaluar su y veamos si hay casos en los que tiene un mejor rendimiento de software, si solo se coloca más cerca del hardware de audio. Al contrario de lo que ocurre con macOS, nuestras pruebas iniciales en Windows no han sido prometedores. Seguiremos ajustando la implementación para ver si podemos obtenerla. para tener un mejor rendimiento. Por ahora, probablemente sea mejor evitar experimentar con el Cancelador de eco de Windows a mayor escala. Pruébalo en entornos controlados, como en tu máquina local, pero no esperes que funcione sin problemas.

Se mejoró la compatibilidad con la cancelación del eco en macOS

Durante el experimento anterior, la implementación de macOS no tenía la capacidad de realizar un seguimiento correcto de qué dispositivo de salida se usó. Esto significa que No se pudo cancelar el eco de ningún dispositivo que no sea el predeterminado de la computadora. dispositivo. En muchos casos, esto podría no haber sido un problema, ya que macOS puede cambiar automáticamente los dispositivos predeterminados cuando los auriculares, etc., están conectados o desconectado. Sin embargo, no funcionaría correctamente en todos los casos.

Esta función se agregó a Chrome M68 y se implementó tanto para Cancelador de eco de macOS y Windows. No se ha habilitado el cancelador de eco del software de Chrome afectado por esta falta de funcionalidad, ya que utiliza un bucle interno para obtener de la reproducción de audio para cancelar.

Cómo habilitar el experimento

Para implementar este nuevo comportamiento en tu sitio, debes registrarte en el programa de "Asistencia experimental" para AEC nativo" Prueba de origen. Si solo quieres probarlo de manera local, el experimento se puede habilitar en la línea de comandos:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Pasar esta marca en la línea de comandos hace que el nuevo echoCancellationType disponibilidad global en Chrome para la sesión actual. Uso de eco, puedes probar los canceladores de eco nativos en tu app, como descrita anteriormente. Esta es la misma marca de línea de comandos que en la prueba anterior. activado En Chrome M68, se habilitará la nueva funcionalidad. Habilitando la nueva prueba de origen Solo activará la funcionalidad nueva y no activará la anterior. de prueba en versiones anteriores de Chrome.

Envía comentarios

Al igual que con el experimento anterior, nos interesa el rendimiento cualitativo de los canceladores de eco de macOS y Windows; principalmente el primero. También podríamos como los comentarios sobre qué tan bien funciona la nueva restricción echoCancellationType práctica, lo fácil que es de usar, etc. Esto incluye su inclusión en getSettings y getCapabilities.

También nos interesa la forma en que Chrome interactúa con otras aplicaciones al usar estos canceladores de eco nativos, así como los problemas de estabilidad u otros problemas con la implementación.

Si estás probando esta función, envía tus comentarios en este error. Si es posible, incluye el hardware usado (versión de SO, modelo de hardware, micrófono, auriculares, etc.). Si realizas más experimentos a gran escala, visita se aprecian las estadísticas comparativas sobre la calidad de las llamadas de audio. si es objetivo o subjetivos.