Extension Vosk
Par défaut, le plugin Runtime Speech Recognizer utilise whisper.cpp pour la reconnaissance. Sur les plateformes sans prise en charge de l'accélération GPU dans whisper.cpp, notamment Android et les plateformes basées sur Android telles que Meta Quest, la reconnaissance retombe sur le CPU + instructions intrinsèques, ce qui est plus lent et plus gourmand en batterie. Le Vosk extension plugin ajoute un fournisseur alternatif basé sur Vosk, une boîte à outils légère de reconnaissance vocale qui fonctionne bien sur le matériel contraint et particulièrement bien sur Meta Quest.
Passer de whisper.cpp à Vosk ne nécessite que quelques nœuds de Blueprint, et revenir en arrière est tout aussi simple. Vous pouvez donc conserver les deux options disponibles et choisir un fournisseur par plateforme si nécessaire.
Installation
Pour utiliser l'extension Vosk :
-
Assurez-vous que le plugin principal Runtime Speech Recognizer est déjà installé dans votre projet.
-
Téléchargez le plugin d'extension Vosk depuis ici
-
Extrayez le dossier de l'archive téléchargée dans le dossier
Pluginsde votre projet (créez ce dossier s'il n'existe pas) -
Reconstruisez votre projet (cette extension nécessite un projet C++).
-
L'extension Vosk prend en charge Unreal Engine 5.0 à 5.8.
-
Cette extension est fournie sous forme de code source et nécessite un projet C++ pour être utilisée.
-
Pour plus d'informations sur la création manuelle de plugins, consultez le tutoriel Création de plugins
Passage au fournisseur Vosk
Une fois l’extension installée, basculer un reconnaisseur de parole vers Vosk se résume à trois nœuds, juste après CreateSpeechRecognizer :

- Appelez Set Speech Recognizer Provider, en passant la classe de fournisseur Vosk.
- Cast To Runtime Vosk Speech Recognizer Provider sur le résultat.
- Appelez Set Vosk Model Path (By Name) sur le résultat du cast, en sélectionnant un modèle téléchargé dans le menu déroulant.
Tout le reste de votre configuration existante (Start Speech Recognition, Process Audio Data, les delegates, la VAD, etc.) continue de fonctionner sans modification. Pour revenir à whisper.cpp, supprimez ces trois nœuds, ou n'appelez tout simplement pas Set Speech Recognizer Provider, puisque whisper.cpp est le paramètre par défaut.
Téléchargement des modèles Vosk
Les modèles Vosk sont téléchargés et gérés depuis Project Settings -> Plugins -> Runtime Speech Recognizer Vosk. Le panneau répertorie le catalogue de modèles prédéfini groupé par langue, et chaque entrée possède un bouton Télécharger, avec une barre de progression affichée pendant que le téléchargement et l’extraction sont en cours, ainsi qu’un bouton Supprimer une fois le modèle présent sur le disque.

