Acuan: fonetik dan hukum tajwid

Bagaimana sebuah bacaan seharusnya, bunyi demi bunyi dan hukum demi hukum: mesin quran-g2p dan dataset quran-tajweed-phonetics, cara keduanya terhubung dengan unit yang diharapkan dari model, dan di mana setiap hukum dinyatakan dalam kitab.

Model mendengar. Bagaimana sebuah bacaan seharusnya, bunyi demi bunyi dan hukum demi hukum, adalah acuan Quran Lab untuk fonetik dan hukum tajwid Al-Qur'an, dalam riwayat Hafs 'an 'Ashim dari thariq asy-Syathibiyyah. Setiap ayat dituliskan sebagai rangkaian fon (bunyi), dan setiap fon membawa hukum yang membentuknya. Acuan inilah kebenaran dasar yang menjadi sumber label model dan unit yang diharapkan darinya (model.reference). Acuan ini terbuka di dua tempat: mesinnya, quran-g2p, dan dataset yang dibuat dengannya, quran-tajweed-phonetics.

Dari hukum ke kitab dan halamannya

Setiap fon dalam dataset mencantumkan di rules id hukum yang menghasilkannya, misalnya R185_MUTTASIL. Setiap id merujuk ke rulings.jsonl dalam dataset: nama hukum dalam bahasa Arab dan Inggris, fasenya, dan rujukan klasiknya persis seperti tertulis di berkas itu, yaitu kitabnya beserta jilid dan halaman atau baitnya. Jadi, ketika penilai milik aplikasi Anda sendiri mendapati, dari apa yang didengar model, bahwa seorang pelajar tidak membaca suatu tempat sebagaimana ditetapkan acuan, aplikasi dapat menunjukkan kepada pelajar hukum yang berlaku di sana dan di mana para ulama menyatakannya. Contoh di bawah menunjukkan rantai lengkapnya pada data nyata.

Rujukan itu menunjukkan di mana kitab-kitab klasik menyatakan hukum yang diterapkan mesin. Rujukan itu tidak menyatakan bahwa pelajar keliru. Penilaian itu milik aplikasi Anda, dibuat berdasarkan keluaran model (Bangun umpan balik sendiri); baik SDK maupun Quran Lab tidak pernah memberi tahu pelajar bahwa ia melanggar suatu hukum.

Cakupan berkas yang diterbitkan, dihitung untuk halaman ini:

  • Fon-fon itu membawa 45 id berbeda di rules. 44 di antaranya merujuk ke rulings.jsonl. Id ke-45, EMIT, bukan hukum: ia mencatat bahwa fon itu dibaca dari teks tertulis. Lewati id ini.
  • rulings.jsonl berisi 62 hukum, masing-masing sama persis, kolom demi kolom, dengan register mesin. Register kini berisi 63: yang tidak ada di berkas itu, R162_NAKHLUQKUM_NAQIS (wajah kedua pada 77:20), ditambahkan ke mesin setelah dataset terakhir kali dibuat, dan tidak ada fon dalam dataset yang membawanya. README mesin dan kartu dataset masih menyebut 62; berkas register menyebut 63, dan 63 adalah jumlah saat ini.
  • 53 dari 62 rujukan menyebut letaknya dalam kitab: jilid dan halaman, halaman, atau nomor bait. 9 menyebut karya tanpa letaknya: R134_LAM_JALALA_ALIF, R180_TABEEI, R189_AARED dan R212_LAM_JALALA mengutip baris syair yang dirujuk, sedangkan R112_STRIP_INITIAL_SHADDA, R121_MADD_EWAD, R130_WASL_ELISION, R221_IMALA dan R222_TASHEEL hanya menyebut karyanya.
  • Setiap hukum memiliki baris tinjauan di register_reviewed.jsonl: ayat yang menjadi saksinya, rumusan hukum untuk ayat itu, dan putusan peninjau (صحيح atau فيه وجهان). Baris-baris itu memakai id tinjauan sendiri (R185_MUTTASIL milik mesin ditinjau sebagai R182_MUTTASIL), sehingga jalan dari id mesin ke barisnya melalui register mesin: kolom tinjauannya menyebut baris golden (tests/goldens/) yang mengajukan hukum itu kepada para peninjau, dan setiap baris golden menyebut ayatnya. Dengan cara itu, ke-63 hukum mencapai setidaknya satu baris tinjauan.

