
بقلم: ليلى | محررة أدوات المطورين · صوت تحريري بإشراف بشري
أصدر مشروع llama.cpp الإصدار b10369، الذي يجلب دعماً كاملاً لنموذج Pocket-TTS لتوليد الصوت من النص، مع إعادة هيكلة جذرية لطريقة حساب التحويلات المعكوسة داخل فك الترميز الصوتي، أسفرت عن تسريع وقت توليد كل إطار صوتي بنسبة 80% على CUDA و50% على المعالج المركزي CPU (وفقاً لـ llama.cpp Release Notes).
التغيير التقني الجوهري في هذا الإصدار يكمن في طريقة معالجة عمليات conv_transpose_1d داخل مفكك ترميز SeanNet. كانت المشكلة أن ggml_conv_transpose_1d لا يدعم الوضع المجمّع (grouped mode)، مما كان يجبر المطورين على تنفيذ كل قناة تحويل بعملية منفصلة ثم ربطها ببعضها، فتفيض الرسم البياني للحسابات بعُقد صغيرة كثيرة تجعل تشغيل النوى الحسابية (kernel launches) العبء الأكبر لا الحسابات نفسها. الحل الذي جاء به هذا الإصدار هو تحويل العملية بأكملها إلى صيغة GEMM + col2im: في الحالة العامة، يُعاد تشكيل النواة إلى الأبعاد [IC, K × OC] وتُضرب في المدخل ضرباً مصفوفياً، وفي الحالة المعمّقة (depthwise) تُجرى عملية ضرب مصفوفي على دفعات عبر القنوات. تضمن عملية col2im_1d الأخيرة تجميع الأعمدة عودةً إلى الإشارة بالشكل ذاته، ما يبقي منطق الضبط والحالة المتدفقة والانحياز سليمة دون تعديل.
ما يطمئن المطورين هو أن هذا التحسين الجذري في الأداء لم يُضحِّ بدقة النتائج؛ إذ تطابق المخرجات الصوتية الجديدة التنفيذ السابق عيّنةً بعيّنة، بمعامل ارتباط 0.999994 وعدد إطارات مطابق تماماً (وفقاً لـ llama.cpp Release Notes).
يحمل هذا الإصدار أيضاً دعماً أوسع لحزم اللغات في Pocket-TTS. كل حزمة لغة تضبط الآن معاملات خاصة بها داخل ملف mmproj: حزمة french_24l تطلب 8 إطارات ذيلية بعد نهاية الكلام بدلاً من التخمين الافتراضي الذي كان 3، وحزمة english_2026-01 تطلب حشو النصوص القصيرة بمسافات. تُخزَّن هذه القيم تحت مفتاحَي clip.gen.audio.frames_after_eos وclip.gen.audio.pad_short_text في ملف mmproj، وتكون اختيارية بحيث تتصرف ملفات mmproj القديمة كما كانت دون تعديل. كذلك تُحوَّل الفواصل المنقوطة إلى فواصل عادية في جميع الحزم تلقائياً. أما على نص فرنسي طويل، فأصبح الإصدار يُولّد 22.96 ثانية من الصوت مقابل 23.44 ثانية في المرجع، أي فارق أقل من 2%، مع مستوى ذروة ومقدار صمت مطابقَين (وفقاً لـ llama.cpp Release Notes).
من الناحية العملية، من يستخدم ملفات mmproj قديمة مع Pocket-TTS سيحتاج إلى إعادة تحويلها للاستفادة من المفتاحين الجديدين، وإلا سيعمل النموذج بالسلوك الافتراضي السابق. تجدر الإشارة كذلك إلى أن دعم KleidiAI على macOS Apple Silicon لا يزال معطّلاً في هذا الإصدار كما أُشير في ملاحظات الإصدار.
الإصدار b10369 متاح الآن للتنزيل عبر llama.app لمنصات macOS (Apple Silicon وIntel)، وLinux بنكهات CUDA وROCm وVulkan وOpenVINO وSYCL، وWindows بنكهات CUDA 12 و13، وAndroid وiOS. بالنسبة لمن يتابع تطور توليد الصوت بالنماذج اللغوية المحلية، هذا التحسين يجعل Pocket-TTS خياراً حقيقياً للتشغيل في الوقت الفعلي على أجهزة المستخدمين دون الحاجة إلى سحابة.







