استكشاف الأخطاء وإصلاحها
مشاكل تجهيز نموذج اللغة
معظم المشاكل مرتبطة بتجهيز نموذج اللغة، والتي يمكن أن تسبب مشاكل في البناء المُعبأ. على وجه التحديد، قد تواجه السجلات التالية:
LogRuntimeSpeechRecognizer: Error: Language model loading failed: Failed to load the language model asset '/RuntimeSpeechRecognizer/LanguageModels/LanguageModel.LanguageModel'
لإصلاح هذا، انتقل إلى إعدادات المشروع، ثم انتقل إلى قسم المشروع -> التعبئة. قم بالتمرير لأسفل وكشف فئة المتقدم، وتأكد من أن:
DirectoriesToAlwaysCook(المسمىAdditional Asset Directories to Cook) يحتوي على إدخال لـ/RuntimeSpeechRecognizer/LanguageModelsبداخله. يتم هذا تلقائيًا بواسطة الإضافة أثناء وقت المحرر، لكن بعض المستخدمين أبلغوا عن ضرورة القيام به يدويًا، لذا يرجى التأكد من التحقق. هذا ضروري لضمان أن أصل نموذج اللغة يتم تجهيزه دائمًا في البناء المعبأ.

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الخاص بك:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
هذا يجبر محرك Unreal Engine على استخدام مُخصص الذاكرة ANSI على أنظمة Android و iOS، ليتطابق مع المُخصص المستخدم من قبل whisper.cpp.