Detección de actividad de voz
Streaming Sound Wave, junto con sus tipos derivados como Capturable Sound Wave, soporta la Detección de Actividad de Voz (VAD). VAD filtra los datos de audio entrantes para llenar el buffer interno solo cuando se detecta la voz. Esta característica se implementa usando libfvad.
Para habilitar VAD después de crear la onda de sonido, use la función correspondiente.
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
StreamingSoundWave->ToggleVAD(true);
Una vez que VAD está habilitado, puedes configurar el modo VAD o reiniciar el VAD según sea necesario. Estas funciones deben llamarse solo cuando VAD está habilitado.
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Set the VAD mode
StreamingSoundWave->SetVADMode(ERuntimeVADMode::VeryAggressive);
// Reset the VAD
StreamingSoundWave->ResetVAD();
Detección de Inicio y Fin del Habla
La Detección de Actividad de Voz no solo detecta la presencia del habla, sino que también permite detectar el inicio y el fin de la actividad del habla. Esto es útil para desencadenar eventos cuando el habla comienza o termina durante la reproducción o captura.
Puedes personalizar la sensibilidad de la detección de inicio y fin 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 los discursos.
Duración Mínima del Habla
El parámetro de Duración Mínima del Habla establece la cantidad mínima de actividad de voz continua requerida para activar un evento de inicio del habla. Esto ayuda a filtrar ruidos breves que no deberían considerarse habla, asegurando que solo se reconozca la actividad de voz sostenida. El valor predeterminado para la Duración Mínima del Habla es de 300 milisegundos.
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Set the minimum speech duration
StreamingSoundWave->SetMinimumSpeechDuration(200);
Duración del Silencio
El parámetro de Duración del Silencio establece la duración de silencio necesaria para desencadenar un evento de finalización del habla. Esto evita que la detección de habla termine prematuramente durante pausas naturales entre palabras o oraciones. El valor predeterminado para Duración del Silencio es 500 milisegundos.
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Set the silence duration
StreamingSoundWave->SetSilenceDuration(700);
Vínculo a Delegados de Voz
Puede vincular a delegados específicos cuando el habla comienza o termina. Esto es útil para desencadenar un comportamiento personalizado basado en la actividad de habla, como iniciar o detener el reconocimiento de texto, o ajustar el volumen de otras fuentes de audio.
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Bind to the OnSpeechStartedNative delegate
StreamingSoundWave->OnSpeechStartedNative.AddWeakLambda(this, [this]()
{
// Handle the result when speech starts
});
// Bind to the OnSpeechEndedNative delegate
StreamingSoundWave->OnSpeechEndedNative.AddWeakLambda(this, [this]()
{
// Handle the result when speech ends
});