Mejora de la calidad de audio en Duo con WaveNetEQ



Las llamadas en línea se han convertido en una parte cotidiana de la vida de millones de personas al ayudar a racionalizar su trabajo y conectarlos con sus seres queridos. Para transmitir una llamada a través de Internet, los datos de las llamadas se dividen en fragmentos cortos, llamados paquetes . Estos paquetes se abren paso a través de la red desde el emisor hasta el receptor, donde se vuelven a ensamblar para hacer transmisiones continuas de video y audio. Sin embargo, los paquetes a menudo llegan al otro extremo en el orden incorrecto o en el momento incorrecto, un problema generalmente conocido como jitter , y a veces los paquetes individuales se pueden perder por completo. Problemas como estos conducen a una menor calidad de la llamada, ya que el receptor tiene que tratar de llenar los vacíos, y son un problema generalizado para la transmisión de audio y video. Por ejemplo, el 99% de las llamadas de Google Duo deben lidiar con pérdidas de paquetes, fluctuaciones excesivas o retrasos en la red. De esas llamadas, el 20% pierde más del 3% de la duración total del audio debido a problemas de red, y el 10% de las llamadas pierde más del 8%.
Diagrama simplificado de problemas de red que conducen a la pérdida de paquetes, que el receptor debe contrarrestar para permitir una comunicación confiable en tiempo real.
Para garantizar una comunicación confiable en tiempo real, es necesario lidiar con los paquetes que faltan cuando el receptor los necesita. Específicamente, si no se proporciona audio nuevo de forma continua, los fallos y los huecos serán audibles, pero repetir el mismo audio una y otra vez no es una solución ideal, ya que produce artefactos y reduce la calidad general de la llamada. El proceso de tratar con los paquetes faltantes se llama ocultación de pérdida de paquetes (PLC). El módulo PLC del receptor es responsable de crear audio (o video) para llenar los huecos creados por la pérdida de paquetes, fluctuaciones excesivas o fallas temporales de la red, los cuales resultan en la ausencia de datos.

Para abordar estos problemas de audio, presentamos WaveNetEQ, un nuevo sistema PLC que ahora se utiliza en Duo. WaveNetEQ es un modelo generativo , basado en la tecnología WaveRNN de DeepMind , que se entrena utilizando un gran corpus de datos de voz para continuar de manera realista segmentos cortos de voz que le permiten sintetizar completamente la forma de onda cruda de la falta de voz. Debido a que las llamadas de Duo están encriptadas de extremo a extremo, todo el procesamiento debe realizarse en el dispositivo. El modelo WaveNetEQ es lo suficientemente rápido como para ejecutarse en un teléfono, a la vez que proporciona una calidad de audio de vanguardia y un PLC de sonido más natural que otros sistemas actualmente en uso.

Un nuevo sistema PLC para Duo
Al igual que muchos otros sistemas de comunicación basados en la web, Duo se basa en el proyecto de código abierto WebRTC . Para ocultar los efectos de la pérdida de paquetes, el componente NetEQ de WebRTC utiliza métodos de procesamiento de señales, que analizan el habla y producen una continuación suave que funciona muy bien para pequeñas pérdidas (20 ms o menos), pero no suena bien cuando el número de paquetes faltantes conduce a huecos de 60 ms o más. En esos últimos casos, el discurso se vuelve robótico y repetitivo, un sonido característico que desafortunadamente es familiar para muchas personas que llaman por Internet.

Para gestionar mejor la pérdida de paquetes, reemplazamos el componente NetEQ PLC con una versión modificada de WaveRNN, un modelo de red neuronal recurrente para síntesis de voz que consta de dos partes, una red autorregresiva y una red de acondicionamiento. La red autorregresiva es responsable de la continuidad de la señal y proporciona la estructura a corto y mediano plazo para la voz al hacer que cada muestra generada dependa de las salidas anteriores de la red. La red de condicionamiento influye en la red autorregresiva para producir audio que sea consistente con las características de entrada de movimiento más lento.

Sin embargo, WaveRNN, como su predecesor WaveNet , se creó teniendo en cuenta la aplicación de texto a voz (TTS). Como modelo TTS, WaveRNN recibe la información de lo que se supone que debe decir y cómo decirlo. La red de acondicionamiento recibe directamente esta información como entrada en forma de fonemas que componen las palabras y características adicionales de prosodia (es decir, toda la información que no es de texto, como entonación o tono). En cierto modo, la red de acondicionamiento puede "ver el futuro" y luego dirigir la red autorregresiva hacia las formas de onda correctas para que coincida. En el caso de un sistema PLC y comunicación en tiempo real, este contexto no se proporciona.

