Spaces:
Sleeping
Sleeping
| import os | |
| import gradio as gr | |
| from gradio_client import Client, handle_file | |
| from surahs_list import QURAN_SURAHS | |
| HF_TOKEN = os.getenv("HF_TOKEN") | |
| client = Client("aboalaa1472/Quran_ASR", token=HF_TOKEN) | |
| SURAH_CHOICES = [f"{num} - {name}" for num, name in QURAN_SURAHS.items()] | |
| def process_quran_asr(audio_input, surah_choice): | |
| if audio_input is None: | |
| return "برجاء رفع ملف صوتي أو التسجيل", None, None, None, None | |
| try: | |
| result = client.predict( | |
| uploaded_audio=handle_file(audio_input), | |
| mic_audio=handle_file(audio_input), | |
| surah_choice=surah_choice, | |
| api_name="/run_full_system" | |
| ) | |
| return result | |
| except Exception as e: | |
| return f"حدث خطأ أثناء الاتصال بالخادم: {str(e)}", None, None, None, None | |
| # 2. بناء الواجهة العامة | |
| with gr.Blocks(title="نظام تصحيح التلاوة") as demo: | |
| gr.Markdown("# 📖 نظام التعرف على القراءة وتصحيح التلاوة") | |
| gr.Markdown("هذه واجهة مستخدم عامة، الكود الأساسي محفوظ في مساحة خاصة.") | |
| with gr.Row(): | |
| with gr.Column(): | |
| audio_in = gr.Audio( | |
| label="🎙️ سجل صوتك أو ارفع ملف", | |
| type="filepath" | |
| ) | |
| surah_dropdown = gr.Dropdown( | |
| choices=SURAH_CHOICES, | |
| label="🕌 اختر السورة", | |
| value=SURAH_CHOICES[0] | |
| ) | |
| btn = gr.Button("إرسال للتحليل", variant="primary") | |
| with gr.Column(): | |
| out_text = gr.Textbox(label="📝 النص المستخرج من صوتك") | |
| with gr.Row(): | |
| out_word_report = gr.File(label="📄 تقرير أخطاء الكلمات") | |
| out_tajweed_report = gr.File(label="✍️ تقرير أخطاء التشكيل") | |
| with gr.Row(): | |
| out_verses = gr.File(label="📖 نص الآيات المكتشفة") | |
| out_original = gr.File(label="💾 ملف النص الأصلي") | |
| btn.click( | |
| fn=process_quran_asr, | |
| inputs=[audio_in, surah_dropdown], | |
| outputs=[out_text, out_word_report, out_tajweed_report, out_verses, out_original] | |
| ) | |
| demo.launch() |