Cómo usar el plugin
El plugin Runtime Speech Recognizer está diseñado para reconocer palabras a partir de datos de audio entrantes. Utiliza una versión ligeramente modificada de whisper.cpp para funcionar con el motor. Para usar el plugin, sigue estos pasos:
Lado del editor
- Selecciona los modelos de lenguaje apropiados para tu proyecto como se describe aquí.
Lado del runtime
- Crea un Speech Recognizer y configura los parámetros necesarios (CreateSpeechRecognizer, para los parámetros ver aquí).
- Conéctate a los delegados necesarios (OnRecognitionFinished, OnRecognizedTextSegment y OnRecognitionError).
- Inicia el reconocimiento de voz (StartSpeechRecognition).
- Procesa los datos de audio y espera los resultados de los delegados (ProcessAudioData).
- Detén el speech recognizer cuando sea necesario (ej. después de la emisión de OnRecognitionFinished).
El plugin soporta audio entrante en el formato PCM entrelazado de 32 bits en punto flotante. Si bien funciona bien con el Runtime Audio Importer, no depende directamente de él.
Parámetros de reconocimiento
El plugin soporta reconocimiento de datos de audio tanto en streaming como no streaming. Para ajustar los parámetros de reconocimiento para tu caso de uso específico, llama a SetStreamingDefaults
o SetNonStreamingDefaults
. Adicionalmente, tienes la flexibilidad de configurar manualmente parámetros individuales como el número de hilos, tamaño del paso, si traducir el lenguaje entrante a inglés, y si usar transcripción pasada. Consulta la Lista de Parámetros de Reconocimiento para una lista completa de los parámetros disponibles.
Mejorando el rendimiento
Por favor, consulta la sección Cómo mejorar el rendimiento para consejos sobre cómo optimizar el rendimiento del plugin.
Detección de Actividad de Voz (VAD)
Al procesar entrada de audio, especialmente en escenarios de streaming, se recomienda usar Detección de Actividad de Voz (VAD) para filtrar segmentos de audio vacíos o con solo ruido antes de que lleguen al reconocedor. Este filtrado puede habilitarse en el lado de la capturable sound wave usando el plugin Runtime Audio Importer, lo que ayuda a prevenir que los modelos de lenguaje alucinen - intentando encontrar patrones en el ruido y generando transcripciones incorrectas. Para instrucciones detalladas sobre configuración de VAD, consulta la documentación de Detección de Actividad de Voz.
En el proyecto demo incluido con el plugin, VAD está habilitado por defecto. Puedes encontrar más información sobre la implementación del demo en Proyecto Demo.
Ejemplos
Estos ejemplos ilustran cómo usar el plugin Runtime Speech Recognizer con entrada de audio tanto en streaming como no streaming, usando el Runtime Audio Importer para obtener datos de audio como ejemplo. Por favor, nota que se requiere descarga separada del RuntimeAudioImporter para acceder al mismo conjunto de características de importación de audio mostradas en los ejemplos (ej. capturable sound wave e ImportAudioFromFile). Estos ejemplos están destinados únicamente a ilustrar el concepto central y no incluyen manejo de errores.
Ejemplos de entrada de audio en streaming
Nota: En UE 5.3 y otras versiones, podrías encontrar nodos faltantes después de copiar Blueprints. Esto puede ocurrir debido a diferencias en la serialización de nodos entre versiones del motor. Siempre verifica que todos los nodos estén correctamente conectados en tu implementación.
1. Reconocimiento básico en streaming
Este ejemplo demuestra la configuración básica para capturar datos de audio del micrófono como un stream usando el Capturable sound wave y pasarlo al speech recognizer. Graba voz por aproximadamente 5 segundos y luego procesa el reconocimiento, haciéndolo adecuado para pruebas rápidas e implementaciones simples. Nodos copiables.
Características clave de esta configuración:
- Duración fija de grabación de 5 segundos
- Reconocimiento simple de un solo disparo
- Requerimientos mínimos de configuración
- Perfecto para pruebas y prototipado
2. Reconocimiento en streaming controlado
Este ejemplo extiende la configuración básica de streaming añadiendo control manual sobre el proceso de reconocimiento. Permite iniciar y detener el reconocimiento a voluntad, haciéndolo adecuado para escenarios donde necesitas control preciso sobre cuándo ocurre el reconocimiento. Nodos copiables.
Características clave de esta configuración:
- Control manual de inicio/detención
- Capacidad de reconocimiento continuo
- Duración flexible de grabación
- Adecuado para aplicaciones interactivas
3. Reconocimiento de comandos activado por voz
Este ejemplo está optimizado para escenarios de reconocimiento de comandos. Combina reconocimiento en streaming con Detección de Actividad de Voz (VAD) para procesar automáticamente el habla cuando el usuario deja de hablar. El reconocedor comienza a procesar el habla acumulada solo cuando se detecta silencio, haciéndolo ideal para interfaces basadas en comandos. Nodos copiables.
Características clave de esta configuración:
- Control manual de inicio/detención
- Detección de Actividad de Voz (VAD) habilitada para detectar segmentos de habla
- Activación automática del reconocimiento cuando se detecta silencio
- Óptimo para reconocimiento de comandos cortos
- Reducción de sobrecarga de procesamiento al reconocer solo habla real
4. Reconocimiento de voz con auto-inicialización y procesamiento de buffer final
Este ejemplo es otra variación del enfoque de reconocimiento activado por voz con manejo diferente del ciclo de vida. Inicia automáticamente el reconocedor durante la inicialización y lo detiene durante la desinicialización. Una característica clave es que procesa el último buffer de audio acumulado antes de detener el reconocedor, asegurando que no se pierdan datos de habla cuando el usuario quiere finalizar el proceso de reconocimiento. Esta configuración es particularmente útil para aplicaciones donde necesitas capturar enunciados completos del usuario incluso al detenerse a mitad del habla. Nodos copiables.
Características clave de esta configuración:
- Auto-inicia el reconocedor en la inicialización
- Auto-detiene el reconocedor en la desinicialización
- Procesa el buffer de audio final antes de detener completamente
- Usa Detección de Actividad de Voz (VAD) para reconocimiento eficiente
- Asegura que no se pierdan datos de habla al detener
Entrada de audio no streaming
Este ejemplo importa datos de audio al Imported sound wave y reconoce todos los datos de audio una vez que han sido importados. Nodos copiables.