Inhabilita la reducción de ruido del hardware

En Chrome 64, estamos probando un comportamiento nuevo para las transmisiones de audio de getUserMedia que tienen habilitada la restricción echoCancellation. Lo novedoso es que estas transmisiones inhabilitarán de forma temporal la reducción de ruido del hardware durante el transcurso de la transmisión. Prevemos que esto mejorará el rendimiento del cancelador de eco. Como esta funcionalidad es experimental, debe activarse de manera explícita; consulta a continuación.

En este punto, este comportamiento solo es compatible con ciertos dispositivos de entrada y solo en macOS. La compatibilidad se limita a los dispositivos que tienen la opción de "reducción de ruido ambiental" que se puede activar o desactivar en el panel Sonido de Preferencias del sistema.

Información general

Un cancelador de eco intenta quitar cualquier sonido reproducido en las bocinas de la señal de audio captada por el micrófono. Sin esto, lo que dices como parte de una llamada se captará mediante el micrófono de las otras partes y, luego, se enviará de vuelta a ti. Escucharás un eco de ti mismo.

Para quitar el eco con éxito, el cancelador de eco de WebRTC (que se usa en Chrome) debe obtener una señal de audio lo más limpia posible del micrófono. El procesamiento que se aplica antes de que el audio llegue al cancelador de eco, como la supresión de ruido de hardware, suele impedir su rendimiento. Además, ya existe una supresión de ruido de software, pero solo después de que el cancelador de eco completa su procesamiento.

Detalles del nuevo comportamiento

Los desarrolladores web pueden habilitar el nuevo comportamiento en sus sitios si aceptan una prueba de origen. Los usuarios finales pueden habilitarla a nivel global pasando una marca de línea de comandos cuando inician Chrome. Para obtener más información, consulta a continuación.

Cuando esta opción está habilitada y una página web llama a getUserMedia para obtener audio de un dispositivo de entrada, sucede lo siguiente:

  • Si se habilita la restricción echoCancellation, la supresión de ruido del hardware se desactivará mientras dure la transmisión de audio recién creada.

  • Dado que esta configuración se aplica a todo el sistema, se aplicará a todas las transmisiones de entrada de audio desde el mismo dispositivo (es decir, el mismo micrófono).

  • Cuando se cierra la última transmisión que quiere desactivar la reducción de ruido de hardware, esta se vuelve a activar.

  • Si la reducción de ruido del hardware ya estaba inhabilitada, Chrome no cambiará su estado.

  • Si se llama a getUserMedia sin que echoCancellation esté habilitado, Chrome no tocará la reducción de ruido del hardware.

Como el usuario puede controlar este parámetro de configuración, existen algunas interacciones específicas con él:

  • Si Chrome desactivó la reducción de ruido del hardware y el usuario la vuelve a activar, Chrome no intentará inhabilitarla para esa transmisión.

  • Si Chrome desactivó la supresión de ruido de hardware, y el usuario la vuelve a activar y, luego, la vuelve a habilitar, una vez que finalice la transmisión, Chrome la volverá a habilitar.

El comportamiento se aplica cuando se habilita el experimento. No es necesario realizar cambios en la API.

Cómo habilitar el experimento

Para obtener este nuevo comportamiento en tu sitio, debes estar registrado en la prueba de origen "Inhabilitar la supresión de ruido del hardware". Si solo quieres probarla de forma local, también puedes habilitarla en la línea de comandos:

chrome --enable-blink-features=DisableHardwareNoiseSuppression

Pasar esta marca en la línea de comandos habilita la función de forma global para la sesión actual.

Existen algunos aspectos que queremos evaluar en este experimento:

  • Diferencias cualitativas, en el campo, entre tener la supresión de ruido de hardware activada y desactivada.

  • ¿Cómo afecta el cambio de este parámetro desde Chrome al usuario final y al software que pueda estar ejecutando?

Nos interesa recibir comentarios sobre ambos aspectos. ¿Las llamadas funcionan mejor o peor con esta función activada? ¿Hay problemas con la implementación que causen comportamientos inesperados? En cualquier caso, si lo estás probando, envíanos comentarios sobre este error. Si es posible, incluye qué micrófono, auriculares, etc. se usaron y si admite la reducción de ruido ambiental. Si realizas más experimentos a gran escala, se aprecian los vínculos a estadísticas comparativas sobre la calidad de la llamada de audio.