Dépannage
Problèmes de préproduction du modèle de langage
La plupart des problèmes sont liés à la préparation du modèle de langage, ce qui peut causer des problèmes dans le build packagé. Plus précisément, vous pourriez rencontrer les logs suivants :
LogRuntimeSpeechRecognizer: Error: Language model loading failed: Failed to load the language model asset '/RuntimeSpeechRecognizer/LanguageModels/LanguageModel.LanguageModel'
Pour corriger cela, allez dans Paramètres du projet, puis naviguez vers la section Projet -> Packaging. Faites défiler vers le bas et dépliez la catégorie Avancé, et assurez-vous que :
DirectoriesToAlwaysCook(intituléAdditional Asset Directories to Cook) contient une entrée pour/RuntimeSpeechRecognizer/LanguageModelsà l’intérieur. Cela est fait automatiquement par le plugin au moment de l’éditeur, mais certains utilisateurs ont signalé devoir le faire manuellement, alors veuillez vérifier. Ceci est nécessaire pour garantir que la ressource du modèle de langage soit toujours incluse dans le build packagé.

bCookMapsOnlyest défini surfalse. S'il est défini surtrue, il ignorera la propriété précédente, et il est possible que l'actif du modèle de langage ne soit pas correctement préparé. Cela est également fait automatiquement par le plugin, mais pour être certain, veuillez vérifier cette variable manuellement également.

Plantages Android et iOS
Dans certains cas sur Android et iOS, des plantages peuvent survenir pendant l'exécution (par exemple lors des tests TestFlight). Cela est dû aux exigences d'allocation mémoire de la bibliothèque sous-jacente whisper.cpp qui entrent en conflit avec les allocateurs par défaut d'Unreal Engine sur ces plateformes. Sur d'autres plateformes, FMalloc utilise par défaut l'allocateur ANSI, donc ce problème est spécifique à Android et iOS.
Pour résoudre ce problème, vous devez forcer l'allocateur ANSI dans le fichier Target.cs de votre projet :
Pour Unreal Engine 5.5 et versions antérieures :
- Votre projet doit utiliser un moteur compilé à partir des sources (et non un binaire pré-compilé)
- Ajoutez la ligne suivante à votre fichier
Target.cs:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Pour Unreal Engine 5.6 et versions ultérieures :
- Fonctionne avec les versions du moteur compilées à partir des sources et les versions précompilées
- Ajoutez les deux lignes suivantes à votre fichier
Target.cs:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
Cela force Unreal Engine à utiliser l’allocateur ANSI sur Android et iOS, en correspondance avec l’allocateur utilisé par whisper.cpp.
Cette solution de contournement traite un conflit d'allocateur spécifique à whisper.cpp. Si votre projet utilise l'extension Vosk comme fournisseur sur Android, cette étape n'est pas requise.