انتقل إلى المحتوى الرئيسي

استكشاف الأخطاء وإصلاحها

مشاكل تجهيز نموذج اللغة

معظم المشاكل مرتبطة بتجهيز نموذج اللغة، والتي يمكن أن تسبب مشاكل في البناء المُعبأ. على وجه التحديد، قد تواجه السجلات التالية:

LogRuntimeSpeechRecognizer: Error: Language model loading failed: Failed to load the language model asset '/RuntimeSpeechRecognizer/LanguageModels/LanguageModel.LanguageModel'

لإصلاح هذا، انتقل إلى إعدادات المشروع، ثم انتقل إلى قسم المشروع -> التعبئة. قم بالتمرير لأسفل وكشف فئة المتقدم، وتأكد من أن:

  1. DirectoriesToAlwaysCook (المسمى Additional Asset Directories to Cook) يحتوي على إدخال لـ /RuntimeSpeechRecognizer/LanguageModels بداخله. يتم هذا تلقائيًا بواسطة الإضافة أثناء وقت المحرر، لكن بعض المستخدمين أبلغوا عن ضرورة القيام به يدويًا، لذا يرجى التأكد من التحقق. هذا ضروري لضمان أن أصل نموذج اللغة يتم تجهيزه دائمًا في البناء المعبأ.

Additional Asset Directories to Cook

  1. bCookMapsOnly مضبوط على false. إذا كان مضبوطًا على true، فسيتجاهل الخاصية السابقة، وهناك احتمال أن أصل نموذج اللغة لن يتم تجهيزه بشكل صحيح. يتم هذا أيضًا تلقائيًا بواسطة الإضافة، ولكن للتأكد فقط، يرجى التحقق من هذا المتغير يدويًا أيضًا.

Additional Asset Directories to Cook

قد تكون هناك خصائص أخرى يمكن أن تؤثر على سلوك تعبئة المحرك، والتي قد تتم إضافتها إلى هذه الصفحة لاحقًا أثناء التحقيق فيها.

تعطلات Android و iOS

في بعض الحالات على Android و iOS، قد تحدث تعطلات أثناء وقت التشغيل (مثل أثناء اختبار TestFlight). يحدث هذا بسبب متطلبات تخصيص الذاكرة لمكتبة whisper.cpp الأساسية التي تتعارض مع مخصصات الذاكرة الافتراضية لـ Unreal Engine على هذه المنصات. على المنصات الأخرى، FMalloc يستخدم المخصص ANSI افتراضيًا، لذا فإن هذه المشكلة خاصة بـ Android و iOS.

لحل هذا، تحتاج إلى فرض المخصص ANSI في ملف Target.cs لمشروعك:

لـ Unreal Engine 5.5 والإصدارات السابقة:

  • يجب أن يستخدم مشروعك محركًا مبنيًا من المصدر (وليس ثنائيًا مسبق التجميع)
  • أضف السطر التالي إلى ملف Target.cs الخاص بك:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");

لـ Unreal Engine 5.6 والإصدارات الأحدث:

  • يعمل مع كل من إصدارات المحرك المبنية من المصدر والمترجمة مسبقًا
  • أضف السطرين التاليين إلى ملف Target.cs الخاص بك:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;

هذا يجبر محرك Unreal Engine على استخدام مُخصص الذاكرة ANSI على أنظمة Android و iOS، ليتطابق مع المُخصص المستخدم من قبل whisper.cpp.