Mejora de la calidad de audio de Google Duo con WaveNetEQ

Las llamadas por Internet se han convertido en una parte integral de la vida de millones de personas, por lo que simplifican su flujo de trabajo y se conectan con sus seres queridos. Para transferir una llamada a través de Internet, los datos de la llamada se dividen en pequeños fragmentos llamados "paquetes". Los paquetes pasan a través de la red desde el remitente al destinatario, donde se recogen para recibir una transmisión continua de video y audio. Sin embargo, a menudo los paquetes llegan al destinatario en el orden incorrecto y en el momento equivocado; esto generalmente se llama jitter.(temblor) - o completamente perdido. Tales problemas reducen la calidad de las llamadas, ya que el destinatario debe tratar de llenar los vacíos, y esto afecta seriamente tanto el audio como el video. Por ejemplo, el 99% de las llamadas a través de Google Duo experimentan pérdida de paquetes, jitter excesivo o latencia de red. De estos, el 20% de las llamadas pierden más del 3% de los datos de audio debido a problemas de red, y el 10% de las llamadas pierden más del 8% de los datos.


Diagrama de problema de red simplificado

Para que la comunicación en tiempo real sea más confiable, debe tratar de alguna manera los paquetes necesarios que no han llegado al destinatario. Por ejemplo, si no proporciona una señal de audio continua, escuchará interrupciones y tartamudeos, pero no puede llamarla una solución ideal para intentar repetir la misma señal una y otra vez; esto provocará artefactos y reducirá la calidad general de la llamada. La tecnología para manejar la situación con la ausencia de paquetes se llama "ocultación de pérdida de paquetes" (PLC). El módulo PLC del receptor es responsable de crear audio (o video) que llena las interrupciones causadas por la pérdida de paquetes, fuertes fluctuaciones o problemas de red, problemas que en cualquier caso conducen a la falta de datos necesarios.

Para hacer frente a estos problemas de audio, presentamos un nuevo sistema PLC llamado WaveNetEQ en Duo. Este es un modelo generativo basado en la tecnología WaveRNN de DeepMind , capacitado en una gran cantidad de datos del habla para complementar de manera realista los segmentos del habla. Ella es capaz de sintetizar completamente la señal de sonido de los fragmentos de discurso que faltan. Dado que las llamadas a Duo se someten a un cifrado de extremo a extremo, todo el procesamiento debe realizarse en el propio dispositivo. El modelo WaveNetEQ es lo suficientemente rápido para un teléfono, al tiempo que ofrece una excelente calidad de audio y un PLC con un sonido más natural en comparación con otros sistemas existentes.

Nuevo sistema PLC para Duo


Al igual que muchos otros programas de comunicación basados ​​en la web, Duo se basa en el proyecto de código abierto WebRTC . Para ocultar las consecuencias de la pérdida de paquetes, el componente del sistema NetEQ utiliza métodos de procesamiento de señales que analizan el habla y producen continuidad continua; esto funciona bien para pequeñas pérdidas (hasta 20 ms), pero comienza a sonar mal cuando la pérdida de paquetes conduce a interrupciones de comunicación de 60 ms o más largo. En tales casos, el habla se vuelve similar al habla repetitiva de un robot; desafortunadamente, este sonido característico es bien conocido por muchos fanáticos de hacer llamadas por Internet.

Para mejorar la calidad del procesamiento de pérdida de paquetes, reemplazamos NetEQ PLC con una versión modificada de WaveRNN. Esta es una red neuronal recurrente diseñada para la síntesis del habla, que consta de dos partes: redes neuronales autorregresivas y condicionadas. La red neuronal autorregresiva es responsable de la continuidad de la señal y produce una estructura de habla a corto y mediano plazo. En el proceso de su operación, cada fragmento generado depende de los resultados anteriores de la red. Una red neuronal condicionada afecta el autorregresivo, de modo que produce una señal de audio correspondiente a datos entrantes más lentos.

Sin embargo, WaveRNN, al igual que su predecesor, WaveNet, fue creado con el objetivo de convertir texto a voz (texto a voz, TTS). Dado que WaveRNN es un modelo TTS, se le brinda información sobre lo que debe decirse y cómo. Una red de aire acondicionado recibe directamente esta información en la entrada en forma de fonemas que componen la palabra y las características de la prosodia (información no textual como tono o entonación). En cierto sentido, una red con aire acondicionado es capaz de "mirar hacia el futuro" y luego redirigir la red autorregresiva hacia sus sonidos correspondientes. En el caso del sistema PLC y la comunicación en tiempo real, no tendremos ese contexto.

