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 a engine. 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 speech recognizer quando necessário (por exemplo, após o broadcast do 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 o 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
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 Voice Activity Detection (VAD) para filtrar segmentos de áudio vazios ou apenas com ruído antes que eles cheguem ao reconhecedor. Essa filtragem pode ser habilitada no lado da capturable sound wave 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 instruções detalhadas sobre configuração de VAD, consulte a documentação de Voice Activity Detection.
No projeto demo incluído com o plugin, o VAD está habilitado 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 o download separado do RuntimeAudioImporter é necessário para acessar o mesmo conjunto de recursos de importação de áudio mostrados nos exemplos (por exemplo, capturable sound wave e ImportAudioFromFile). Estes exemplos são destinados apenas a ilustrar o conceito principal 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 da 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 a Capturable sound wave e passá-los para o speech recognizer. Ele grava a fala por cerca de 5 segundos e então processa o reconhecimento, tornando-o 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 simples de uma única vez
- Requisitos mínimos de configuração
- Perfeito 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, tornando-o 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 flexível de gravação
- Adequado para aplicações interativas
3. Reconhecimento de comandos ativado por voz
Este exemplo é otimizado para cenários de reconhecimento de comandos. Ele combina reconhecimento em streaming com Voice Activity Detection (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
- Voice Activity Detection (VAD) habilitado para detectar segmentos de fala
- Disparo automático de reconhecimento quando o silêncio é detectado
- Otimizado para reconhecimento de comandos curtos
- Redução de sobrecarga de processamento reconhecendo apenas fala real
4. Reconhecimento de voz com inicialização automática 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 chave é 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
- Usa Voice Activity Detection (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 Imported sound wave e reconhece todos os dados de áudio de uma vez após a importação. Nós copiáveis.