Saltar al contenido principal

Cancelación de Eco Acústico

Streaming Sound Wave, junto con sus tipos derivados como Capturable Sound Wave, admite la Cancelación de Eco Acústico (AEC). El AEC elimina el eco del audio del micrófono capturado causado por la reproducción de una señal de render (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 mediante la implementación WebRTC AEC3, disponible como un plugin de extensión ligero que solo incluye el código relevante de AEC3. WebRTC AEC3 es un cancelador de eco acústico de alta calidad ampliamente utilizado en aplicaciones de comunicación en tiempo real. Modela la trayectoria acústica entre los altavoces y el micrófono para restar el eco de la señal capturada.

Instalación

Para usar la 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 es compatible con todas las versiones del motor soportadas por 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, 5.7 y 5.8)
  • Esta extensión se proporciona como código fuente y requiere un proyecto C++ para usarse
  • WebRTC AEC3 está disponible para Windows, Linux, Mac, Android (incluyendo Meta Quest) e iOS
  • Para más información sobre cómo compilar 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 onda de sonido de streaming/capturable
  2. Configurar el tamaño de fragmento de render en la onda de sonido de render para entrega de cuadros de 10 ms
  3. Vincular la onda de sonido de render cuyo audio se usará para cancelar el eco de la señal de captura

Habilitando AEC

Para habilitar AEC después de crear una onda de sonido de streaming, 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 render 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, así que vale la pena elegir estos valores deliberadamente en lugar de dejar que el remuestreo lo haga.

Nodo Toggle AEC

Puede comprobar si AEC está habilitado actualmente:

Nodo Is AEC Enabled

Configurando el Tamaño del Fragmento de Render

WebRTC AEC3 requiere que el audio se procese en fragmentos de 10 ms. Para asegurar que la onda de sonido de renderización entregue datos de audio en el tamaño de cuadro correcto, utilice la función SetNumSamplesPerChunk en la renderización 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

Vinculando el Sound Wave de Renderizado

Después de habilitar AEC y configurar el tamaño del fragmento, vincule el Sound Wave de renderizado cuyo audio se utilizará para identificar y eliminar el eco de la señal de captura. Este suele ser el Sound Wave que se reproduce a través de los altavoces y que el micrófono podría captar:

Vincular AEC al nodo de reproducción de Sound Wave

Para desvincular la onda de sonido renderizada:

Desvincular AEC del nodo de reproducción de Sound Wave

Configuración adicional

Retardo de transmisión

Puede establecer el retardo de transmisión estimado (en milisegundos) entre las rutas de audio de renderizado y captura. Esto tiene en cuenta la latencia del hardware y del sistema, aunque WebRTC AEC3 puede estimarlo automáticamente en muchos casos:

Set AEC Stream Delay node

Restablecer AEC

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

Restablecer nodo AEC

tip

WebRTC AEC3 admite frecuencias de muestreo de 8000, 16000, 32000 y 48000 Hz. El audio no coincidente se remuestrea automáticamente, pero esto conlleva una sobrecarga de rendimiento. Para obtener la mejor calidad y rendimiento, use 48000 Hz y haga coincidir la configuración de audio real de los flujos de captura y reproducción.