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

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

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

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

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

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

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

دلائل الأصول الإضافية للطهي

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

دلائل الأصول الإضافية للطهي

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

تعطلات 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 الخاص بك:
StaticAllocator = StaticAllocatorType.Ansi;

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