Saltar al contenido principal

Cómo usar el plugin

El plugin Runtime Speech Recognizer está diseñado para reconocer palabras de los 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:

En el lado del editor

  1. Selecciona los modelos de lenguaje apropiados para tu proyecto como se describe aquí.

En el lado de runtime

  1. Crea un Reconocedor de Voz y establece los parámetros necesarios (CreateSpeechRecognizer, para parámetros ver aquí).
  2. Vincula a los delegados necesarios (OnRecognitionFinished, OnRecognizedTextSegment y OnRecognitionError).
  3. Inicia el reconocimiento de voz (StartSpeechRecognition).
  4. Procesa los datos de audio y espera los resultados de los delegados (ProcessAudioData).
  5. 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. Aunque funciona bien con el Runtime Audio Importer, no depende directamente de él.

Parámetros de reconocimiento

El plugin admite tanto el reconocimiento de audio en streaming como no en streaming. Para ajustar los parámetros de reconocimiento para tu caso específico, 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 de 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.

Mejora del 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 solo con 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 divaguen - tratando de encontrar patrones en el ruido y generando transcripciones incorrectas. Para 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 de la demo en Proyecto de Demostración.

Ejemplos

Hay un buen proyecto de demostración incluido en la carpeta Content -> Demo del plugin, que puedes usar como ejemplo para la implementación.

Estos ejemplos ilustran cómo usar el plugin Runtime Speech Recognizer con entrada de audio tanto en streaming como no en streaming, usando el Runtime Audio Importer para obtener datos de audio como ejemplo. Ten en cuenta que se requiere la descarga por separado de el RuntimeAudioImporter para acceder al mismo conjunto de funciones de importación de audio que se muestran en los ejemplos (e.g. capturable sound wave e ImportAudioFromFile). Estos ejemplos están destinados únicamente a ilustrar el concepto central y no incluyen manejo de errores.

Entrada de audio en streaming

Este ejemplo captura datos de audio del micrófono como una corriente usando la Capturable sound wave y los pasa al reconocedor de voz. Nodos copiables.

Nota: En UE 5.3 y potencialmente en otras versiones, podrías encontrarte en una situación donde ciertos nodos que has copiado falten en tus Blueprints. Esto puede suceder debido a diferencias en cómo se serializan/deserializan los nodos entre diferentes versiones del motor. Para asegurarte de que todo funcione correctamente, revisa que todos los nodos estén correctamente conectados.

Ejemplo más extenso

Entrada de audio no en streaming

Este ejemplo importa datos de audio a la Imported sound wave y reconoce todos los datos de audio una vez que se ha importado. Nodos copiables.