Mesin dan dataset

quran-g2p adalah mesinnya: teks masuk, fon beratribut tajwid keluar, ditulis dalam Python tanpa dependensi. Yang dipakai pengembang di dalamnya:

  • src/quran_g2p/: mesinnya. phonemize memberikan fon sebuah ayat, dan tokenlayer_tj3 mengubah fon menjadi token model.
  • docs/RULINGS-REGISTER.md: register, dibuat dari kode mesin. Setiap hukum dengan id-nya, namanya dalam bahasa Arab dan Inggris, sumbernya, dan baris tinjauannya.
  • artifacts/tokenizer_tj3/: kosakata model, tokens.txt dan manifesnya.
  • artifacts/spans/: hukum-hukum sebagai offset karakter pada seluruh 6.236 ayat, untuk proyek yang tidak dapat menjalankan Python.

quran-tajweed-phonetics adalah datasetnya: 6.236 ayat dan 522.475 fon, dibuat dengan mesin itu.

Berkas (config) Isinya
quran_phonetics.jsonl (phonetics) Satu baris per ayat: surah, ayah, text dan phones. Setiap fon memiliki base, kind, geminated, word_index, tafkheem, dan bila berlaku tafkheem_rank, ghunna, qalqalah, length, sakt_after, rules, serta sifat pada konsonan
rulings.jsonl (rulings) Satu baris per hukum: rule_id, phase, name_ar, name_en, spec, citation
register_reviewed.jsonl (register_reviewed) 208 baris yang ditinjau: row, surah, ayah, rule_id, ruling_ar, citation, review_verdict, reviewed_by, arbitration
rule_index.jsonl (rule_index) Per ayat, setiap fon yang membawa hukum: indeksnya i di antara fon ayat itu, span-nya (karakter text tempat fon itu dibaca), hukum dan panjangnya; serta events, yaitu hukum yang efeknya berupa tidak adanya sebuah fon
quran_labels_v1.jsonl (labels), ayah_tokens.jsonl (tokens), tokens.txt, vocab_manifest.json Label dan urutan token dalam kosakata lama berisi 234 token, bukan 38 token model

word_index menghitung kata fonetis dalam ayat: satu per kata tertulis, kecuali pada 27 ayat yang huruf pembukanya dieja (R011_MUQATTAAT), tempat nama setiap huruf menjadi kata tersendiri.

Lisensinya, dengan kata-kata kartu dataset: "Quran-Lab No-Profit License 1.2 (lihat LICENSE): bebas digunakan, diadaptasi, dan didistribusikan ulang, dengan lisensi yang sama. Karya itu sendiri tidak pernah untuk dijual, sehingga Anda tidak boleh memungut bayaran untuknya, untuk akses kepadanya, atau untuk fitur yang ditenagainya, dan hal yang sama berlaku bagi turunannya, termasuk model yang dilatih dengannya."

Bagaimana acuan ini diverifikasi

