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 en tiempo de ejecución
- Crea un Speech Recognizer y configura los parámetros necesarios (CreateSpeechRecognizer, para los parámetros ver aquí).
- Vincula 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 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 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 admite el 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
. Además, tienes la flexibilidad de configurar manualmente parámetros individuales como el número de hilos, el tamaño del paso, si traducir el idioma entrante al inglés y si usar transcripción pasada. Consulta la Lista de Parámetros de Reconocimiento para obtener una lista completa de los 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 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 solo con ruido antes de que lleguen al reconocedor. Este filtrado se puede habilitar en el lado de la onda de sonido capturable usando el plugin Runtime Audio Importer, lo que ayuda a evitar que los modelos de lenguaje alucinen - intentando encontrar patrones en el ruido y generando transcripciones incorrectas.
Para obtener resultados óptimos de reconocimiento de voz, recomendamos usar el proveedor Silero VAD que ofrece una tolerancia al ruido superior y una detección de voz más precisa. El Silero VAD está disponible como una extensión del plugin Runtime Audio Importer. Para instrucciones detalladas sobre la configuración de VAD, consulta la documentación de Detección de Actividad de Voz.
Los nodos copiables en los ejemplos a continuación utilizan el proveedor VAD predeterminado por razones de compatibilidad. Para mejorar la precisión del reconocimiento, puedes cambiar fácilmente a Silero VAD mediante:
- Instalar la extensión Silero VAD como se describe en la sección de Extensión Silero VAD
- Después de activar VAD con el nodo Toggle VAD, añade un nodo Set VAD Provider y selecciona "Silero" del menú desplegable
En el proyecto demo incluido con el plugin, VAD está activado 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. Ten en cuenta que se requiere descargar por separado el RuntimeAudioImporter para acceder al mismo conjunto de funciones 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 reconocedor de voz. Graba voz durante 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 una sola vez
- Requisitos mínimos de configuración
- Perfecto para pruebas y prototipos
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 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 el reconocimiento en streaming con Detecci ón de Actividad Vocal (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, 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
- Detección de Actividad Vocal (VAD) activada 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 el habla real
4. Reconocimiento de voz con auto-inicialización y procesamiento de buffer final
Este ejemplo es otra variante del enfoque de reconocimiento activado por voz con un 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 búfer de audio acumulado antes de detener el reconocedor, asegurando que no se pierdan datos de habla cuando el usuario desea finalizar el proceso de reconocimiento. Esta configuración es particularmente útil para aplicaciones donde se necesita capturar enunciados completos del usuario incluso al detenerse a mitad del habla. Nodos copiables.
Características clave de esta configuración:
- Inicia automáticamente el reconocedor al inicializar
- Detiene automáticamente el reconocedor al desinicializar
- Procesa el búfer de audio final antes de detenerse completamente
- Utiliza Detección de Actividad Vocal (VAD) para un reconocimiento eficiente
- Asegura que no se pierdan datos de habla al detenerse
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.