Ana içeriğe geç

Sorun Giderme

Dil Modeli Hazırlama Sorunları

Sorunların çoğu, paketlenmiş yapıda problemlere neden olabilen dil modeli hazırlama ile 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 ve Gelişmiş kategorisini genişletin ve şunları kontrol edin:

  1. DirectoriesToAlwaysCook (etiket olarak Paketlenecek Ek Varlık Dizinleri) içinde /RuntimeSpeechRecognizer/LanguageModels için bir giriş bulunduğundan emin olun. Bu, editör zamanında eklenti tarafından otomatik olarak yapılır, ancak bazı kullanıcılar bunu manuel olarak yapmak zorunda kaldıklarını bildirmiştir, bu nedenle lütfen kontrol ettiğinizden emin olun. Bu, dil modeli varlığının paketlenmiş yapıda her zaman hazır bulundurulmasını sağlamak için gereklidir.

Paketlenecek Ek Varlık Dizinleri

  1. bCookMapsOnly değerinin false olarak ayarlandığından emin olun. Eğer true olarak ayarlanırsa, önceki özelliği yok sayar ve dil modeli varlığının düzgün şekilde hazırlanmama ihtimali vardır. Bu da eklenti tarafından otomatik olarak yapılır, ancak yine de emin olmak için lütfen bu değişkeni manuel olarak kontrol edin.

Paketlenecek Ek Varlık Dizinleri

Motorun paketleme davranışını etkileyebilecek başka özellikler de olabilir, bunlar araştırıldıkça daha sonra bu sayfaya eklenebilir.

Android ve iOS Çökmeleri

Bazı durumlarda Android ve iOS'ta, çalışma zamanında (TestFlight testi sırasında olduğu gibi) çökmeler meydana gelebilir. Bunun nedeni, temeldeki whisper.cpp kütüphanesinin bellek ayırma gereksinimlerinin, bu platformlarda Unreal Engine'in varsayılan ayırıcılarıyla çakışmasıdır. Diğer platformlarda, FMalloc varsayılan olarak ANSI ayırıcısını kullanır, bu nedenle bu sorun özellikle Android ve iOS'a özgüdür.

Bunu çözmek için, projenizin Target.cs dosyasında ANSI ayırıcısını zorlamanız gerekir:

Unreal Engine 5.5 ve önceki sürümler için:

  • Projeniz kaynak koddan derlenmiş bir motor kullanmalıdır (önceden derlenmiş bir ikili değil)
  • Target.cs dosyanıza aşağıdaki satırı ekleyin:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");

Unreal Engine 5.6 ve sonrası için:

  • Hem kaynak koddan derlenmiş hem de önceden derlenmiş motor yapıları ile çalışır
  • Target.cs dosyanıza aşağıdaki satırı ekleyin:
StaticAllocator = StaticAllocatorType.Ansi;

Bu, Unreal Engine'i Android ve iOS'ta ANSI ayırıcıyı kullanmaya zorlar ve whisper.cpp tarafından kullanılan ayırıcıyla eşleşir.