Les modèles téléchargés sont extraits sous Content/RuntimeSpeechRecognizerVosk/Models, et le plugin se charge automatiquement de préparer ce dossier pour l'empaquetage. Vous n'êtes pas non plus limité à un seul modèle empaqueté : tout modèle que vous téléchargez reste disponible et peut être sélectionné à l'exécution avec Set Vosk Model Path (By Name). Sur Android, les fichiers du modèle sont inclus dans l'application empaquetée et sont copiés dans le stockage persistant lors de la première utilisation, ce qui est géré en interne lorsque le modèle est sélectionné.
Langues prises en charge (cliquez pour développer)
Le catalogue prédéfini comprend des modèles pour : l'anglais, l'anglais indien, le chinois, le russe, le français, l'allemand, l'espagnol, le portugais/portugais brésilien, le grec, le turc, le vietnamien, l'italien, le néerlandais, le catalan, l'arabe, l'arabe tunisien, le farsi, le filipino, l'ukrainien, le kazakh, le suédois, le japonais, l'espéranto, l'hindi, le tchèque, le polonais, l'ouzbek, le coréen, le breton, le gujarati, le tadjik, le télougou, le kirghize et le géorgien, ainsi qu'un modèle dédié d'identification du locuteur.
Certaines langues comportent plusieurs variantes dans le panneau (par exemple, un modèle plus petit adapté au matériel mobile aux côtés d'un modèle plus grand et plus précis), il vaut donc la peine d'examiner les options pour votre langue cible directement dans le panneau Paramètres du projet plutôt que de supposer qu'un seul est disponible. Consultez la liste complète des modèles Vosk pour plus de détails sur la précision, la taille et les licences de chaque variante.
Paramètres et comportement
Vosk est un reconnaisseur fondamentalement différent de whisper.cpp, donc la plupart des entrées de la Liste des paramètres de reconnaissance ne s'y appliquent pas. Appeler un setter non pris en charge sur le fournisseur Vosk n'a aucun effet, donc la logique Blueprint écrite pour whisper.cpp continue de fonctionner sans modification après changement de fournisseur. Les fonctions qui ont un effet sur Vosk sont :
- Définir la langue : sélectionne le modèle de langue utilisé. Vosk ne prend pas en charge la détection automatique de la langue, donc si vous définissez la langue sur Auto, elle est ignorée.
- Définir la taille de pas : quantité d'audio accumulée avant d'être envoyée pour reconnaissance, même mécanisme qu'avec whisper.cpp. Comme Vosk est un reconnaisseur en streaming, une petite valeur (le fournisseur Vosk utilise 200 ms par défaut) maintient les résultats partiels réactifs.
- Définir Max Tokens : réutilisé pour Vosk, décrit ci-dessous.
Définir le nombre maximal de tokens et la sortie en streaming.
Le paramètre Set Max Tokens contrôle la manière dont le fournisseur Vosk délivre le texte reconnu via On Recognized Text Segment :
- 0 (par défaut) : le texte s'accumule en interne et est fourni comme un seul segment terminé une fois que la reconnaissance finalise, soit via un arrêt déclenché par VAD (comme dans les exemples Reconnaissance de commande vocale ou Reconnaissance vocale à initialisation automatique), soit via toute logique dans votre projet qui appelle Arrêter la reconnaissance vocale ou force le dernier morceau audio à passer. Cela correspond au comportement par segments qu'utilise whisper.cpp.
- Supérieur à 0 : le fournisseur passe en mode streaming. Au lieu d'attendre un segment terminé, il diffuse des résultats partiels au fur et à mesure de la progression de la reconnaissance, chacun remplaçant le précédent par une version plus longue de la même phrase, jusqu'à ce que le segment se termine et que le texte se réinitialise pour le suivant. Un court énoncé pourrait ressembler à ceci lors de plusieurs diffusions de On Recognized Text Segment :
"The"
"The cat"
"The cat is"
"The cat is sleeping"
La valeur numérique exacte n'a pas d'importance pour Vosk lui-même, car il n'a pas de limite de tokens intégrée. Toute valeur supérieure à 0 active la diffusion en continu.
Étant donné que les résultats partiels n'arrivent qu'à la fréquence à laquelle l'audio est mis en file d'attente (régi par Set Step Size), associez un Max Tokens faible à un Step Size faible pour une sortie en direct réactive.
Support de plateforme
L'extension Vosk fonctionne sur Windows, Android et les plateformes basées sur Android telles que Meta Quest. Elle est la plus utile sur Android et Meta Quest, où whisper.cpp ne dispose d'aucun chemin d'accélération GPU, et elle est particulièrement performante sur Meta Quest tout spécialement. Si vous êtes déjà sur Windows ou une autre plateforme de bureau avec une accélération Vulkan ou Metal disponible, whisper.cpp est probablement un meilleur choix par défaut. Vosk est destiné à servir d'alternative pour les plateformes où whisper.cpp est le plus faible.
Avancé : travailler directement avec les modèles
Le panneau des paramètres du projet couvre le téléchargement et la suppression de modèles pour la plupart des projets. Si votre projet doit fonctionner directement avec les modèles plutôt que de s'appuyer sur le panneau de l'éditeur, par exemple pour vérifier la disponibilité ou gérer les fichiers au moment de l'exécution, le plugin expose les fonctions de bibliothèque sous-jacentes :
- Get Available Vosk Model Names : renvoie les noms des modèles prêts à être utilisés immédiatement, qu'ils soient déjà extraits sur le disque ou simplement empaquetés en attendant leur première utilisation. C'est ce qui alimente la liste déroulante de Set Vosk Model Path (By Name).
- Is Vosk Model Available : la même vérification que ci-dessus, pour un seul modèle par ID.
- Get Vosk Models Directory : renvoie le chemin absolu du répertoire à partir duquel les modèles sont lus à l'exécution.
- Get Vosk Model Folder Path : renvoie le chemin absolu du dossier d'un modèle spécifique sur le disque.
- Delete Vosk Model Files : supprime du disque les fichiers extraits d'un modèle.