Saltar al contenido principal

Detección de Actividad de Voz

Streaming Sound Wave, junto con sus tipos derivados como Capturable Sound Wave, admite la Detección de Actividad de Voz (VAD). VAD filtra los datos de audio entrantes para llenar el búfer interno solo cuando se detecta voz.

El plugin ofrece dos implementaciones de VAD:

La implementación predeterminada usa libfvad, una biblioteca ligera de detección de actividad de voz que funciona de manera eficiente en todas las plataformas y versiones de motor compatibles con Runtime Audio Importer.

Uso Básico

Para habilitar VAD después de crear una onda de sonido, utiliza la función ToggleVAD:

Toggle VAD node

Después de habilitar VAD, puedes restablecerlo en cualquier momento:

Reset VAD node

Configuración VAD predeterminada

Al usar el proveedor de VAD predeterminado, puede ajustar su agresividad cambiando el modo de VAD:

Set VAD Mode node

El parámetro mode controla cuán agresivamente el VAD filtra el audio. Valores más altos son más restrictivos, lo que significa que es menos probable que reporten falsos positivos pero podrían perder algo de voz.

Proveedores VAD

Después de habilitar VAD con la función ToggleVAD, puedes elegir entre diferentes proveedores de detección de actividad de voz para adaptarse a tus necesidades. El proveedor predeterminado está integrado, mientras que proveedores adicionales como Silero VAD están disponibles a través de complementos de extensión.

Set VAD Provider node

Obteniendo el proveedor VAD actual

Puedes recuperar el proveedor VAD actualmente asignado a una onda de sonido en streaming usando la función GetVADProvider. Esto es útil cuando necesitas acceder a funcionalidad específica del proveedor, como los ajustes de umbral de voz del Silero VAD, sin tener que mantener una referencia separada.

Get VAD Provider node

Para acceder a características específicas del proveedor, convierta el proveedor devuelto al tipo deseado. Por ejemplo, para acceder a la funcionalidad específica de Silero VAD:

Get VAD Provider Cast To Silero node

Extensión Silero VAD

Silero VAD proporciona una detección de habla más precisa utilizando redes neuronales. Para usarlo:

  1. Asegúrate de que el complemento Runtime Audio Importer ya esté instalado en tu proyecto.

  2. Para UE 5.5 y versiones anteriores: Antes de descargar el plugin de extensión Silero VAD, asegúrate de que NNERuntimeORT esté deshabilitado en tu proyecto. Tener NNERuntimeORT habilitado podría causar bloqueos al utilizar Silero VAD en estas versiones del motor debido a conflictos.

  3. Descargue el complemento de extensión Silero VAD desde aquí

  4. Extrae la carpeta del archivo descargado en la carpeta Plugins de tu proyecto (crea esta carpeta si no existe)

  5. Para UE 5.6 y versiones posteriores: Edita el archivo RuntimeAudioImporterSileroVAD.uplugin para agregar la dependencia NNERuntimeORT. En el campo "Plugins", después de la inclusión de RuntimeAudioImporter, agrega:

    ,
    {
    "Name": "NNERuntimeORT",
    "Enabled": true
    }
  6. Recompila tu proyecto (esta extensión requiere un proyecto C++)

important
  • El VAD predeterminado funciona con 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, 5.7 y 5.8)

  • Silero VAD soporta Unreal Engine 4.27 y todas las versiones de UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 y 5.8)

  • UE 5.5 y anteriores: NNERuntimeORT debe desactivarse antes de usar Silero VAD para evitar fallos debido a conflictos de complementos. En UE 5.3 específicamente, NNERuntimeORTCpu y NNERuntimeORTGpu también deben desactivarse.

  • Requisito de UE 5.6+: A partir de Unreal Engine 5.6, la extensión Silero VAD necesita que la dependencia del plugin NNERuntimeORT se agregue manualmente al archivo .uplugin.

  • Silero VAD está disponible para Windows, Linux, Mac, Android (incluyendo Meta Quest) y iOS

  • Esta extensión se proporciona como código fuente y requiere un proyecto C++ para su uso.

  • Para más información sobre cómo construir plugins manualmente, consulte el tutorial de Creación de Plugins

Una vez instalado, puedes seleccionarlo como tu proveedor VAD usando la función SetVADProvider con el proveedor de clase Silero.

Umbral de voz

El proveedor Silero VAD expone un parámetro Speech Threshold que controla la puntuación de confianza mínima (de la salida de probabilidad de voz de la red neuronal) necesaria para considerar un segmento de audio como voz. Puedes configurarlo utilizando la función SetSpeechThreshold, disponible después de recuperar el proveedor con GetVADProvider y hacer un casting al tipo de proveedor Silero VAD.

Set Speech Threshold node

SetSpeechThreshold devuelve true si el umbral se aplicó correctamente, y false en caso contrario (por ejemplo, si el valor está fuera del rango válido).

Un umbral más alto hace que la detección sea más conservadora: reduce los falsos positivos del ruido de fondo, pero también puede pasar por alto el habla más baja o menos clara. Un umbral más bajo hace que la detección sea más sensible: capta más habla, pero el riesgo de falsos positivos aumenta. El valor predeterminado es 0.5.

detección de inicio y fin de voz

Detección de Actividad de Voz no solo detecta la presencia de voz, sino que también permite detectar el inicio y el final de la actividad de voz. Esto es útil para desencadenar eventos cuando la voz comienza o termina durante la reproducción o captura.

Puedes personalizar la sensibilidad de la detección de inicio y final del habla ajustando parámetros como la duración mínima del habla y la duración del silencio. Estos parámetros ayudan a afinar la detección para evitar falsos positivos, como captar ruidos breves o pausas demasiado cortas entre el habla.

Duración mínima del habla

El parámetro Duración mínima de voz establece la cantidad mínima de actividad de voz continua requerida para desencadenar un evento de inicio de habla. Esto ayuda a filtrar ruidos breves que no deberían considerarse habla, para asegurar que solo se reconozca la actividad de voz sostenida. El valor predeterminado de Duración mínima de voz es 300 milisegundos.

Set Minimum Speech Duration node

Duración del silencio

El parámetro Duración del silencio establece la duración del silencio necesaria para activar un evento de finalización del habla. Esto evita que la detección de voz termine prematuramente durante las pausas naturales entre palabras u oraciones. El valor predeterminado de Duración del silencio es 500 milisegundos.

Set Silence Duration node

Vinculación a delegados de voz

Puedes vincularte a delegados específicos cuando el habla comienza o termina. Esto es útil para desencadenar un comportamiento personalizado basado en la actividad del habla, como iniciar o detener el reconocimiento de texto, o ajustar el volumen de otras fuentes de audio.

Bind Event To On Speech Started Bind Event To On Speech Ended

Comparación de proveedores de VAD

VAD por defecto (libfvad)

Ventajas:

  • Ligero y eficiente
  • Funciona en todas las plataformas
  • Uso mínimo de recursos
  • Adecuado para dispositivos móviles y de bajo consumo

Lo mejor para:

  • Detección de voz simple en entornos tranquilos
  • Aplicaciones móviles
  • Proyectos donde el rendimiento es una prioridad
  • Cuando se requiere soporte universal de plataformas