Moshaf Attributes
The phonetic conversion is controlled by MoshafAttributes in quran-transcript/src/quran_transcript/phonetics/moshaf_attributes.py. It is a pydantic.BaseModel containing Quran‑specific recitation options (madd lengths, takbeer, sakt, etc.).
Why it matters
The same Uthmani text can be realized in different phonetic forms depending on the recitation settings. MoshafAttributes defines those choices and directly affects:
- the generated phoneme sequence
- the derived sifat labels
Researchers should record the attribute configuration with each experiment.
How the UI uses it
In src/quran_muaalem/gradio_app.py:
REQUIRED_MOSHAF_FIELDSenumerates the attributes exposed in the UI.create_gradio_input_for_field(...)introspectsMoshafAttributes.model_fieldsand builds inputs.get_arabic_name(...)andget_arabic_attributes(...)provide label metadata.
Programmatic docs
MoshafAttributes can render its own documentation table via:
python
from quran_transcript.phonetics.moshaf_attributes import MoshafAttributes
print(MoshafAttributes.generate_docs())This is useful for exporting attribute definitions into papers or datasets.
Constraints to be aware of
madd_alleen_lenmust be <=madd_aared_len(validated in the model).- Some attributes affect special cases (e.g., sakt positions, raa tafkheem/tarqeeq rules).
Exposing more fields in the UI
To show additional fields:
- Add the field name to
REQUIRED_MOSHAF_FIELDSinsrc/quran_muaalem/gradio_app.py.