Para crear un sistema PLC funcional, debe extraer el contexto del discurso actual (es decir, del pasado) y generar un sonido aceptable para su continuación. Nuestra solución, WaveNetEQ, hace ambas cosas. Utiliza una red autorregresiva, que continúa sonando en caso de pérdida de paquetes, y una red neuronal condicionada que simula síntomas a largo plazo, como las características de la voz. El espectrograma de la señal de audio anterior se alimenta a la entrada de la red neuronal condicionada, de la que se extrae una cantidad limitada de información que describe el contenido de prosodia y texto. Esta información concentrada se alimenta a una red neuronal autorregresiva, combinándola con audio reciente para predecir el siguiente fragmento de sonido.

Esto es ligeramente diferente del procedimiento que seguimos durante el entrenamiento WaveNetEQ. Luego, la red neuronal autorregresiva recibió una muestra de sonido real como entrada para el siguiente paso, en lugar de utilizar la muestra anterior. En dicho proceso, conocido como forzamiento de maestros, se garantiza que el modelo aprende información valiosa incluso en las primeras etapas de la capacitación, cuando sus predicciones son de baja calidad. Cuando el modelo está completamente entrenado y se usa en llamadas de audio o video, el entrenamiento impuesto se usa solo para "calentar" el modelo en la primera muestra, y después de eso ya recibe su propia salida.


Arquitectura WaveNetEQ. Durante la operación de una red neuronal autorregresiva, la “calentamos” a través del entrenamiento con imposición. Después de eso, ella ya tiene su propia salida a la entrada. Se utiliza un espectrograma de frecuencia pequeña de secciones largas de audio como entrada para una red neuronal con aire acondicionado.

Este modelo se aplica a los datos de audio en un buffer Duo jitter. Cuando, después de la pérdida de paquetes, se reanuda la comunicación y la señal de audio real continúa llegando, combinamos cuidadosamente las transmisiones de audio sintéticas y reales. Para componer mejor estas dos señales, el modelo genera un poco más de salida de lo necesario, y luego realiza una transición suave de una a la otra. Esto hace que la transición sea suave y prácticamente silenciosa.


Simulación de eventos de PLC en una transmisión de audio en una ventana deslizante de 60 ms. La línea azul es audio real, incluidas las partes pasadas y futuras del PLC. En cada medida, la línea naranja representa el audio sintético que el sistema WaveNetEQ predeciría si el sonido se cortara a lo largo de la línea gris vertical.

Pérdida de paquete de 60 ms

[ Nota perev.: los ejemplos de audio son tan torpes en apariencia, ya que el editor Habr no proporciona la capacidad de incrustar archivos de audio. Así es como se ve mp4 con un audio, sin una imagen. ]

NetEQ


WaveNetEQ


NetEQ


WaveNetEQ


120 ms de

pérdida de paquetes NetEQ


WaveNetEQ


NetEQ


WaveNetEQ


Garantizamos confiabilidad


Uno de los factores importantes a tener en cuenta en el PLC es la capacidad de la red neuronal para adaptarse a las señales entrantes variables, por ejemplo, cuando hay varias personas que hablan o cuando cambia el ruido de fondo. Para garantizar la confiabilidad del modelo para una amplia gama de usuarios, capacitamos a WaveNetEQ en un conjunto de datos de voz tomados de más de 100 personas diferentes que hablan 48 idiomas diferentes. Esto permitió que el modelo aprendiera las características generales del habla humana, y no las características de un lenguaje en particular. Para garantizar el funcionamiento de WaveNetEQ en caso de ruido de fondo, cuando, por ejemplo, responde una llamada mientras está en un tren o en un café, complementamos los datos mezclándolos con el ruido de fondo de una extensa base de datos.

Y aunque nuestro modelo es capaz de aprender cómo continuar de manera plausible su discurso, solo funciona por cortos períodos de tiempo: puede terminar las sílabas, pero no puede predecir palabras. En el caso de pérdida de paquetes durante largos períodos de tiempo, disminuimos gradualmente el volumen y, después de 120 ms, el modelo produce solo silencio. Además, para garantizar que el modelo no produzca sílabas falsas, examinamos las muestras de sonido de WaveNetEQ y NetEQ utilizando la API Google Cloud Speech-to-Texty descubrió que el modelo prácticamente no cambia el porcentaje de errores en el texto resultante, es decir, el número de errores que ocurren durante el reconocimiento de voz. Experimentamos con WaveNetEQ en Duo, y su uso impactó positivamente en la calidad de la llamada y la experiencia del usuario. WaveNetEQ ya funciona en todas las llamadas de Duo en los teléfonos Pixel 4, y ahora lo estamos implementando en otros teléfonos.

All Articles