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 trabajar 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 establece los parámetros necesarios (CreateSpeechRecognizer, para ver los parámetros consulta aquí).
- Enlaza los delegados necesarios (OnRecognitionFinished, OnRecognizedTextSegment y OnRecognitionError).
- Inicia el reconocimiento de voz (StartSpeechRecognition).
- Procesa los datos de audio y espera los resultados desde los delegados (ProcessAudioData).
- Detén el reconocedor de voz cuando sea necesario (por ejemplo, después de la emisión de OnRecognitionFinished).
El plugin admite audio entrante en el formato PCM entrelazado de punto flotante de 32 bits. Si bien funciona bien con el Runtime Audio Importer, no depende directamente de él.
Parámetros de reconocimiento
El plugin admite reconocimiento tanto de datos de audio en streaming como no en streaming. Para ajustar los parámetros de reconocimiento según tu caso de uso, llama a SetStreamingDefaults
o SetNonStreamingDefaults
. Además, tienes la flexibilidad de establecer manualmente parámetros individuales, como el número de hilos, el tamaño del paso, si se debe traducir el idioma entrante al inglés y si se debe usar transcripción previa. Consulta la Lista de parámetros de reconocimiento para obtener una lista completa de parámetros disponibles.
Mejorando el rendimiento
Consulta la sección Cómo mejorar el rendimiento para obtener consejos sobre cómo optimizar el rendimiento del plugin.
Detección de actividad de voz (VAD)
Al procesar la entrada de audio, especialmente en escenarios de streaming, se recomienda utilizar Detección de Actividad de Voz (VAD) para filtrar segmentos de audio vacíos o que solo contengan ruido antes de que lleguen al reconocedor. Este filtrado se puede habilitar en el lado de capturable sound wave usando el plugin Runtime Audio Importer, lo que ayuda a evitar que los modelos de lenguaje generen falsos patrones en el ruido y produzcan transcripciones incorrectas. Para obtener instrucciones detalladas sobre la configuración de VAD, consulta la documentación de Detección de Actividad de Voz.
En el proyecto de demostración incluido con el plugin, VAD está habilitado por defecto. Puedes encontrar más información sobre la implementación del demo en Proyecto de demostración.
Ejemplos
Estos ejemplos ilustran cómo utilizar el plugin Runtime Speech Recognizer tanto con entrada de audio en streaming como no en streaming, usando el Runtime Audio Importer para obtener datos de audio como ejemplo. Ten en cuenta que es necesario descargar el RuntimeAudioImporter por separado para acceder al mismo conjunto de funciones de importación de audio que se muestran en los ejemplos (por ejemplo, capturable sound wave e ImportAudioFromFile). Estos ejemplos tienen como único propósito ilustrar el concepto principal 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 utilizando el Capturable sound wave y pasándolos al reconocedor de voz. Graba el habla durante aproximadamente 5 segundos y luego procesa el reconocimiento, lo que lo hace adecuado para pruebas rápidas e implementaciones simples. Nodos copiables.
Características clave de esta configuración:
- Duración de grabación fija de 5 segundos
- Reconocimiento simple en una sola ejecución
- Requisitos mínimos de configuración
- Ideal para pruebas y prototipos
2. Reconocimiento en streaming controlado
Este ejemplo amplía la configuración básica de streaming añadiendo control manual sobre el proceso de reconocimiento. Permite iniciar y detener el reconocimiento a voluntad, lo que lo hace adecuado para escenarios donde se necesita 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 de grabación flexible
- 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 solo empieza a procesar el habla acumulada cuando se detecta silencio, lo que lo hace ideal para interfaces basadas en comandos. Nodos copiables.
Características clave de esta configuración:
- Control manual de inicio/detención
- VAD habilitado para detectar segmentos de habla
- Activación automática del reconocimiento cuando se detecta silencio
- Óptimo para reconocimiento de comandos cortos
- Reducción de la carga de procesamiento al reconocer solo el habla real
Entrada de audio no en streaming
Este ejemplo importa datos de audio al Imported sound wave y reconoce los datos de audio completos una vez que se han importado. Nodos copiables.