Dari kartu dataset dan README mesin. Setiap hukum membawa rujukan klasiknya, dan setiap rujukan diperiksa terhadap kitab cetaknya. Register hukum yang dibaca para peninjau berisi 208 entri. Seorang hafiz pemegang ijazah, Shaikh Sami Almadani, memutuskan ke-208 entri itu dari talaqqi-nya sendiri: 191 dikonfirmasi, 17 dikonfirmasi sambil mencatat wajah kedua yang diriwayatkan, dan tidak ada yang dinilai salah. Seluruh register kemudian menjalani tahkim ilmiah formal (تحكيم علمي) oleh dua profesor qiraat yang sedang menjabat di Universitas Umm al-Qura di Makkah, masing-masing dilibatkan secara terpisah dan tanpa mengetahui peninjau lainnya: yang pertama mengonfirmasi register, dan tidak satu pun catatan yang kedua membatalkan hukum fonetis. Pada seluruh korpus, dua edisi mushaf yang dipatok (Tanzil dan KFGQPC) menghasilkan fon yang identik untuk seluruh 6.236 ayat; fon-fon itu sesuai dengan dabt (tanda baca) mushaf sendiri pada sekitar 8.900 tempat tanwin; fon-fon itu diperiksa dua arah terhadap dataset rentang hukum quran-tajweed (60.057 anotasi) dan kata demi kata terhadap mushaf Madinah berwarna terbitan Kompleks Raja Fahd (77.429 kata); kartu dataset mencantumkan perbedaannya.

Model dan acuan

38 token itu milik mesin. model.tokens dari TajweedFormer V4 adalah kosakata tj3 mesin: tokens.txt model 4.0.0 sama byte demi byte dengan artifacts/tokenizer_tj3/tokens.txt (SHA-256 66fe6eb81b15506270f9e3c6efb0724cda757cd54326f26ca4bcd6be4f3b2aa4). Satu token per bunyi: vokal panjang adalah satu token (vokal dan huruf madnya), dan konsonan bertasydid adalah satu token. Jumlah harakat mad, tasydid, panjang ghunnah, raum dan saktah bukan token, begitu pula tafkhim, qalqalah dan kelas ghunnah: model memberikannya sebagai head (timing_log_probs, gem, attr_tafkheem, attr_qalqalah, attr_ghunna; Bangun umpan balik sendiri). Di situlah syaddah, ghunnah dan idgham berada: sebagai head di model, dan sebagai geminated, ghunna serta id hukum di acuan.

model.reference dibuat dari dataset. Pipeline rilis Quran Lab merender setiap baris quran_phonetics.jsonl dengan tokenlayer_tj3.phones_to_tj3_units milik mesin: unit ayat yang dibaca dari awalnya hingga akhirnya dengan berhenti di sana, dengan batas kata | di antara kata, beserta kata dari setiap unit. Diperiksa untuk halaman ini pada seluruh 6.236 ayat: tabel yang dirilis bersama 4.0.0 sama dengan hasil quran-g2p pada commit publiknya saat ini (7eeba12), dan fon dalam dataset sama dengan fon mesin.

Penghubungnya. phones_to_tj3_units([[p] for p in row["phones"]]) mengembalikan unit ayat dan, untuk setiap fon, indeks unit yang dibentuknya. Unit-unit itu persis sama dengan yang diberikan model.reference untuk ayat tersebut, sehingga unit i dari referensi terdiri dari fon yang indeksnya i: vokal panjang terdiri dari vokalnya dan huruf madnya, dan setiap unit lain adalah satu fon. Tabel yang dikirim bersama SDK hanya berisi id unit dan kata. Fon, tandanya dan hukumnya berasal dari dataset melalui penghubung ini. Untuk huruf-hurufnya, rule_index.jsonl memberi setiap fon yang membawa hukum karakter text tempat fon itu dibaca (span), dan mesin memberikan hal yang sama untuk setiap fon (src_span).

Contoh lengkap

Clone mesinnya dan letakkan tiga berkas dataset di sampingnya: quran_phonetics.jsonl (sekitar 150 MB), rulings.jsonl dan register_reviewed.jsonl.

git clone https://github.com/Quran-Lab/quran-g2p

Simpan ini sebagai reference_example.py di folder yang sama:

# reference_example.py: the reference for one ayah, joined to the model's expected units.
#   python reference_example.py 1 1             each unit with its phones, their rules, and the rules' sources
#   python reference_example.py R185_MUTTASIL   one ruling: its row of rulings.jsonl and its reviewed rows
# Beside this file: a clone of quran-g2p, and rulings.jsonl, quran_phonetics.jsonl and register_reviewed.jsonl
# from the dataset. The ruling mode also needs pyyaml (pip install pyyaml).
import glob, json, sys
sys.path.insert(0, "quran-g2p/src")
from quran_g2p import tokenlayer_tj3 as tj3

