Comment utiliser le plugin
Le plugin Runtime Speech Recognizer est conçu pour reconnaître des mots à partir des 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
- Sélectionnez les modèles de langage appropriés pour votre projet comme décrit ici.
côté runtime
- Créez un système de reconnaissance vocale et définissez les paramètres nécessaires (CreateSpeechRecognizer, pour les paramètres voir ici).
- Liez-vous aux délégués nécessaires (OnRecognitionFinished, OnRecognizedTextSegment et OnRecognitionError).
- Démarrez la reconnaissance vocale (StartSpeechRecognition).
- Traitez les données audio et attendez les résultats des délégués (ProcessAudioData).
- Arrêtez le système de reconnaissance vocale lorsque nécessaire (par exemple, après la diffusion de OnRecognitionFinished).
Le plugin accepte l'audio entrant au format PCM entrelacé en virgule flottante 32 bits. 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 à votre cas d'utilisation, 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, s'il faut traduire la langue entrante en anglais et s'il faut utiliser la transcription précédente. Reportez-vous à 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. Sur Android et les plateformes basées sur Android comme Meta Quest, envisagez également l'extension Vosk, qui propose un fournisseur alternatif pour le matériel sans prise en charge de l'accélération GPU dans whisper.cpp.
Détection d'activité vocale (VAD)
Lors du traitement de l'entrée 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 reconnaisseur. Ce filtrage peut être activé côté onde sonore capturable à l'aide du plugin Runtime Audio Importer, ce qui aide à empêcher les modèles de langage d'halluciner – c'est-à-dire de chercher des motifs dans le bruit et de générer des transcriptions incorrectes.
Pour obtenir des résultats optimaux de reconnaissance vocale, nous recommandons d'utiliser le fournisseur Silero VAD, qui offre une tolérance au bruit supérieure et une détection de la parole plus précise. Le Silero VAD est disponible en tant qu'extension du plugin Runtime Audio Importer. Pour des instructions détaillées sur la configuration du VAD, consultez la documentation sur la détection d'activité vocale.
Les nœuds copiables dans les exemples ci-dessous utilisent le fournisseur VAD par défaut pour des raisons de compatibilité. Pour améliorer la précision de la reconnaissance, vous pouvez facilement passer à Silero VAD en :
- Installation de l'extension Silero VAD comme décrit dans la section Silero VAD Extension
- Après avoir activé la VAD avec le nœud Toggle VAD, ajoutez un nœud Set VAD Provider et sélectionnez « Silero » dans le menu déroulant.
Dans le projet de démonstration inclus 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 dans Projet de démonstration.
Exemples
Ces exemples illustrent comment utiliser le plugin Runtime Speech Recognizer avec une entrée 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é de RuntimeAudioImporter est requis pour accéder au même ensemble de fonctionnalités d'importation audio présentées dans les exemples (par exemple, onde sonore capturable et ImportAudioFromFile). Ces exemples visent uniquement à illustrer le concept de base et ne comportent pas de gestion des erreurs.
Exemples d'entrée audio en streaming
Remarque : Dans UE 5.3 et d’autres versions, vous pouvez 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 en continu
Cet exemple illustre la configuration de base pour capturer les données audio du microphone sous forme de flux à l'aide de la Capturable sound wave et les transmettre au reconnaisseur vocal. Il enregistre la parole pendant environ 5 secondes, puis traite la reconnaissance, ce qui le rend adapté aux tests rapides et aux implémentations simples. Nœuds copiables.
Principales caractéristiques de cette configuration :
- Durée d'enregistrement fixe de 5 secondes
- Reconnaissance simple en une seule fois
- Configuration minimale requise
- Parfait pour les tests et le prototypage

2. Reconnaissance en streaming contrôlée
Cet exemple étend la configuration de streaming de base en ajoutant un contrôle manuel sur le 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 sur le 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 vocales
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 reconnaisseur ne commence à traiter la parole accumulée que lorsqu'un silence est détecté, ce qui le rend idéal pour les interfaces basées sur des commandes. Nœuds copiables.
Principales caractéristiques de cette configuration :
- Contrôle de démarrage/arrêt manuel
- Détection d'activité vocale (VAD) activée pour détecter les segments de parole
- Déclenchement automatique de la reconnaissance lorsqu'un silence est détecté
- Optimal pour la reconnaissance de commandes courtes
- Surcharge de traitement réduite en ne reconnaissant que la parole réelle

4. Reconnaissance vocale à auto-initialisation avec traitement du tampon 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 reconnaisseur lors de l’initialisation et l’arrête lors de la désinitialisation. Une caractéristique clé est qu’il traite le dernier tampon audio accumulé avant d’arrêter le reconnaisseur, garantissant ainsi qu’aucune donnée vocale n’est perdue lorsque l’utilisateur souhaite mettre fin au 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 pleine parole. Nœuds copiables.
Principales caractéristiques de cette configuration :
- Démarre automatiquement le reconnaisseur à l'initialisation
- Arrête automatiquement le reconnaisseur à la désinitialisation
- Traite le tampon audio final avant de s'arrêter complètement
- 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 diffusée en continu
Cet exemple importe des données audio dans l'onde sonore importée et reconnaît l'intégralité des données audio une fois celles-ci importées. Nœuds copiables.