Para un sistema PLC funcional, uno debe extraer información contextual del discurso actual (es decir, el pasado) y generar un sonido plausible para continuarlo. Nuestra solución, WaveNetEQ, hace ambas cosas al mismo tiempo, usando la red autorregresiva para proporcionar la continuación de audio durante un evento de pérdida de paquetes, y la red de acondicionamiento para modelar características a largo plazo, como las características de voz. El espectrograma de la señal de audio pasada se usa como entrada para la red de acondicionamiento, que extrae información limitada sobre la prosodia y el contenido textual. Esta información condensada se alimenta a la red autorregresiva, que la combina con el audio del pasado reciente para predecir la siguiente muestra en el dominio de forma de onda.

Esto difiere ligeramente del procedimiento que se siguió durante el entrenamiento del modelo WaveNetEQ , donde la red autorregresiva recibe la muestra real presente en los datos de entrenamiento como entrada para el siguiente paso, en lugar de usar la última muestra que produjo. Este proceso, llamado forzamiento de maestros , asegura que el modelo aprenda información valiosa, incluso en una etapa temprana de capacitación cuando sus predicciones aún son de baja calidad. Una vez que el modelo está completamente entrenado y puesto en uso en una llamada de audio o video, el forzamiento del maestro solo se usa para "calentar" el modelo para la primera muestra, y luego su propia salida se devuelve como entrada para el siguiente paso.
Arquitectura WaveNetEQ. Durante la inferencia, "calentamos" la red autorregresiva al forzar al maestro con el audio más reciente. Posteriormente, el modelo se suministra con su propia salida como entrada para el siguiente paso. Se utiliza un espectrograma MEL de una parte de audio más larga como entrada para la red de acondicionamiento.
El modelo se aplica a los datos de audio en el búfer de fluctuación de fase de Duo. Una vez que el audio real continúa después de un evento de pérdida de paquetes, fusionamos a la perfección el flujo de audio sintético y real. Para encontrar la mejor alineación entre las dos señales, el modelo genera un poco más de salida de la requerida y luego se desvanece de una a la otra. Esto hace que la transición sea suave y evita ruidos notables.
Simulación de eventos de PLC en audio en un lapso de movimiento de 60 ms. La línea azul representa la señal de audio real, incluidas las partes pasadas y futuras del evento PLC. En cada paso de tiempo, la línea naranja representa el audio sintético que WaveNetEQ predeciría si el audio se cortara en la línea gris vertical.
60 ms de pérdida de paquetes
NetEQ
WaveNetEQ
NetEQ
WaveNetEQ

120 ms de pérdida de paquetes
NetEQ
WaveNetEQ
NetEQ
WaveNetEQ
Clips de audio: Comparación del sistema PLC predeterminado de WebRTC, NetEQ, con nuestro modelo, WaveNetEQ. Se tomaron clips de audio de LibriTTS y el 10% del audio se soltó en fragmentos de 60 o 120 ms y luego se completó con los sistemas PLC.
Asegurando robustez
Un factor importante durante el PLC es la capacidad de la red para adaptarse a señales de entrada variables, incluidos diferentes altavoces o cambios en el ruido de fondo. Con el fin de garantizar la solidez del modelo en una amplia gama de usuarios, capacitamos a WaveNetEQ en un conjunto de datos de voz que contiene más de 100 hablantes en 48 idiomas diferentes, lo que permite que el modelo aprenda las características del habla humana en general, en lugar de propiedades de un lenguaje específico. Para garantizar que WaveNetEQ pueda lidiar con entornos ruidosos, como contestar su teléfono en la estación de tren o en la cafetería, aumentamos los datos mezclándolos con una amplia variedad de ruidos de fondo.

Si bien nuestro modelo aprende cómo continuar el habla de manera plausible, esto solo es cierto en una escala corta: puede terminar una sílaba pero no predice palabras, per se . En cambio, para pérdidas de paquetes más largas, nos desvanecemos gradualmente hasta que el modelo solo produce silencio después de 120 milisegundos. Para garantizar aún más que el modelo no genere sílabas falsas, evaluamos muestras de WaveNetEQ y NetEQ utilizando la API de Google Cloud Speech-to-Text y no encontramos diferencias significativas en la tasa de error de palabras , es decir, cuántos errores se cometieron al transcribir lo hablado texto.

Hemos estado experimentando con WaveNetEQ en Duo, donde la función ha demostrado un impacto positivo en la calidad de la llamada y la experiencia del usuario. WaveNetEQ ya está disponible en todas las llamadas de Duo en teléfonos Pixel 4 y ahora se está implementando en modelos adicionales.

Agradecimientos
El equipo central incluye a Alessio Bazzica, Niklas Blum, Lennart Kolmodin, Henrik Lundin, Alex Narest, Olga Sharonova de Google y Tom Walters de DeepMind. También nos gustaría agradecer a Martin Bruse (Google), Norman Casagrande, Ray Smith, Chenjie Gu y Erich Elsen (DeepMind) por sus contribuciones.