Fehlerbehebung
Probleme beim Staging von Sprachmodellen
Die meisten Probleme hängen mit dem Staging von Sprachmodellen zusammen, was zu Problemen in der gepackten Build-Version führen kann. Insbesondere könnten Ihnen folgende Logs begegnen:
LogRuntimeSpeechRecognizer: Error: Language model loading failed: Failed to load the language model asset '/RuntimeSpeechRecognizer/LanguageModels/LanguageModel.LanguageModel'
Um dies zu beheben, gehen Sie zu Projekteinstellungen und navigieren dann zum Abschnitt Projekt -> Paketierung. Scrollen Sie nach unten und klappen Sie die erweiterte Kategorie auf. Stellen Sie sicher, dass:
DirectoriesToAlwaysCook(bezeichnet alsZusätzliche Asset-Verzeichnisse zum Kochen) einen Eintrag für/RuntimeSpeechRecognizer/LanguageModelsenthält. Dies wird automatisch vom Plugin während der Editor-Zeit durchgeführt, aber einige Benutzer haben berichtet, dass sie es manuell vornehmen mussten. Bitte überprüfen Sie dies daher. Dies ist notwendig, um sicherzustellen, dass das Sprachmodell-Asset immer im gepackten Build bereitgestellt wird.

bCookMapsOnlyauffalsegesetzt ist. Wenn es auftruegesetzt ist, wird die vorherige Eigenschaft ignoriert, und es besteht die Möglichkeit, dass das Sprachmodell-Asset nicht korrekt bereitgestellt wird. Dies wird ebenfalls automatisch vom Plugin durchgeführt, aber um sicherzugehen, überprüfen Sie diese Variable bitte auch manuell.

Es gibt möglicherweise andere Eigenschaften, die das Paketierungsverhalten der Engine beeinflussen können, die später, sobald sie untersucht wurden, zu dieser Seite hinzugefügt werden.
Android- und iOS-Abstürze
In einigen Fällen kann es auf Android und iOS während der Laufzeit zu Abstürzen kommen (z. B. während TestFlight-Tests). Dies wird durch die Speicherzuweisungsanforderungen der zugrunde liegenden whisper.cpp-Bibliothek verursacht, die mit den Standard-Speicherzuweisern der Unreal Engine auf diesen Plattformen in Konflikt stehen. Auf anderen Plattformen verwendet FMalloc standardmäßig den ANSI-Allokator, daher ist dieses Problem spezifisch für Android und iOS.
Um dies zu beheben, müssen Sie den ANSI-Allokator in der Target.cs-Datei Ihres Projekts erzwingen:
Für Unreal Engine 5.5 und früher:
- Ihr Projekt muss eine aus dem Quellcode gebaute Engine verwenden (keine vorkompilierte Binärdatei)
- Fügen Sie die folgende Zeile zu Ihrer
Target.cs-Datei hinzu:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Für Unreal Engine 5.6 und höher:
- Funktioniert sowohl mit quellgebauten als auch mit vorkompilierten Engine-Builds
- Fügen Sie die folgende Zeile zu Ihrer
Target.cs-Datei hinzu:
StaticAllocator = StaticAllocatorType.Ansi;
Dies zwingt Unreal Engine dazu, den ANSI-Allokator auf Android und iOS zu verwenden, was dem von whisper.cpp verwendeten Allokator entspricht.