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 utiliza uma versão ligeiramente modificada do whisper.cpp para funcionar com o motor. Para usar o plugin, siga estes passos:

Lado do Editor

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

Lado do Runtime

  1. Crie um Speech Recognizer e defina os parâmetros necessários (CreateSpeechRecognizer, para parâmetros veja aqui).
  2. Vincule 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 o broadcast OnRecognitionFinished).

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

Melhorando o desempenho

Por favor, consulte a seção Como melhorar o desempenho para dicas sobre como otimizar o desempenho do plugin.

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 contendo apenas ruído antes que eles alcancem o 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 em ruídos e gerando transcrições incorretas.

Para resultados ótimos de reconhecimento de fala, recomendamos usar o provedor Silero VAD que oferece melhor tolerância 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 configuração de VAD, consulte a documentação de Detecção de Atividade de Voz.

nota

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

  1. Instalando a extensão Silero VAD conforme descrito na seção Silero VAD Extension
  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 de demonstração incluído com o plugin, o VAD está ativado por padrão. Você pode encontrar mais informações sobre a implementação do demo em Demo Project.

Exemplos

Há um bom projeto de demonstração incluído 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 tanto em streaming quanto 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 mostrados nos exemplos (ex: capturable sound wave e ImportAudioFromFile). Estes exemplos têm como único objetivo 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 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 versões do engine. Sempre verifique se todos os nós estão devidamente conectados em sua implementação.

1. Reconhecimento básico em streaming

Este exemplo demonstra a configuração básica para capturar dados de áudio do microfone como um stream usando o Capturable sound wave e passá-lo para o reconhecedor de fala. Ele grava a fala por cerca de 5 segundos e então processa o reconhecimento, sendo adequado para testes rápidos e implementações simples. Nós copiáveis.

Principais características desta configuração:

  • Duração fixa de gravação de 5 segundos
  • Reconhecimento one-shot simples
  • Requisitos mínimos de configuração
  • Ideal para testes e prototipagem

2. Reconhecimento em 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 desejar, sendo adequado para cenários onde você precisa de controle preciso sobre quando o reconhecimento ocorre. Nós copiáveis.

Principais características desta configuração:

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

3. Reconhecimento de comandos por voz

Este exemplo é otimizado para cenários de reconhecimento de comandos. Ele combina reconhecimento em streaming com Detecção de Atividade Vocal (VAD) para processar automaticamente a fala quando o usuário para de falar. O reconhecedor começa a processar a fala acumulada apenas 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 Vocal (VAD) ativada para detectar segmentos de fala
  • Disparo automático do reconhecimento quando o silêncio é detectado
  • Ideal para reconhecimento de comandos curtos
  • Redução de sobrecarga de processamento ao reconhecer apenas fala real

4. Reconhecimento de voz com autoinicialização e processamento de buffer final

Este exemplo é outra variação da abordagem de reconhecimento ativado por voz com tratamento diferente do ciclo de vida. Ele inicia automaticamente o reconhecedor durante a inicialização e o para durante a desinicialização. Uma característica importante é que ele processa o último buffer de áudio acumulado antes de parar o reconhecedor, garantindo que nenhum dado de fala seja perdido quando o usuário deseja encerrar o processo de reconhecimento. Esta configuração é particularmente útil para aplicações onde você precisa capturar enunciados completos do usuário, mesmo ao parar no meio da fala. Nós copiáveis.

Principais características 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
  • Utiliza Detecção de Atividade Vocal (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 eles são importados. Nós copiáveis.