En Chrome 64, estamos probando un nuevo comportamiento para las transmisiones de audio de getUserMedia que tienen habilitada la restricción echoCancellation
. La novedad es que esas transmisiones
inhabilitarán temporalmente la supresión de ruido de hardware durante la transmisión. Prevemos que esto mejorará el rendimiento del cancelador de eco. Como esta
funcionalidad es experimental, debe activarse de forma explícita. Consulta a continuación.
Por el momento, 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 activar o desactivar la “reducción de ruido ambiental” en el panel Sonido de Preferencias del sistema.
Segundo plano
Un cancelador de eco intenta quitar cualquier sonido que se reproduce en las bocinas de la señal de audio que capta el micrófono. Sin esto, el micrófono de las otras partes captará lo que digas como una de las partes de una llamada y, luego, te lo enviará. Escucharás un eco de tu voz.
Para quitar el eco de forma correcta, 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. Por lo general, el procesamiento que se aplica antes de que el audio llegue al cancelador de eco, como la supresión de ruido de hardware, impedirá su rendimiento. Además, ya existe una supresión de ruido de software, pero solo después de que el cancelador de eco haya realizado su procesamiento.
Detalles del nuevo comportamiento
Los desarrolladores web pueden habilitar el nuevo comportamiento en sus sitios si habilitan una prueba de origen. Los usuarios finales pueden habilitarlo de forma global pasando una marca de línea de comandos cuando inician Chrome. Para obtener más información, consulta a continuación.
Cuando esto está habilitado y una página web llama a getUserMedia para obtener audio de un dispositivo de entrada, sucede lo siguiente:
Si está habilitada la restricción
echoCancellation
, se apagará la supresión de ruido de hardware durante la transmisión de audio recién creada.Dado que este parámetro de configuración es de todo el sistema, se aplicará a todas las transmisiones de entrada de audio del mismo dispositivo (es decir, el mismo micrófono).
Una vez que se cierra la última transmisión que desea que se desactive la supresión de ruido de hardware, esta se vuelve a activar.
Si la supresión de ruido de hardware ya estaba inhabilitada, Chrome no cambiará su estado.
Si se llama a getUserMedia sin
echoCancellation
habilitado, Chrome no tocará la supresión de ruido de hardware.
Como el usuario también puede controlar este parámetro de configuración, existen algunas interacciones específicas con el usuario:
Si Chrome desactivó la supresión de ruido de hardware y el usuario la vuelve a activar, Chrome no intentará inhabilitarla nuevamente 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 desactivar, Chrome la volverá a habilitar una vez que finalice la transmisión.
El comportamiento se aplica simplemente habilitando el experimento. No se requieren cambios en la API.
Cómo habilitar el experimento
Para obtener este nuevo comportamiento en tu sitio, debes registrarte en la prueba de Origin "Disable Hardware Noise Suppression". Si solo quieres probarlo de forma local, también se puede habilitar en la línea de comandos:
chrome --enable-blink-features=DisableHardwareNoiseSuppression
Si pasas esta marca en la línea de comandos, se habilita la función de forma global para la sesión actual.
Hay algunos aspectos que queremos evaluar con este experimento:
Diferencias cualitativas, en el campo, entre tener la supresión de ruido de hardware activada o desactivada
¿Cómo afecta cambiar este parámetro de configuración desde Chrome al usuario final y a otro software que pueda estar ejecutando?
Nos interesan los comentarios sobre ambos aspectos. ¿Las llamadas son mejores o peores con esta función activada? ¿Hay problemas con la implementación que causan comportamientos inesperados? En cualquier caso, si pruebas esta opción, envía comentarios sobre este error. Si es posible, incluye qué micrófono, auriculares, etcétera, se usaron y si admiten la reducción de ruido ambiental. Si realizas más experimentos a gran escala, se agradecen los vínculos a estadísticas comparativas sobre la calidad de las llamadas de audio.