جزاك الله خيرًا شيخ أحمد، وبارك الله فيكم وفي «منجم». أجيبك عن النقاط الثلاث باختصار:
١) هل يمكن لتطبيق آخر الاستفادة من المحرّك؟
نعم، ولا يحتاج إلى خادم أو قاعدة بيانات أو حساب مستخدم. التطبيق يعمل في المتصفح، والحفظ محلي عبر localStorage.
أضفت في الـ README قسمًا بعنوان «البناء على هذا العمل» يوضح مصادر النص والصوت والتزمين، وكيف تُخزّن البيانات وتُستخدم. كما أن ملفات المحرّك منفصلة عن الواجهة، لذلك يمكن إعادة استخدامها في تطبيق آخر.
هناك شرطان مهمان عند استخدام مصدر صوت مختلف: أن يدعم access-control-allow-origin، وأن يتوافق الملف الصوتي مع بيانات التزمين.
وأضفت أيضًا ترخيص 0BSD لما كتبناه في المشروع، أما البيانات الخارجية فتراخيصها الأصلية موضحة في NOTICE.
٢) مصاحف المتقنين والمصاحف التعليمية
أضفت أيمن سويد، والمنشاوي المجوّد، وعبد الباسط المجوّد، والحصري المعلّم موجود من قبل.
بعض القراء مثل محمود علي البنا وعبد الله بصفر وعلي الحذيفي ومحمد أيوب لم أتمكن من إضافتهم لعدم توفر تزمين كلمات مناسب.
ووجدت مشكلة مهمة في المنشاوي المعلّم: بيانات التزمين موجودة، لكنها تخص تسجيلًا مختلفًا عن ملف الصوت المستخدم. لذلك أضفت تحققًا آليًا يقارن التزمين بأطوال الملفات ويرفض البيانات غير المتوافقة.
٣) عبارة «٣ آيات»
معك حق، وكانت موهمة. أصبح اسمها الآن «طول المدى»، وأصبح التكرار تحت عنوان مستقل هو «مرات التكرار».
وبخصوص الإزاحة الزمنية
ملاحظتك كانت صحيحة. بعد قياس 390 ملفًا صوتيًا، ظهر أن تزمين الكلمات وحده لا يكشف السكتة الحقيقية، لأنها غالبًا تكون داخل مدة الكلمة نفسها.
لذلك أصبح القطع متأخرًا بنحو 300ms، مع الحفاظ على السكتة الطبيعية بين المقاطع.
لكن الحل الأدق على المدى البعيد هو استخراج مواضع الوقف من الصوت نفسه مسبقًا وحفظها كبيانات ثابتة.
وهنا تحديدًا أرى فائدة كبيرة لـ«منجم»: لو وفر تزمينًا لمواضع الوقف الفعلية لكل قارئ وتسجيل، فلن يحتاج كل تطبيق إلى استنتاجها بنفسه.
وضعت تفاصيل القياسات والطريقة هنا:
data/README.md
والبيانات التي جمعتها متاحة لكم إن نفعتكم.
بارك الله فيكم وفي «منجم»، ونفع بكم.