Aller au contenu principal

Comment utiliser le plugin

Le plugin Runtime Speech Recognizer est conçu pour reconnaître des mots à partir de données audio entrantes. Il utilise une version légèrement modifiée de whisper.cpp pour fonctionner avec le moteur. Pour utiliser le plugin, suivez ces étapes :

Côté éditeur

  1. Sélectionnez les modèles de langue appropriés pour votre projet comme décrit ici.

Côté runtime

  1. Créez un Speech Recognizer et définissez les paramètres nécessaires (CreateSpeechRecognizer, pour les paramètres voir ici).
  2. Liez-vous aux délégués nécessaires (OnRecognitionFinished, OnRecognizedTextSegment et OnRecognitionError).
  3. Lancez la reconnaissance vocale (StartSpeechRecognition).
  4. Traitez les données audio et attendez les résultats des délégués (ProcessAudioData).
  5. Arrêtez le speech recognizer lorsque nécessaire (par exemple, après le broadcast OnRecognitionFinished).

Le plugin prend en charge les données audio entrantes au format PCM entrelacé 32 bits à virgule flottante. Bien qu'il fonctionne bien avec le Runtime Audio Importer, il n'en dépend pas directement.

Paramètres de reconnaissance

Le plugin prend en charge la reconnaissance de données audio en streaming et non-streaming. Pour ajuster les paramètres de reconnaissance selon votre cas d'usage, appelez SetStreamingDefaults ou SetNonStreamingDefaults. De plus, vous avez la flexibilité de définir manuellement des paramètres individuels tels que le nombre de threads, la taille du pas, la traduction de la langue entrante en anglais, et l'utilisation de la transcription passée. Consultez la Liste des paramètres de reconnaissance pour une liste complète des paramètres disponibles.

Amélioration des performances

Veuillez vous référer à la section Comment améliorer les performances pour des conseils sur l'optimisation des performances du plugin.

Détection d'activité vocale (VAD)

Lors du traitement des entrées audio, en particulier dans les scénarios de streaming, il est recommandé d'utiliser la Détection d'Activité Vocale (VAD) pour filtrer les segments audio vides ou contenant uniquement du bruit avant qu'ils n'atteignent le recognizer. Ce filtrage peut être activé côté capturable sound wave en utilisant le plugin Runtime Audio Importer, ce qui aide à empêcher les modèles de langue de "halluciner" - tenter de trouver des motifs dans le bruit et générer des transcriptions incorrectes. Pour des instructions détaillées sur la configuration de la VAD, reportez-vous à la documentation sur la Détection d'Activité Vocale.

Dans le projet de démonstration fourni avec le plugin, la VAD est activée par défaut. Vous pouvez trouver plus d'informations sur l'implémentation de la démo à Projet de démonstration.

Exemples

Il y a un bon projet de démonstration inclus dans le dossier Content -> Demo du plugin, que vous pouvez utiliser comme exemple d'implémentation.

Ces exemples illustrent comment utiliser le plugin Runtime Speech Recognizer avec des entrées audio en streaming et non-streaming, en utilisant le Runtime Audio Importer pour obtenir des données audio à titre d'exemple. Veuillez noter qu'un téléchargement séparé du RuntimeAudioImporter est nécessaire pour accéder au même ensemble de fonctionnalités d'importation audio présentées dans les exemples (par exemple capturable sound wave et ImportAudioFromFile). Ces exemples sont uniquement destinés à illustrer le concept de base et n'incluent pas de gestion d'erreurs.

Exemples d'entrée audio en streaming

Remarque : Dans UE 5.3 et d'autres versions, vous pourriez rencontrer des nœuds manquants après avoir copié des Blueprints. Cela peut se produire en raison de différences dans la sérialisation des nœuds entre les versions du moteur. Vérifiez toujours que tous les nœuds sont correctement connectés dans votre implémentation.

1. Reconnaissance de streaming basique

Cet exemple démontre la configuration de base pour capturer des données audio depuis le microphone sous forme de flux en utilisant le Capturable sound wave et les transmettre au speech recognizer. Il enregistre la parole pendant environ 5 secondes puis traite la reconnaissance, ce qui le rend adapté pour des tests rapides et des implémentations simples. Nœuds copiables.

Caractéristiques clés de cette configuration :

  • Durée d'enregistrement fixe de 5 secondes
  • Reconnaissance simple en un seul coup
  • Configuration minimale requise
  • Parfait pour les tests et le prototypage

2. Reconnaissance de streaming contrôlée

Cet exemple étend la configuration de streaming basique en ajoutant un contrôle manuel du processus de reconnaissance. Il vous permet de démarrer et d'arrêter la reconnaissance à volonté, ce qui le rend adapté aux scénarios où vous avez besoin d'un contrôle précis du moment où la reconnaissance se produit. Nœuds copiables.

Caractéristiques clés de cette configuration :

  • Contrôle manuel de démarrage/arrêt
  • Capacité de reconnaissance continue
  • Durée d'enregistrement flexible
  • Adapté aux applications interactives

3. Reconnaissance de commandes activée par la voix

Cet exemple est optimisé pour les scénarios de reconnaissance de commandes. Il combine la reconnaissance en streaming avec la Détection d'Activité Vocale (VAD) pour traiter automatiquement la parole lorsque l'utilisateur arrête de parler. Le recognizer commence à traiter la parole accumulée uniquement lorsque du silence est détecté, ce qui le rend idéal pour les interfaces basées sur des commandes. Nœuds copiables.

Caractéristiques clés de cette configuration :

  • Contrôle manuel de démarrage/arrêt
  • Détection d'Activité Vocale (VAD) activée pour détecter les segments de parole
  • Déclenchement automatique de la reconnaissance lorsque du silence est détecté
  • Optimal pour la reconnaissance de commandes courtes
  • Réduction de la surcharge de traitement en ne reconnaissant que la parole réelle

4. Reconnaissance vocale auto-initialisante avec traitement du buffer final

Cet exemple est une autre variante de l'approche de reconnaissance activée par la voix avec une gestion différente du cycle de vie. Il démarre automatiquement le recognizer lors de l'initialisation et l'arrête lors de la désinitialisation. Une caractéristique clé est qu'il traite le dernier buffer audio accumulé avant d'arrêter le recognizer, garantissant qu'aucune donnée vocale n'est perdue lorsque l'utilisateur souhaite terminer le processus de reconnaissance. Cette configuration est particulièrement utile pour les applications où vous devez capturer des énoncés complets de l'utilisateur même lors d'un arrêt en cours de parole. Nœuds copiables.

Caractéristiques clés de cette configuration :

  • Démarre automatiquement le recognizer à l'initialisation
  • Arrête automatiquement le recognizer à la désinitialisation
  • Traite le buffer audio final avant un arrêt complet
  • Utilise la Détection d'Activité Vocale (VAD) pour une reconnaissance efficace
  • Garantit qu'aucune donnée vocale n'est perdue lors de l'arrêt

Entrée audio non-streaming

Cet exemple importe des données audio vers l'Imported sound wave et reconnaît l'intégralité des données audio une fois qu'elles ont été importées. Nœuds copiables.