def rows(name):
    with open(name, encoding="utf-8") as f:
        yield from map(json.loads, f)

rulings = {r["rule_id"]: r for r in rows("rulings.jsonl")}

def ayah(surah, number):
    row = next(r for r in rows("quran_phonetics.jsonl") if (r["surah"], r["ayah"]) == (surah, number))
    phones = row["phones"]
    units, first = tj3.phones_to_tj3_units([[p] for p in phones])  # first[k]: the unit phone k became
    print(row["text"])
    print("ids", [tj3.INDEX[u] for u in units])                      # what model.reference gives for the ayah
    named = []
    for i, u in enumerate(units):
        mine = [p for k, p in enumerate(phones) if first[k] == i]
        if not mine:                                                  # "|", the word boundary
            continue
        rules = list(dict.fromkeys(r for p in mine for r in p.get("rules", []) if r != "EMIT"))
        marks = ["geminated" for p in mine if p["geminated"]]
        marks += [f"{k} {p[k]}" for p in mine for k in ("ghunna", "qalqalah") if k in p]
        marks += [f"length {p['length']['allowed']}" for p in mine if "length" in p]
        print(f"{i:3} {tj3.INDEX[u]:2} {u:3} word {mine[0]['word_index']}", "+".join(p["base"] for p in mine), *marks, *rules)
        named += [r for r in rules if r not in named]
    for r in named:
        print(r, "|", rulings[r]["name_ar"], "|", rulings[r]["name_en"], "|", rulings[r]["citation"])

def ruling(rule_id):
    import yaml
    from quran_g2p.rules.registry import COVERAGE                     # the golden rows put before the reviewers
    print(json.dumps(rulings[rule_id], ensure_ascii=False))
    golden = {g["id"]: g for f in glob.glob("quran-g2p/tests/goldens/*.yaml")
              for g in yaml.safe_load(open(f, encoding="utf-8")) or []}
    sites = {(golden[g]["surah"], golden[g]["ayah"], golden[g]["rule"]) for g in COVERAGE[rule_id]}
    for r in rows("register_reviewed.jsonl"):
        if (r["surah"], r["ayah"], r["rule_id"]) in sites:
            print("row", r["row"], f"{r['surah']}:{r['ayah']}", r["rule_id"], "|", r["ruling_ar"], "|", r["review_verdict"])

if sys.argv[1].startswith("R"):
    ruling(sys.argv[1])
else:
    ayah(int(sys.argv[1]), int(sys.argv[2]))

python reference_example.py 1 1, Al-Fatihah 1:1. Setiap baris berisi: indeks unit di model.reference untuk ayat itu, id-nya di model.tokens, tokennya, katanya, fon pembentuknya beserta tandanya, dan id hukumnya. Indeks yang dilewati daftar (5, 10, 18) adalah batas kata. Baris-baris terakhir menyebut setiap hukum dari rulings.jsonl, dengan rujukannya persis seperti di berkas itu.

بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ
ids [3, 32, 13, 25, 32, 1, 24, 34, 27, 32, 1, 11, 31, 7, 25, 34, 26, 32, 1, 11, 31, 7, 35, 25]
  0  3 ب   word 0 beh
  1 32 i   word 0 kasra
  2 13 س   word 0 seen
  3 25 م   word 0 meem
  4 32 i   word 0 kasra
  6 24 ل   word 1 lam geminated R133_R160_IDGHAM_KAMIL
  7 34 aa  word 1 fatha+alef_madd length [2] R134_LAM_JALALA_ALIF R180_TABEEI
  8 27 ه   word 1 heh
  9 32 i   word 1 kasra
 11 11 ر   word 2 reh geminated R133_R160_IDGHAM_KAMIL R211_REH
 12 31 a   word 2 fatha
 13  7 ح   word 2 hah
 14 25 م   word 2 meem
 15 34 aa  word 2 fatha+alef_madd length [2] R180_TABEEI
 16 26 ن   word 2 noon
 17 32 i   word 2 kasra
 19 11 ر   word 3 reh geminated R133_R160_IDGHAM_KAMIL R211_REH
 20 31 a   word 3 fatha
 21  7 ح   word 3 hah
 22 35 ii  word 3 kasra+yeh_madd length [2, 4, 6] R189_AARED
 23 25 م   word 3 meem
