Sorun Giderme
Dil Modeli Hazırlık Sorunları
Sorunların çoğu, paketlenmiş derlemede sorunlara neden olabilen dil modeli aşamalandırmasıyla ilgilidir. Özellikle, aşağıdaki günlüklerle karşılaşabilirsiniz:
LogRuntimeSpeechRecognizer: Error: Language model loading failed: Failed to load the language model asset '/RuntimeSpeechRecognizer/LanguageModels/LanguageModel.LanguageModel'
Bunu düzeltmek için Proje Ayarları'na gidin, ardından Proje -> Paketleme bölümüne gidin. Aşağı kaydırın, Gelişmiş kategorisini açın ve şunlardan emin olun:
DirectoriesToAlwaysCook(Pişirilecek Ek Varlık Dizinleriolarak etiketlenir) içinde/RuntimeSpeechRecognizer/LanguageModelsiçin bir girdi bulunur. Bu, eklenti tarafından editör sırasında otomatik olarak yapılır, ancak bazı kullanıcılar bunu elle yapmak zorunda kaldıklarını bildirmiştir, bu yüzden lütfen kontrol ettiğinizden emin olun. Dil modeli varlığının paketlenmiş derlemede her zaman yer almasını sağlamak için bu gereklidir.

bCookMapsOnlydeğerifalseolarak ayarlanmıştır.trueolarak ayarlanırsa, önceki özellik yok sayılır ve dil modeli varlığının doğru şekilde paketlenmeme olasılığı vardır. Bu işlem eklenti tarafından otomatik olarak da yapılır, ancak emin olmak için lütfen bu değişkeni manuel olarak da kontrol edin.

Android ve iOS Çökmeleri
Android ve iOS'ta bazı durumlarda, çalışma zamanı sırasında (örneğin TestFlight testi yapılırken) çökmeler meydana gelebilir. Buna, altta yatan whisper.cpp kitaplığının bellek tahsisi gereksinimlerinin, bu platformlarda Unreal Engine'in varsayılan tahsis edicileriyle çakışması neden olur. Diğer platformlarda FMalloc varsayılan olarak ANSI tahsis ediciyi kullandığından, bu sorun yalnızca Android ve iOS'a özgüdür.
Bunu çözmek için, projenizin Target.cs dosyasında ANSI allocator'ı kullanmaya zorlamanız gerekir:
Unreal Engine 5.5 ve öncesi için:
- Projeniz kaynak koddan derlenmiş bir motor kullanmalıdır (önceden derlenmiş bir ikili dosya değil)
- Aşağıdaki satırı
Target.csdosyanıza ekleyin:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Unreal Engine 5.6 ve sonrası için:
- Hem kaynaktan derlenmiş hem de önceden derlenmiş motor yapılarıyla çalışır
- Aşağıdaki iki satırı
Target.csdosyanıza ekleyin:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
Bu, Unreal Engine'i, whisper.cpp tarafından kullanılan ayırıcıyla eşleşen ANSI ayırıcısını Android ve iOS'ta kullanmaya zorlar.
Bu geçici çözüm, whisper.cpp'ye özgü bir allocator çakışmasını ele alır. Projeniz Vosk uzantısını Android'de sağlayıcı olarak kullanıyorsa, bu adım gerekli değildir.