Pular para o conteúdo principal

Detecção de Atividade de Voz

Streaming Sound Wave, junto com seus tipos derivados como Capturable Sound Wave, suporta Detecção de Atividade de Voz (VAD). O VAD filtra os dados de áudio recebidos para preencher o buffer interno somente quando a voz é detectada.

O plugin oferece duas implementações de VAD:

A implementação padrão usa libfvad, uma biblioteca leve de detecção de atividade de voz que funciona de forma eficiente em todas as plataformas e versões de engine suportadas pelo Runtime Audio Importer.

Uso Básico

Para ativar o VAD após criar uma sound wave, use a função ToggleVAD:

Toggle VAD node

Após habilitar o VAD, você pode redefini-lo a qualquer momento:

Reset VAD node

Configurações Padrão do VAD

Ao usar o provedor VAD padrão, você pode ajustar sua agressividade alterando o modo VAD:

Set VAD Mode node

O parâmetro mode controla quão agressivamente o VAD filtra o áudio. Valores mais altos são mais restritivos, o que significa que são menos propensos a relatar falsos positivos, mas podem perder alguma fala.

Provedores VAD

Após habilitar o VAD com a função ToggleVAD, você pode escolher entre diferentes provedores de Detecção de Atividade de Voz para atender às suas necessidades. O provedor padrão é integrado, enquanto provedores adicionais, como o Silero VAD, estão disponíveis por meio de plugins de extensão.

Set VAD Provider node

Obtendo o Provedor VAD Atual

Você pode recuperar o provedor VAD atualmente atribuído a uma onda sonora de streaming usando a função GetVADProvider. Isso é útil quando você precisa acessar a funcionalidade específica do provedor, como as configurações de limite de fala do Silero VAD, sem precisar manter uma referência separada por perto.

Get VAD Provider node

Para acessar recursos específicos do provedor, converta o provedor retornado para o tipo desejado. Por exemplo, para acessar a funcionalidade específica do Silero VAD:

Get VAD Provider Cast To Silero node

Extensão Silero VAD

Silero VAD fornece uma detecção de fala mais precisa usando redes neurais. Para usá-lo:

  1. Certifique-se de que o plugin Runtime Audio Importer já esteja instalado no seu projeto

  2. Para UE 5.5 e anteriores: Antes de baixar o plugin de extensão Silero VAD, certifique-se de que o NNERuntimeORT esteja desabilitado em seu projeto. Ter o NNERuntimeORT habilitado pode causar travamentos ao usar o Silero VAD nessas versões do motor devido a conflitos.

  3. Baixe o plugin de extensão Silero VAD aqui

  4. Extraia a pasta do arquivo baixado na pasta Plugins do seu projeto (crie esta pasta se ela não existir)

  5. Para o UE 5.6 e posteriores: Edite o arquivo RuntimeAudioImporterSileroVAD.uplugin para adicionar a dependência NNERuntimeORT. No campo "Plugins", após a inclusão do RuntimeAudioImporter, adicione:

    ,
    {
    "Name": "NNERuntimeORT",
    "Enabled": true
    }
  6. Recompile seu projeto (esta extensão requer um projeto C++)

important
  • O VAD padrão funciona com todas as versões do motor suportadas pelo 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 e 5.8).

  • Silero VAD suporta Unreal Engine 4.27 e todas as versões do UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 e 5.8)

  • UE 5.5 e versões anteriores: O NNERuntimeORT deve ser desabilitado antes de usar o Silero VAD para evitar travamentos devido a conflitos de plug-ins. No UE 5.3, especificamente, o NNERuntimeORTCpu e o NNERuntimeORTGpu também precisam ser desabilitados.

  • Requisito UE 5.6+: A partir do Unreal Engine 5.6, a extensão Silero VAD exige que a dependência do plugin NNERuntimeORT seja adicionada manualmente ao arquivo .uplugin

  • Silero VAD está disponível para Windows, Linux, Mac, Android (incluindo Meta Quest) e iOS

  • Esta extensão é fornecida como código fonte e requer um projeto C++ para ser usada.

  • Para mais informações sobre como compilar plugins manualmente, consulte o tutorial Compilando Plugins

Uma vez instalado, você pode selecioná-lo como seu provedor de VAD usando a função SetVADProvider com o provedor da classe Silero.

Limiar de Fala

O provedor Silero VAD expõe um parâmetro Speech Threshold que controla a pontuação de confiança mínima (da saída de probabilidade de fala da rede neural) necessária para considerar um segmento de áudio como fala. Você pode defini-lo usando a função SetSpeechThreshold, disponível após obter o provedor com GetVADProvider e convertê-lo para o tipo de provedor Silero VAD.

Set Speech Threshold node

SetSpeechThreshold retorna true se o limite foi aplicado com sucesso, e false caso contrário (por exemplo, se o valor estiver fora do intervalo válido).

Um limiar mais alto torna a detecção mais conservadora: reduz os falsos positivos do ruído de fundo, mas também pode perder falas mais baixas ou menos claras. Um limiar mais baixo torna a detecção mais sensível: capta mais falas, mas o risco de falsos positivos aumenta. O valor padrão é 0.5.

Detecção de Início e Fim da Fala

A Detecção de Atividade de Voz não apenas detecta 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 do início e fim da fala ajustando parâmetros como a duração mínima da fala e a duração do silêncio. Esses parâmetros ajudam a ajustar finamente a detecção para evitar falsos positivos, como capturar ruídos breves ou pausas muito curtas entre a fala.

Duração Mínima da Fala

O parâmetro Minimum Speech Duration define a quantidade mínima de atividade contínua de voz necessária para disparar um evento de início de fala. Isso ajuda a filtrar ruídos breves que não devem ser considerados fala, garantindo que apenas atividade vocal sustentada seja reconhecida. O valor padrão de Minimum Speech Duration é 300 milissegundos.

Set Minimum Speech Duration node

Duração do Silêncio

O parâmetro Duração do Silêncio define a duração de silêncio necessária 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.

Set Silence Duration node

Vinculando aos Delegados de Fala

Você pode se associar a delegates específicos quando a fala começa ou termina. Isso é útil para acionar comportamentos personalizados com base na atividade de fala, como iniciar ou interromper o reconhecimento de texto, ou ajustar o volume de outras fontes de áudio.

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

Comparando provedores de VAD

VAD padrão (libfvad)

Vantagens:

  • Leve e eficiente
  • Funciona em todas as plataformas
  • Uso mínimo de recursos
  • Adequado para dispositivos móveis e de baixo consumo de energia

Melhor para:

  • Detecção simples de voz em ambientes silenciosos
  • Aplicativos móveis
  • Projetos em que o desempenho é uma prioridade
  • Quando o suporte a plataformas universais é necessário