R133_R160_IDGHAM_KAMIL | الإدغام الكامل (اللام الشمسية والمثلان المتصلان) | complete idgham: lam shamsiyya and adjacent mithlayn | تحفة الأطفال «للام أل حالان قبل الأحرف»؛ النشر 2:18-19
R134_LAM_JALALA_ALIF | ألف لفظ الجلالة المحذوفة رسمًا | the dagger alif of the jalala | الجزرية «وفخم اللام من اسم الله عن فتح أو ضم»
R180_TABEEI | المد الطبيعي | madd tabee'i (2) | تحفة الأطفال «والمد أصلي وفرعي له»
R211_REH | أحكام الراء تفخيمًا وترقيقًا | the raa decision table | الجزرية باب الراءات «ورقق الراء إذا ما كسرت»؛ هداية القاري 1:130
R189_AARED | المد العارض للسكون | madd 'aared lil-sukun (2/4/6) | تحفة الأطفال «ومثل ذا إن عرض السكون»

python reference_example.py 2 5, ayat dengan mad muttasil (unit 3 dan 35) dan idgham bighunnah (unit 19). Di tempat keluaran dipotong, sebuah baris menampilkan ....

أُو۟لَٰٓئِكَ عَلَىٰ هُدًى مِّن رَّبِّهِمْ وَأُو۟لَٰٓئِكَ هُمُ ٱلْمُفْلِحُونَ
ids [2, 33, 24, 34, 2, 32, 23, 31, 1, 19, 31, 24, 34, 1, 27, 33, 9, 31, 1, 25, 32, 1, 11, 31, 3, 32, 27, 32, 25, 1, 28, 31, 2, 33, 24, 34, 2, 32, 23, 31, 1, 27, 33, 25, 33, 1, 24, 25, 33, 21, 24, 32, 7, 36, 26]
  0  2 ء   word 0 hamza
  1 33 u   word 0 damma
  2 24 ل   word 0 lam
  3 34 aa  word 0 fatha+alef_madd length [4, 5] R185_MUTTASIL
  4  2 ء   word 0 hamza
  5 32 i   word 0 kasra
  6 23 ك   word 0 kaf
  7 31 a   word 0 fatha
...
 14 27 ه   word 2 heh
 15 33 u   word 2 damma
 16  9 د   word 2 dal
 17 31 a   word 2 fatha
 19 25 م   word 3 meem geminated ghunna idgham length [2] R141_IDGHAM_GHUNNA
 20 32 i   word 3 kasra
 22 11 ر   word 4 reh geminated R133_R160_IDGHAM_KAMIL R211_REH
 23 31 a   word 4 fatha
 24  3 ب   word 4 beh geminated
 25 32 i   word 4 kasra
 26 27 ه   word 4 heh
 27 32 i   word 4 kasra
 28 25 م   word 4 meem
...
 53 36 uu  word 7 damma+waw_madd length [2, 4, 6] R189_AARED
 54 26 ن   word 7 noon
