Ana içeriğe geç

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:

  1. DirectoriesToAlwaysCook (Pişirilecek Ek Varlık Dizinleri olarak etiketlenir) içinde /RuntimeSpeechRecognizer/LanguageModels iç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.

Additional Asset Directories to Cook

  1. bCookMapsOnly değeri false olarak ayarlanmıştır. true olarak 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.

Additional Asset Directories to Cook

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.cs dosyanı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.cs dosyanı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.

not

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.