Saltar al contenido principal

Cancelación de Eco Acústico

Streaming Sound Wave, junto con sus tipos derivados como Capturable Sound Wave, admite Cancelación de Eco Acústico (AEC). La AEC elimina el eco del audio capturado por el micrófono causado por la reproducción de una señal de renderizado (por ejemplo, audio que se reproduce a través de altavoces). El resultado es una captura de voz más limpia en escenarios de comunicación en tiempo real.

El plugin proporciona AEC a través de la implementación WebRTC AEC3, disponible como un plugin de extensión ligero que incluye solo el código AEC3 relevante. WebRTC AEC3 es un cancelador de eco acústico de alta calidad ampliamente utilizado en aplicaciones de comunicación en tiempo real. Modela la ruta acústica entre los altavoces y el micrófono para restar el eco de la señal capturada.

Instalación

Para usar Cancelación de Eco Acústico, necesitas instalar el plugin de extensión WebRTC AEC3:

  1. Asegúrate de que el plugin Runtime Audio Importer ya esté instalado en tu proyecto
  2. Descarga el plugin de extensión WebRTC AEC3 desde aquí
  3. Extrae la carpeta del archivo descargado en la carpeta Plugins de tu proyecto (crea esta carpeta si no existe)
  4. Recompila tu proyecto (esta extensión requiere un proyecto C++)
important
  • WebRTC AEC3 admite todas las versiones del motor compatibles con Runtime Audio Importer (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 y 5.7)
  • Esta extensión se proporciona como código fuente y requiere un proyecto C++ para su uso
  • Para obtener más información sobre cómo construir plugins manualmente, consulta el tutorial Building Plugins

Uso Básico

El flujo de trabajo típico de AEC implica tres pasos:

  1. Habilitar AEC en tu streaming/capturable sound wave
  2. Configurar el tamaño del fragmento de renderizado en el render sound wave para la entrega de tramas de 10 ms
  3. Vincular el render sound wave cuyo audio se usará para cancelar el eco de la señal de captura

Habilitando AEC

Para habilitar AEC después de crear un streaming sound wave, usa la función ToggleAEC. Debes especificar la frecuencia de muestreo y el número de canales para el procesador AEC. Si el audio de captura o renderizado entrante no coincide con estos valores, se remuestreará automáticamente; sin embargo, la frecuencia de muestreo configurada aún afecta la calidad (por ejemplo, 48000 Hz producirá una mejor cancelación de eco que 16000 Hz) y el rendimiento, por lo que vale la pena elegir estos valores deliberadamente en lugar de dejarlo al remuestreo.

Nodo Toggle AEC

Puedes verificar si AEC está actualmente habilitado:

Nodo Is AEC Enabled

Configuración del Tamaño del Fragmento de Renderizado

WebRTC AEC3 requiere que el audio se procese en fragmentos de 10 ms. Para garantizar que la onda de sonido de renderizado entregue los datos de audio en el tamaño de cuadro correcto, utilice la función SetNumSamplesPerChunk en la render Imported Sound Wave (la onda de sonido que se reproduce a través de los altavoces).

La fórmula para calcular el número correcto de muestras por fragmento es:

Samples per chunk=SampleRate100\text{Samples per chunk} = \frac{\text{SampleRate}}{100}

Por ejemplo, para audio de 48000 Hz: 48000 / 100 = 480 muestras por fragmento.

Nodo Set Num Samples Per Chunk

Vinculación de la Onda de Sonido de Renderizado

Después de habilitar AEC y configurar el tamaño del fragmento, vincula la onda de sonido de renderizado cuyo audio se utilizará para identificar y eliminar el eco de la señal de captura. Esta es típicamente la onda de sonido que se reproduce a través de los altavoces y que el micrófono podría captar:

Nodo Bind AEC To Sound Wave Playback

Para desvincular la onda de sonido de renderizado:

Nodo Unbind AEC From Sound Wave Playback

Configuración Adicional

Retraso del Stream

Puedes configurar el retraso estimado del stream (en milisegundos) entre las rutas de audio de renderizado y captura. Esto compensa la latencia del hardware y del sistema, aunque WebRTC AEC3 puede estimar esto automáticamente en muchos casos:

Nodo Set AEC Stream Delay

Restablecer AEC

Puedes restablecer el estado interno del procesador AEC en cualquier momento, borrando cualquier modelo de eco acumulado:

Nodo Restablecer AEC

tip

WebRTC AEC3 admite frecuencias de muestreo de 8000, 16000, 32000 y 48000 Hz. El audio con frecuencias no coincidentes se remuestrea automáticamente, pero esto conlleva una sobrecarga de rendimiento. Para obtener la mejor calidad y rendimiento, utilice 48000 Hz y haga coincidir la configuración de audio real tanto de las transmisiones de captura como de las de renderizado.