Bangun umpan balik Anda sendiri di atas keluaran model
Quran Lab tidak menyediakan penilai. Apa itu head, ambang batas yang disertakan sebagai data, dan apa yang dibangun sendiri oleh aplikasi Anda.
SDK adalah mesin inferensi: SDK menerima audio dan mengembalikan keluaran model. SDK tidak pernah membandingkan bacaan dengan ayat yang diharapkan dan tidak pernah menyatakan bahwa ada yang keliru. Quran Lab tidak menyediakan penilai. Umpan balik yang dilihat pelajar adalah hasil kerja aplikasi Anda, yang dibangun di atas apa yang didengar model. Halaman ini menjelaskan apa yang Anda dapatkan dan apa yang perlu Anda bangun sendiri.
Yang diberikan SDK
Untuk setiap take (satu kali bacaan yang didengarkan SDK dari awal sampai akhir):
- Lapisan hasil dekode. Apa yang didengar model, siap ditampilkan:
text,tokens(masing-masing denganid,name,firstMs,peakMs,lastMs, danconfidence),words, serta, untuk setiap frame 40 ms, token teratas beserta token peringkat kedua dan selisih di antara keduanya.settledadalah jumlah token di bagian awal yang tidak akan berubah lagi dalam take ini;isFinalbernilai true pada hasil terakhir. - Head. Keluaran mentah jaringan, per potongan selama take berjalan dan untuk seluruh take saat take berakhir.
- Kosakata.
model.tokens: 38 token. Blank, batas kata, 28 konsonan, bunyi dengung ikhfa, vokal pendek a, i, dan u, vokal panjang aa, ii, dan uu, serta satu token untuk bunyi asing.
Selain itu, ada dua berkas data baca-saja yang disertakan bersama model. SDK tidak pernah menerapkan atau membaca satu pun dari keduanya:
- Kalibrasi (
model.calibration): ambang batas yang diukur Quran Lab untuk model ini. - Data referensi (
model.reference): unit yang diharapkan untuk setiap ayat.
Asal unit yang diharapkan dan hukum-hukumnya: model.reference dibuat dari acuan Quran Lab untuk fonetik dan hukum tajwid Al-Qur'an, yang juga memberikan untuk setiap unit fonnya, hukumnya, dan tempat kitab-kitab klasik menyatakan hukum itu. Acuan menunjukkan cara menghubungkannya dengan unit model, dengan sebuah contoh lengkap.
Head
Dua belas keluaran, dengan nama yang sama di setiap platform. Sesi menghitung log_probs, inter1_log_probs, timing_log_probs, gem, attr_qalqalah, dan conf, kecuali Anda meminta yang lain.
| Head | Laju | Keterangan |
|---|---|---|
log_probs |
40 ms | CTC akhir atas 38 token: apa yang diucapkan |
inter1_log_probs |
40 ms | CTC dari lapisan awal, yang tetap lebih dekat dengan bunyi |
inter4_log_probs |
40 ms | CTC dari lapisan tengah, untuk diagnosis |
id_log_probs |
20 ms | CTC identitas atas token yang sama, dengan resolusi waktu yang lebih halus |
timing_log_probs |
20 ms | Kapan setiap bunyi ditahan: durasi, dan berapa lama mad ditahan |
gem |
20 ms | Tasydid: tunggal atau ditahan (bersyaddah) |
attr_tafkheem |
20 ms | Tipis (tarqiq), tebal (tafkhim), atau tebal tingkat rendah |
attr_ghunna |
20 ms | Tidak ada, biasa, bertasydid, ikhfa, idgham bighunnah |
attr_qalqalah |
20 ms | Tidak ada, sughra, kubra |
attr_face |
20 ms | Tidak ada, imalah, tashil, saktah |
boundary |
20 ms | Satu logit per frame untuk tempat sebuah unit dimulai |
conf |
20 ms | Satu logit keyakinan per frame |
Head CTC berisi log-probabilitas atas token; gem dan head attr_ berisi probabilitas per kelas; boundary dan conf berupa logit (terapkan sigmoid).
Model ini sama sekali tidak memakai model bahasa: tanpa transducer, tanpa rescoring, tanpa prior teks. Model bahasa diam-diam mengoreksi apa yang diucapkan qari, dan justru itulah yang tidak Anda inginkan di sini.
Ambang batas disertakan sebagai data
calibration.json ikut bersama model, bertanda tangan dan diverifikasi seperti setiap berkas lainnya, dan SDK menyerahkannya kepada Anda persis seperti saat dikirimkan. Berkas ini terikat pada satu model dan satu kosakata; model_id dan tokens_sha256 di dalamnya menunjukkan model dan kosakata yang mana. Isinya:
- kelas perbedaan satu unit (
classes) yang dapat diuji oleh suatu pembacaan:vowel_sub,vowel_del,vowel_ins,short_to_long,long_to_short,cons_sub,cons_del, daninsertion; - empat set ambang batas bernama (
strict,balanced,sensitive,very_sensitive), masing-masing disesuaikan dengan target tingkat tanda keliru pada bacaan yang benar; - per konteks,
fusion: dua head yang dikenai ambang batas (log_probsdaninter1_log_probs), bobotaper kelas, cara menyiapkaninter1_log_probs(batas kata digabungkan ke dalam blank), serta batas clip untuk nilainya; - per konteks dan kelas, satu ambang batas dalam satuan nat untuk setiap set bernama, serta
status:validated,experimental,unverified, atauoff; - per konteks, angka untuk mad (
madd, dibaca daritiming_log_probs),qalqalah(dariattr_qalqalah),gemination(darigem), dan, bila build memilikinya, hasil baca per kata (word).
unverified berarti ambang batas disesuaikan pada data pengembangan dan belum dibaca pada data uji yang disisihkan (held-out), sehingga tidak ada klaim apa pun tentang tingkat tanda kelirunya. Build di kanal awal dapat membawa status ini pada sebuah kelas atau pada angka madd, qalqalah, dan gemination. Perlakukan status ini seperti Anda memperlakukan experimental: boleh dipakai, tetapi tidak dijamin. Status ini tidak pernah berarti bahwa pembacaan pada data uji yang disisihkan telah lulus.
Build juga bisa datang tanpa hasil baca per kata: kalibrasinya kemudian tidak memiliki blok word. Periksa bahwa blok itu ada sebelum Anda membacanya.
Ambang batas bisa berbeda dari satu versi model ke versi berikutnya. Baca ambang batas dari model yang dimuat; jangan pernah menyalinnya ke dalam kode Anda.
Yang dibangun sendiri oleh aplikasi Anda
- Unit yang diharapkan dari ayat.
model.referenceadalah tabel pencarian: masukannya surah dan ayat, keluarannya id unit dan batas kata. Data ini tidak termasuk dalam unduhan pertama; ambil satu kali. Id di dalamnya sama dengan id dimodel.tokens. - Bukti di setiap posisi. Untuk setiap posisi dalam urutan yang diharapkan dan setiap alternatif satu unit dari sebuah kelas, hitung log-probabilitas forward CTC atas seluruh urutan, baik untuk urutan yang diharapkan maupun untuk alternatifnya, pada
log_probsdan sekali lagi padainter1_log_probsyang disiapkan sesuai ketentuan kalibrasi. Rasio log-likelihood sebuah head adalah log P(alternatif terbaik) dikurangi log P(yang diharapkan). Gabungkan kedua head dengan bobot kelas tersebut,a * llr(log_probs) + (1 - a) * llr(inter1_log_probs), clip hasilnya, lalu bandingkan dengan ambang batas kalibrasi untuk konteks dan kelas itu. - Mad, qalqalah, dan tasydid. Mad dihitung dari
timing_log_probs: rentang waktu sebuah vokal panjang ditahan, dibandingkan dengan median rentang vokal pendek dalam take itu, dengan titik potong dari kalibrasi. Qalqalah dibaca dariattr_qalqalahpada frame setelah hurufnya, dan tasydid darigempada rentang huruf tersebut, masing-masing dibandingkan dengan nilainya di kalibrasi. - Set ambang batas mana yang didapat pelajar, dan perubahan apa pun per kelas. Itu adalah pengaturan aplikasi Anda.
- Redaksi yang ditampilkan kepada pelajar. Cara dan waktu sebuah perbedaan ditampilkan adalah keputusan Anda.
docs/migrating-to-3.md di setiap SDK menjelaskan penyelarasan dan rasionya langkah demi langkah.
Batasan yang perlu Anda perhitungkan dalam desain
Menurut kartu model, untuk TajweedFormer V4:
- Kalibrasi rilis ini menandai tasydid sebagai
offdan qalqalah sebagaiexperimental; build lain bisa menandainya secara berbeda, jadi baca setiap status dari model yang dimuat. Headattr_ghunnadanattr_tafkheemtidak memiliki ambang batas yang tervalidasi dalam rilis ini: perlakukan keduanya sebagai sinyal mentah. - Mad lazim memiliki terlalu sedikit titik kalibrasi untuk bisa diandalkan, dan mad muttasil adalah kelas mad yang paling lemah.
- Rekaman dari ponsel dan suara anak-anak adalah kasus terlemah untuk setiap ambang batas.
- Ambang batas disesuaikan untuk nilai gabungan dua head. Satu head saja, atau teks greedy, bukan bukti bahwa pelajar keliru membaca sesuatu.
Yang diminta lisensi dari layar Anda
Di tempat aplikasi Anda menampilkan umpan balik yang dibangun di atas model, sampaikan hal itu dalam satu baris: "Umpan balik tajwid otomatis bisa keliru. Umpan balik ini tidak menggantikan guru yang berkompeten." Jangan pernah menyajikan keluaran model sebagai fatwa keagamaan atas bacaan siapa pun, dan jangan pernah memungut biaya untuk model, untuk akses ke model, atau untuk fitur yang ditenagainya. Pengajaran dan pekerjaan Anda sendiri tetap milik Anda.
Analitik untuk apa yang Anda bangun
SDK menghitung apa yang diukurnya sendiri: take, detik audio, ucapan dan hening, latensi, token. Hal yang tidak dapat diketahui SDK tanpa umpan balik Anda boleh dilaporkan oleh aplikasi Anda; jika aplikasi tidak melaporkannya, tidak ada yang dikirim:
session.reportRecited(1, 1, 7); // surah, first ayah, last ayah of this take
client.analytics.reportChecks('vowel_sub', 31, 1); // your rule, times checked, times flaggedKeduanya masuk ke total anonim hari itu dan ditandai di halaman aplikasi Anda sebagai dilaporkan oleh aplikasi.