R185_MUTTASIL | المد الواجب المتصل | madd muttasil (4-5) | الشاطبية باب المد؛ النشر 1:315 «فوجب أن لا يعتقد أن قصر المتصل جائز عند أحد من القراء»
R180_TABEEI | المد الطبيعي | madd tabee'i (2) | تحفة الأطفال «والمد أصلي وفرعي له»
R141_IDGHAM_GHUNNA | الإدغام بغنة الكامل (ن، م) | complete idgham with ghunna | تحفة الأطفال «في يرملون»؛ النشر 2:22
R133_R160_IDGHAM_KAMIL | الإدغام الكامل (اللام الشمسية والمثلان المتصلان) | complete idgham: lam shamsiyya and adjacent mithlayn | تحفة الأطفال «للام أل حالان قبل الأحرف»؛ النشر 2:18-19
R211_REH | أحكام الراء تفخيمًا وترقيقًا | the raa decision table | الجزرية باب الراءات «ورقق الراء إذا ما كسرت»؛ هداية القاري 1:130
R189_AARED | المد العارض للسكون | madd 'aared lil-sukun (2/4/6) | تحفة الأطفال «ومثل ذا إن عرض السكون»

Huruf ب pada رَّبِّهِمْ (unit 24) bertasydid tanpa hukum: syaddah yang merupakan ejaan kata itu sendiri bukan sebuah hukum. Satu tempat di mana id hukum pada sebuah fon bukan id yang ditinjau register: ketika nun sukun mengakhiri sebuah kata dan ر atau ل mengawali kata berikutnya, seperti pada مِّن رَّبِّهِمْ (unit 22), huruf bertasydid itu membawa R133_R160_IDGHAM_KAMIL, padahal baris tinjauan untuk ayat ini berada di bawah R142_IDGHAM_BILA_GHUNNA, yang dibawa fon hanya setelah tanwin. Ada 338 tempat seperti ini. Fon dan unit di sana sesuai ketetapan; hanya id hukumnya yang bersifat umum.

python reference_example.py 112 1, qalqalah kubra saat berhenti (unit 18):

قُلْ هُوَ ٱللَّهُ أَحَدٌ
ids [22, 33, 24, 1, 27, 33, 28, 31, 1, 24, 34, 27, 33, 1, 2, 31, 7, 31, 9]
  0 22 ق   word 0 qaf R210_ISTILA
  1 33 u   word 0 damma
  2 24 ل   word 0 lam
  4 27 ه   word 1 heh
  5 33 u   word 1 damma
  6 28 و   word 1 waw
  7 31 a   word 1 fatha
  9 24 ل   word 2 lam geminated R133_R160_IDGHAM_KAMIL R212_LAM_JALALA
 10 34 aa  word 2 fatha+alef_madd length [2] R134_LAM_JALALA_ALIF R180_TABEEI
 11 27 ه   word 2 heh
 12 33 u   word 2 damma
 14  2 ء   word 3 hamza
 15 31 a   word 3 fatha
 16  7 ح   word 3 hah
 17 31 a   word 3 fatha
 18  9 د   word 3 dal qalqalah kubra R201_QALQALAH_KUBRA
R210_ISTILA | تفخيم حروف الاستعلاء ومراتبه | isti'la tafkheem and its maraatib | المقدمة الجزرية (باب صفات الحروف)؛ النويري 1:237-238
R133_R160_IDGHAM_KAMIL | الإدغام الكامل (اللام الشمسية والمثلان المتصلان) | complete idgham: lam shamsiyya and adjacent mithlayn | تحفة الأطفال «للام أل حالان قبل الأحرف»؛ النشر 2:18-19
R212_LAM_JALALA | تفخيم لام الجلالة وترقيقها | lam al-jalala tafkheem/tarqeeq | الجزرية «وفخم اللام من اسم الله عن فتح أو ضم»
R134_LAM_JALALA_ALIF | ألف لفظ الجلالة المحذوفة رسمًا | the dagger alif of the jalala | الجزرية «وفخم اللام من اسم الله عن فتح أو ضم»
R180_TABEEI | المد الطبيعي | madd tabee'i (2) | تحفة الأطفال «والمد أصلي وفرعي له»
R201_QALQALAH_KUBRA | القلقلة الكبرى | qalqalah kubra (waqf) | الجزرية «وبينن مقلقلًا إن سكنا وإن يكن في الوقف كان أبينا»؛ هداية القاري 1:84-87

