Detecção de atividade vocal
Streaming Sound Wave, junto com seus tipos derivados como Capturable Sound Wave, suporta Detecção de Atividade Vocal (VAD). O VAD filtra os dados de áudio recebidos para preencher o buffer interno apenas quando voz é detectada. Este recurso é implementado usando libfvad.
Para ativar o VAD após criar a onda sonora, use a função correspondente.
- Blueprint
- C++
// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
StreamingSoundWave->ToggleVAD(true);
Uma vez que o VAD estiver ativado, você pode definir o modo VAD ou redefinir o VAD conforme necessário. Essas funções devem ser chamadas apenas quando o VAD estiver ativado.
- 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();
Detecção de Início e Fim de Fala
A Detecção de Atividade Vocal não apenas identifica a presença de fala, mas também permite detectar o início e o fim da atividade de fala. Isso é útil para acionar eventos quando a fala começa ou termina durante a reprodução ou captura.
Você pode personalizar a sensibilidade da detecção de início e fim de fala ajustando parâmetros como a duração mínima de fala e a duração de silêncio. Esses parâmetros ajudam a refinar a detecção para evitar falsos positivos, como capturar ruídos breves ou pausas muito curtas entre falas.
Duração Mínima de Fala
O parâmetro Duração Mínima de Fala define o tempo mínimo de atividade vocal contínua necessário para acionar um evento de início de fala. Isso ajuda a filtrar ruídos breves que não devem ser considerados como fala, garantindo que apenas atividade vocal sustentada seja reconhecida. O valor padrão para Duração Mínima de Fala é 300 milissegundos.
- 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);
Duração do Silêncio
O parâmetro Duração do Silêncio define o tempo de silêncio necessário para acionar um evento de fim de fala. Isso evita que a detecção de fala termine prematuramente durante pausas naturais entre palavras ou frases. O valor padrão para Duração do Silêncio é 500 milissegundos.
- 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);
Vinculando aos Delegados de Fala
Você pode vincular a delegados específicos quando a fala começa ou termina. Isso é útil para acionar comportamentos personalizados com base na atividade de fala, como iniciar ou parar o reconhecimento de texto, ou ajustar o volume de outras fontes de áudio.
- 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
});