واجهة Gradio
مدخل الواجهة موجود في src/quran_muaalem/gradio_app.py ويُعرّف كسكربت طرفي باسم quran-muaalem-ui في pyproject.toml.
ماذا تفعل الواجهة؟
أهم الدوال في src/quran_muaalem/gradio_app.py:
process_audio(...)- تحميل الصوت عبر
librosa.load. - بناء مرجع صوتي عبر
quran_phonetizer. - تشغيل
Muaalemوإرجاع HTML.
- تحميل الصوت عبر
update_uthmani_ref(...)- جلب نص الرسم العثماني عبر
quran_transcript.Aya.
- جلب نص الرسم العثماني عبر
create_gradio_input_for_field(...)- بناء عناصر الإدخال من
MoshafAttributes.model_fields.
- بناء عناصر الإدخال من
مسار الاستخدام في الواجهة
- اختيار السورة و الآية.
- تحديد رقم الكلمة و عدد الكلمات.
- رفع الصوت أو التسجيل.
- الضغط على زر التحليل لإظهار المقارنة.
إذا كان مدى الكلمات يقطع كلمة عثمانية، ستظهر رسالة تحذير مرتبطة بـ PartOfUthmaniWord.
تشغيل الواجهة
python
app.launch(server_name="0.0.0.0", share=True)- لتعطيل المشاركة العامة: عدّل
share=Falseفيmain(). - لتغيير المنفذ أو الواجهة: عدّل استدعاء
app.launch(...).
تشغيل الواجهة محليًا
bash
pip install "quran-muaalem[ui]"
quran-muaalem-uiالسكربت quran-muaalem-ui يشير إلى quran_muaalem.gradio_app:main.
قيود معروفة
- الواجهة تعمل بأسلوب غير متدفق (تعالج الصوت كاملًا دفعة واحدة).
- الأداء يعتمد على طول الصوت وتوفر GPU.
- للمعالجة الدُفعية يُفضّل استخدام واجهة بايثون.