Dari sebuah tempat ke kitab: hukum di setiap tempat itu, dengan barisnya di rulings.jsonl dicetak utuh beserta baris tinjauannya. python reference_example.py R185_MUTTASIL (mad pada unit 3 dari 2:5):

{"rule_id": "R185_MUTTASIL", "phase": "P10", "name_ar": "المد الواجب المتصل", "name_en": "madd muttasil (4-5)", "spec": "SPEC-185", "citation": "الشاطبية باب المد؛ النشر 1:315 «فوجب أن لا يعتقد أن قصر المتصل جائز عند أحد من القراء»"}
row 44 4:43 R182_MUTTASIL | مد واجب متصل (جَآءَ) | صحيح
row 45 2:19 R182_MUTTASIL | مد متصل (ٱلسَّمَآءِ) | صحيح

python reference_example.py R141_IDGHAM_GHUNNA (unit 19 dari 2:5):

{"rule_id": "R141_IDGHAM_GHUNNA", "phase": "P6", "name_ar": "الإدغام بغنة الكامل (ن، م)", "name_en": "complete idgham with ghunna", "spec": "SPEC-141", "citation": "تحفة الأطفال «في يرملون»؛ النشر 2:22"}
row 115 2:61 R141_IDGHAM_GHUNNA | إدغام كامل بغنة في النون (لَن نَّصْبِرَ) | صحيح
row 116 86:6 R141_IDGHAM_GHUNNA | إدغام كامل بغنة في الميم (مِن مَّآءٍ دَافِقٍ) | صحيح
row 127 2:26 R141_IDGHAM_GHUNNA | إدغام تنوين (مَثَلًا) في ميم (مَّا) | صحيح
row 176 12:32 R141_IDGHAM_GHUNNA | نون التوكيد الخفيفة تدغم في الميم وصلًا (وَلَيَكُونًا مِّنَ ٱلصَّٰغِرِينَ)؛ والوقف عليها بالألف | صحيح

python reference_example.py R201_QALQALAH_KUBRA (unit 18 dari 112:1; baris yang panjang dipotong):

