Pular para o conteúdo principal

Como usar o plugin

O plugin Runtime Speech Recognizer foi projetado para reconhecer palavras a partir de dados de áudio recebidos. Ele usa uma versão ligeiramente modificada do whisper.cpp para funcionar com o motor. Para usar o plugin, siga estas etapas:

Lado do editor

  1. Selecione os modelos de linguagem adequados para o seu projeto conforme descrito aqui.

Lado do Runtime

  1. Crie um reconhecedor de fala e defina os parâmetros necessários (CreateSpeechRecognizer, para os parâmetros, veja aqui).
  2. Vincule-se aos delegates necessários (OnRecognitionFinished, OnRecognizedTextSegment e OnRecognitionError).
  3. Inicie o reconhecimento de fala (StartSpeechRecognition).
  4. Processe os dados de áudio e aguarde os resultados dos delegates (ProcessAudioData).
  5. Pare o reconhecedor de fala quando necessário (por exemplo, após a transmissão do OnRecognitionFinished).

O plugin aceita áudio de entrada no formato PCM intercalado de 32 bits em ponto flutuante. Embora funcione bem com o Runtime Audio Importer, ele não depende diretamente dele.

Parâmetros de reconhecimento

O plugin suporta o reconhecimento de dados de áudio tanto em streaming quanto em não streaming. Para ajustar os parâmetros de reconhecimento para o seu caso de uso específico, chame SetStreamingDefaults ou SetNonStreamingDefaults. Além disso, você tem a flexibilidade de definir manualmente parâmetros individuais, como o número de threads, o tamanho do passo, se deve traduzir o idioma de entrada para o inglês e se deve usar a transcrição anterior. Consulte a Lista de Parâmetros de Reconhecimento para obter uma lista completa dos parâmetros disponíveis.

Melhorando o desempenho

Consulte a seção Como melhorar o desempenho para obter dicas sobre como otimizar o desempenho do plugin. No Android e em plataformas baseadas em Android, como Meta Quest, considere também a extensão Vosk, que oferece um provedor alternativo para hardware sem suporte à aceleração de GPU no whisper.cpp.

Detecção de Atividade de Voz (VAD)

Ao processar entrada de áudio, especialmente em cenários de streaming, é recomendado usar Detecção de Atividade de Voz (VAD) para filtrar segmentos de áudio vazios ou apenas com ruído antes que cheguem ao reconhecedor. Essa filtragem pode ser habilitada no lado da onda sonora capturável usando o plugin Runtime Audio Importer, o que ajuda a evitar que os modelos de linguagem alucinem - tentando encontrar padrões no ruído e gerando transcrições incorretas.

Para obter resultados ideais de reconhecimento de fala, recomendamos usar o provedor Silero VAD, que oferece tolerância superior a ruídos e detecção de fala mais precisa. O Silero VAD está disponível como uma extensão do plugin Runtime Audio Importer. Para instruções detalhadas sobre a configuração do VAD, consulte a documentação de detecção de atividade de voz.

nota

Os nós copiáveis nos exemplos abaixo usam o provedor VAD padrão por motivos de compatibilidade. Para melhorar a precisão do reconhecimento, você pode facilmente alternar para o Silero VAD da seguinte forma:

  1. Instalando a extensão Silero VAD conforme descrito na seção da extensão Silero VAD
  2. Após ativar o VAD com o nó Toggle VAD, adicione um nó Set VAD Provider e selecione "Silero" no menu suspenso.

No projeto demo incluído no plugin, o VAD está habilitado por padrão. Você pode encontrar mais informações sobre a implementação demo em Projeto Demo.

Exemplos

Há uma boa demonstração de projeto incluída na pasta Content -> Demo do plugin, que você pode usar como exemplo para implementação.

Estes exemplos ilustram como usar o plugin Runtime Speech Recognizer com entrada de áudio em streaming e não streaming, usando o Runtime Audio Importer para obter dados de áudio como exemplo. Observe que é necessário baixar separadamente o RuntimeAudioImporter para acessar o mesmo conjunto de recursos de importação de áudio apresentados nos exemplos (por exemplo, onda sonora capturável e ImportAudioFromFile). Estes exemplos têm como única finalidade ilustrar o conceito central e não incluem tratamento de erros.

Exemplos de entrada de áudio em streaming

Observação: No UE 5.3 e em outras versões, você pode encontrar nós ausentes após copiar Blueprints. Isso pode ocorrer devido a diferenças na serialização de nós entre as versões do motor. Sempre verifique se todos os nós estão conectados corretamente na sua implementação.

1. Reconhecimento básico de streaming

Este exemplo demonstra a configuração básica para capturar dados de áudio do microfone como um fluxo usando a onda sonora capturável e passando-os para o reconhecedor de fala. Ele grava a fala por cerca de 5 segundos e depois processa o reconhecimento, tornando-o adequado para testes rápidos e implementações simples. Nós copiáveis.

Principais recursos desta configuração:

  • Duração de gravação fixa de 5 segundos
  • Reconhecimento simples de uma única vez
  • Requisitos mínimos de configuração
  • Perfeito para testes e prototipagem

2. Reconhecimento de streaming controlado

Este exemplo estende a configuração básica de streaming adicionando controle manual sobre o processo de reconhecimento. Ele permite que você inicie e pare o reconhecimento quando quiser, tornando-o adequado para cenários em que você precisa de controle preciso sobre quando o reconhecimento ocorre. Nós copiáveis.

Principais recursos desta configuração:

  • Controle manual de início/parada
  • Capacidade de reconhecimento contínuo
  • Duração flexível de gravação
  • Adequado para aplicações interativas

3. Reconhecimento de comandos ativados por voz

Este exemplo é otimizado para cenários de reconhecimento de comandos. Ele combina reconhecimento em streaming com Detecção de Atividade de Voz (VAD) para processar automaticamente a fala quando o usuário para de falar. O reconhecedor só começa a processar a fala acumulada quando o silêncio é detectado, tornando-o ideal para interfaces baseadas em comandos. Nós copiáveis.

Principais características desta configuração:

  • Controle manual de início/parada
  • Detecção de Atividade de Voz (VAD) ativada para detectar segmentos de fala
  • Disparo automático de reconhecimento quando o silêncio é detectado
  • Ideal para reconhecimento de comandos curtos
  • Sobrecarga de processamento reduzida ao reconhecer apenas a fala real

4. Reconhecimento de voz com inicialização automática e processamento do buffer final

Este exemplo é outra variação da abordagem de reconhecimento ativado por voz, com um tratamento de ciclo de vida diferente. Ele inicia automaticamente o reconhecedor durante a inicialização e o interrompe durante a finalização. Um recurso importante é que ele processa o último buffer de áudio acumulado antes de interromper o reconhecedor, garantindo que nenhum dado de fala seja perdido quando o usuário quiser encerrar o processo de reconhecimento. Essa configuração é especialmente útil para aplicações em que você precisa capturar falas completas do usuário mesmo ao interromper no meio da fala. Nós copiáveis.

Principais recursos desta configuração:

  • Inicia automaticamente o reconhecedor na inicialização
  • Para automaticamente o reconhecedor na desinicialização
  • Processa o buffer de áudio final antes de parar completamente
  • Usa Detecção de Atividade de Voz (VAD) para reconhecimento eficiente
  • Garante que nenhum dado de fala seja perdido ao parar

Entrada de áudio não-streaming

Este exemplo importa dados de áudio para a onda sonora importada e reconhece todos os dados de áudio assim que são importados. Nós copiáveis.