Iam-Muslim وعليكم السلام أخي محمد، بارك الله فيك.
توجد طبقتان لأن لكل واحدة منهما دورًا تقنيًا مختلفًا.
طبقة الـ ASR / CTC تتعامل مع الصوت مباشرة، وتستخدم النص القرآني المرجعي بعد الـ normalization لإجراء الـ alignment وتحديد التوقيت الزمني للكلمات.
أما Quranic-Phonemizer فلا يتعامل مع الصوت، بل يأخذ النص القرآني ويحوّله إلى phonemes تمثل النطق وأحكام التجويد، ويمكن استخدام هذه المخرجات لاحقًا كطبقة مساعدة للتحقق من صحة المحاذاة.
المسار الأساسي في #114:
Audio + Normalized Quranic Text → CTC Alignment → Word Timestamps
وفي مسار منفصل للتحقق اللغوي:
Quranic Text → Quranic-Phonemizer → Phonemes → Validation
سبب عدم تمرير الـ phonemes مباشرة إلى الـ CTC هو أن نموذج FastConformer المستخدم في #114 يعتمد على vocabulary نصي من نوع Orthographic / BPE وليس على phonemes. لذلك مخرجات Quranic-Phonemizer لا تتطابق مباشرة مع الـ tokens التي يتوقعها النموذج.
لإجراء CTC alignment على مستوى الـ phonemes، نحتاج إما إلى mapping مناسب بين التمثيلين، أو إلى acoustic model مدرّب أساسًا على phoneme targets.
باختصار، لا توجد عمليتان لتحويل الصوت. الـ CTC مسؤول عن محاذاة الصوت مع النص، بينما يعمل الـ phonemizer على النص فقط كطبقة لغوية مساعدة للتحقق من المحاذاة.