{"rule_id": "R201_QALQALAH_KUBRA", "phase": "P11", "name_ar": "القلقلة الكبرى", "name_en": "qalqalah kubra (waqf)", "spec": "SPEC-200", "citation": "الجزرية «وبينن مقلقلًا إن سكنا وإن يكن في الوقف كان أبينا»؛ هداية القاري 1:84-87"}
row 18 113:1 R201_QALQALAH_KUBRA | قلقلة كبرى وقفًا (ٱلْفَلَقِ) | صحيح
row 20 112:1 R201_QALQALAH_KUBRA | قلقلة كبرى وقفًا (أَحَدٌ ...
row 21 85:20 R201_QALQALAH_KUBRA | قلقلة كبرى وقفًا للطاء (مُّحِيطُۢ) | صحيح
row 22 22:5 R201_QALQALAH_KUBRA | قلقلة كبرى وقفًا للجيم (بَهِيجٍ) | صحيح

Letak setiap hukum dalam data

Apa Pada setiap fon Id hukum
Syaddah (tasydid) geminated: true pada konsonan; satu unit, ditahan (head gem) Tidak ada hukum tersendiri untuk syaddah yang merupakan ejaan kata; dari idgham, hukum idgham itu (di bawah); R170_GHUNNA_MUSHADDADAH pada nun atau mim bertasydid
Ghunnah ghunna: asl, mushaddadah, ikhfa atau idgham; panjangnya di length pada konsonan R170_GHUNNA_MUSHADDADAH, R144_IKHFA, R214_IKHFA_TAFKHEEM, R143_IQLAB, R150_IKHFA_SHAFAWI, R141_IDGHAM_GHUNNA, R141_IDGHAM_GHUNNA_NAQIS; izhar: R140_IZHAR, R140_IZHAR_HALQI, R141_IZHAR_MUTLAQ
Idgham Pada huruf tempat huruf pertama melebur R141_IDGHAM_GHUNNA, R141_IDGHAM_GHUNNA_NAQIS, R142_IDGHAM_BILA_GHUNNA, R133_R160_IDGHAM_KAMIL, R160_MUTAMATHILAYN
Mad length pada fon mad (alef_madd, waw_madd, yeh_madd): kind (fixed atau free), allowed, canonical, scoring. Bersama vokalnya ia menjadi satu unit, aa, ii atau uu R180_TABEEI, R181_BADAL, R185_MUTTASIL, R185_MUTTASIL_WAQF, R186_MUNFASIL, R184_SILAH_KUBRA, R187_LAZIM_MUTHAQQAL, R187_R188_LAZIM, R189_AARED, R121_MADD_EWAD, R134_LAM_JALALA_ALIF, R180_PAUSAL_GLIDE
Mad lin length pada konsonan wau atau ya R190_LEEN, R188_AIN_LEEN_LAZIM
Qalqalah qalqalah: sughra, kubra atau akbar R200_QALQALAH_SUGHRA, R201_QALQALAH_KUBRA, R202_QALQALAH_AKBAR
Tafkhim tafkheem: moraqaq, mofakham atau low_mofakham, serta tafkheem_rank R210_ISTILA, R211_REH, R211_WAQF_KHILAF, R212_LAM_JALALA, R214_IKHFA_TAFKHEEM
Saktah sakt_after: true pada fon sebelum jeda R132_SAKT
Sifat huruf sifat pada setiap konsonan, dalam 12 kunci: hams_or_jahr, shidda_or_rakhawa, tafkheem_or_taqeeq, itbaq, safeer, qalqla, tikraar, tafashie, istitala, inhiraf, idhlaq, ghonna Tidak ada: sifat itu milik hurufnya

Nama dan rujukan setiap id ada di rulings.jsonl; register lengkapnya, termasuk hukum yang tidak dibawa fon mana pun, adalah docs/RULINGS-REGISTER.md.

Yang bukan acuan ini

  • Panjang adalah ketetapan, bukan pengamatan. Dengan kata-kata kartu dataset: "Ketika tradisi memberi qari pilihan (munfasil, 'aared, leen), nilai yang benar-benar terwujud dalam sebuah rekaman adalah pengukuran yang tidak dapat disediakan lapisan teks ini. Jangan perlakukan nilai kanonis sebagai kebenaran dasar pada posisi pilihan bebas." Pelajar yang membaca mad munfasil 4 atau 5 harakat masih berada dalam allowed.
  • Satu bacaan untuk setiap ayat. Baris-baris itu difonemisasi sebagai bacaan dari awal ayat hingga akhirnya, dengan berhenti di sana, demikian pula model.reference. Berhenti di tengah ayat, raum dan isymam, serta dua ayat yang dibaca tanpa berhenti di antaranya semuanya dapat dihasilkan dengan mesin; dataset tidak memuatnya.
  • Satu riwayat. Hafs 'an 'Ashim dari thariq asy-Syathibiyyah, dan tidak ada yang lain.
  • Bukan penilaian atas siapa pun. Dengan kata-kata kartu dataset: "Dataset ini menyatakan ketetapan riwayat; mensertifikasi para qari tetap menjadi tugas sanad."

Membangun umpan balik dengannya

Sebuah penilai membandingkan apa yang didengar model dengan apa yang ditetapkan ayat. SDK memberikan yang pertama (head, waktu, kalibrasi: Bangun umpan balik sendiri) dan model.reference memberikan unit yang diharapkan; acuan ini memberikan, untuk setiap unit, fonnya, hukumnya dan sumber hukumnya. Gunakan acuan untuk apa yang diharapkan dan keluaran model untuk apa yang didengar, dan rumuskan apa pun yang ditampilkan aplikasi Anda sebagai pembacaan aplikasi Anda atas model, jangan pernah sebagai fatwa keagamaan. Jangan pernah menulis teks Al-Qur'an, fon, atau penetapan hukum dari ingatan: ambil dari acuan ini.