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
- Selecione os modelos de linguagem apropriados para seu projeto conforme descrito aqui.
Lado do Runtime
- Crie um Speech Recognizer e defina os parâmetros necessários (CreateSpeechRecognizer, para parâmetros veja aqui).
- Vincule aos delegates necessários (OnRecognitionFinished, OnRecognizedTextSegment e OnRecognitionError).
- Inicie o reconhecimento de fala (StartSpeechRecognition).
- Processe os dados de áudio e aguarde os resultados dos delegates (ProcessAudioData).
- 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.
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:
- Instalando a extensão Silero VAD conforme descrito na seção Silero VAD Extension
- 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
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.