TODO: docs
Install the package directly from GitHub using pip:
pip install quran-transcriptإنشاء كائن Aya لتمثيل آية محددة واسترجاع معلوماتها
from quran_transcript import Aya
aya = Aya(1, 1) # سورة الفاتحة، الآية 1
print(aya)
aya_info = aya.get()
print(aya_info)التنقل عبر جميع الآيات في القرآن
start_aya = Aya()
for aya in start_aya.get_ayat_after():
aya_info = aya.get()
# Do something with the aya infoبناء خريطة بأرقام السور وعدد آياتها
sura_to_aya_count = {}
start_aya = Aya(1, 1)
for i in range(1, 115): # 114 سورة في القرآن
aya.set(i, 1)
sura_to_aya_count[i] = aya.get().num_ayat_in_sura
print(sura_to_aya_count)تحويل الرسم الإملائي للرسم العثماني
from quran_transcript import search, Aya
imlaey_text = 'فأخرج به من الثمرات رزقا لكم'
results = search(
imlaey_text,
start_aya=Aya(2, 13),
window=20,
remove_tashkeel=True
)
uthmani_script = results[0].uthmani_script
print(uthmani_script)تحويل الرسم العثماني للرسم الصوتي للقرآن
from quran_transcript import Aya, search, quran_phonetizer, MoshafAttributes
import json
imlaey_text = "بسم الله الرحمن الرحيم"
results = search(
imlaey_text,
start_aya=Aya(1, 1),
window=2,
remove_tashkeel=True
)
uthmani_script = results[0].uthmani_script
print(f"الرسم العثماني:\n{uthmani_script}")
# تحديد خصائص المصحف للتحويل الصوتي
moshaf = MoshafAttributes(
rewaya="hafs",
madd_monfasel_len=4,
madd_mottasel_len=4,
madd_mottasel_waqf=4,
madd_aared_len=4,
)
phonetic_script = quran_phonetizer(uthmani_script, moshaf)
print('\n' * 2)
print(f"الرسم الصوتي:\n{phonetic_script.phonemes}")
print('\n' * 2)
print("صفات الحروف:")
for sifa in phonetic_script.sifat:
print(json.dumps(sifa.model_dump(), ensure_ascii=False, indent=4))
print()📘 For more information on
MoshafAttributes, refer to the Quran Dataset Documentation.
| Phoneme Name | Symbol | الحرف بالعربية |
|---|---|---|
| hamza | ء | همزة |
| baa | ب | باء |
| taa | ت | تاء |
| thaa | ث | ثاء |
| jeem | ج | جيم |
| haa_mohmala | ح | حاء |
| khaa | خ | خاء |
| daal | د | دال |
| thaal | ذ | ذال |
| raa | ر | راء |
| zay | ز | زاي |
| seen | س | سين |
| sheen | ش | شين |
| saad | ص | صاد |
| daad | ض | ضاد |
| taa_mofakhama | ط | طاء |
| zaa_mofakhama | ظ | ظاء |
| ayn | ع | عين |
| ghyn | غ | غين |
| faa | ف | فاء |
| qaf | ق | قاف |
| kaf | ك | كاف |
| lam | ل | لام |
| meem | م | ميم |
| noon | ن | نون |
| haa | ه | هاء |
| waw | و | واو |
| yaa | ي | ياء |
| alif | ا | نصف مد ألف |
| yaa_madd | ۦ | نصف مد ياء |
| waw_madd | ۥ | نصف مد واوا |
| fatha | َ | فتحة |
| dama | ُ | ضمة |
| kasra | ِ | كسرة |
| fatha_momala | ۪ | فتحة ممالة |
| alif_momala | ـ | ألف ممالة |
| hamza_mosahala | ٲ | همزة مسهلة |
| qlqla | ڇ | قلقة |
| noon_mokhfah | ں | نون مخفاة |
| meem_mokhfah | ۾ | ميم مخفاة |
| sakt | ۜ | سكت |
| dama_mokhtalasa | ؙ | ضمة مختلسة (عند الروم في تأمنا) |
| Sifat (English) | Sifat (Arabic) | Available Attributes (English) | Available Attributes (Arabic) |
|---|---|---|---|
| hams_or_jahr | الهمس أو الجهر | hams, jahr | همس, جهر |
| shidda_or_rakhawa | الشدة أو الرخاوة | shadeed, between, rikhw | شديد, بين بين, رخو |
| tafkheem_or_taqeeq | التفخيم أو الترقيق | mofakham, moraqaq, low_mofakham | مفخم, مرقق, أدنى المفخم |
| itbaq | الإطباق | monfateh, motbaq | منفتح, مطبق |
| safeer | الصفير | safeer, no_safeer | صفير, لا صفير |
| qalqla | القلقلة | moqalqal, not_moqalqal | مقلقل, غير مقلقل |
| tikraar | التكرار | mokarar, not_mokarar | مكرر, غير مكرر |
| tafashie | التفشي | motafashie, not_motafashie | متفشي, غير متفشي |
| istitala | الاستطالة | mostateel, not_mostateel | مستطيل, غير مستطيل |
| ghonna | الغنة | maghnoon, not_maghnoon | مغنون, غير مغنون |
create a venv or a conda environment to avoid coflicts, Then
cd quran-transcript
python -m pip install -r ./
To start server:
python -m uvicorn server:app --port 900To start streamlit
python -m streamlit run streamlit_app[TODO]
Merging Uthmani Quran and Imlaye Quran scipts of tanzil into a single scipt (".xml" and ".json")
- Uthmanic: without (pause marks, sajda signs, hizb signs)
- Imlaey: without (pause marks, sajda signs, hizb signs and tatweel sign) Usage:
usage: Merge Uthmani and Imlaey Script into a single scipt [-h] [--uthmani-file UTHMANI_FILE] [--imlaey-file IMLAEY_FILE] [--output-file OUTPUT_FILE]
options:
-h, --help show this help message and exit
--uthmani-file UTHMANI_FILE
The path to the input file "file.xml"
--imlaey-file IMLAEY_FILE
The path to the input file "file.xml"
--output-file OUTPUT_FILE
The path to the output file either ".json" or ".xml"Example within the repo (json):
python merge_uthman_imlaey.py --uthmani-file quran-script/quran-uthmani-without-pause-sajda-hizb-marks.xml --imlaey-file quran-script/quran-simple-imlaey-without-puase-sajda-hizb-marks-and-tatweel.xml --output-file quran-script/quran-uthmani-imlaey.jsonExample within the repo (json):
python merge_uthman_imlaey.py --uthmani-file quran-script/quran-uthmani-without-pause-sajda-hizb-marks.xml --imlaey-file quran-script/quran-simple-imlaey-without-puase-sajda-hizb-marks-and-tatweel.xml --output-file quran-script/quran-uthmani-imlaey.xml-
quran_transcriptdocs - adding tests
- CI/CD with github