المخرجات والشرح
الاستدلال يُرجع قائمة من MuaalemOutput (src/quran_muaalem/muaalem_typing.py). كل عنصر يحتوي على:
phonemes: كائنUnitمع نص الفونيمات، الاحتمالات، والمعرّفات.sifat: قائمةSifa(عنصر لكل مجموعة فونيمات) مع خصائص اختيارية.
مخطط المخرجات (مفهومي)
text
MuaalemOutput
phonemes: Unit
sifat: list[Sifa]
Unit
text: str
probs: Tensor | list[float]
ids: Tensor | list[int]
Sifa
phonemes_group: str
hams_or_jahr: SingleUnit | None
shidda_or_rakhawa: SingleUnit | None
tafkheem_or_taqeeq: SingleUnit | None
itbaq: SingleUnit | None
safeer: SingleUnit | None
qalqla: SingleUnit | None
tikraar: SingleUnit | None
tafashie: SingleUnit | None
istitala: SingleUnit | None
ghonna: SingleUnit | None
SingleUnit
text: str
prob: float
idx: intمثال مبسّط
json
{
"phonemes": {
"text": "بِسْمِٱللَّهِ...",
"probs": [0.98, 0.93, 0.87],
"ids": [12, 7, 31]
},
"sifat": [
{
"phonemes_group": "بِ",
"hams_or_jahr": {"text": "jahr", "prob": 0.99, "idx": 1},
"shidda_or_rakhawa": {"text": "shadeed", "prob": 0.95, "idx": 2},
"tafkheem_or_taqeeq": {"text": "moraqaq", "prob": 0.94, "idx": 1},
"itbaq": {"text": "monfateh", "prob": 0.92, "idx": 1},
"safeer": {"text": "no_safeer", "prob": 0.99, "idx": 0},
"qalqla": {"text": "not_moqalqal", "prob": 0.99, "idx": 0},
"tikraar": {"text": "not_mokarar", "prob": 0.99, "idx": 0},
"tafashie": {"text": "not_motafashie", "prob": 0.99, "idx": 0},
"istitala": {"text": "not_mostateel", "prob": 0.99, "idx": 0},
"ghonna": {"text": "not_maghnoon", "prob": 0.99, "idx": 0}
}
]
}ملاحظات:
probsناتجة عن softmax خاص بـ CTC وليست مُعايرة بالضرورة.- قد تكون بعض حقول
SifaبقيمةNoneإذا حدث عدم تطابق في المحاذاة.
مقارنة التوقع مع المرجع
هناك وحدتان لعرض النتائج:
src/quran_muaalem/explain.pyيعرض جدولًا في الطرفية باستخدامrich.explain_for_terminal(...)يبني فرقًا بين الفونيمات المتوقعة والمرجع ثم يطبع جدولًا.
src/quran_muaalem/explain_gradio.pyيولّد HTML لواجهة Gradio.explain_for_gradio(...)يعرض فرقًا ملونًا للفونيمات وجدول خصائص.
كلاهما يستخدم diff-match-patch لتقسيم الإدراجات والحذف والاختلافات الجزئية بين الفونيمات.
حقول Sifa
hams_or_jahrshidda_or_rakhawatafkheem_or_taqeeqitbaqsafeerqalqlatikraartafashieistitalaghonna