aboalaa1472 commited on
Commit
0f793cd
·
verified ·
1 Parent(s): 02822e1

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +164 -0
app.py ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ from gradio_client import Client, handle_file
4
+
5
+ HF_TOKEN = os.getenv("HF_TOKEN")
6
+ client = Client("aboalaa1472/Quran_ASR", hf_token=HF_TOKEN)
7
+
8
+ def process_quran_asr(uploaded_audio, mic_audio, surah_choice):
9
+ audio_input = uploaded_audio if uploaded_audio is not None else mic_audio
10
+
11
+ if audio_input is None:
12
+ return "برجاء رفع ملف صوتي أو التسجيل من المايك", None, None, None, None
13
+
14
+ result = client.predict(
15
+ uploaded_audio=handle_file(audio_input),
16
+ mic_audio=handle_file(audio_input),
17
+ surah_choice=surah_choice,
18
+ api_name="/run_full_system"
19
+ )
20
+
21
+ return result
22
+
23
+ with gr.Blocks(title="Quran ASR Public Interface") as demo:
24
+ gr.Markdown("# نظام التعرف على القراءة (واجهة عامة)")
25
+
26
+ with gr.Row():
27
+ with gr.Column():
28
+ up_audio = gr.Audio(label="🎙️ سجّل صوتك أو ارفع ملف", type="filepath")
29
+ surah = gr.Dropdown(
30
+ choices=[
31
+ 1: "الفاتحة",
32
+ 2: "البقرة",
33
+ 3: "آل عمران",
34
+ 4: "النساء",
35
+ 5: "المائدة",
36
+ 6: "الأنعام",
37
+ 7: "الأعراف",
38
+ 8: "الأنفال",
39
+ 9: "التوبة",
40
+ 10: "يونس",
41
+ 11: "هود",
42
+ 12: "يوسف",
43
+ 13: "الرعد",
44
+ 14: "إبراهيم",
45
+ 15: "الحجر",
46
+ 16: "النحل",
47
+ 17: "الإسراء",
48
+ 18: "الكهف",
49
+ 19: "مريم",
50
+ 20: "طه",
51
+ 21: "الأنبياء",
52
+ 22: "الحج",
53
+ 23: "المؤمنون",
54
+ 24: "النور",
55
+ 25: "الفرقان",
56
+ 26: "الشعراء",
57
+ 27: "النمل",
58
+ 28: "القصص",
59
+ 29: "العنكبوت",
60
+ 30: "الروم",
61
+ 31: "لقمان",
62
+ 32: "السجدة",
63
+ 33: "الأحزاب",
64
+ 34: "سبأ",
65
+ 35: "فاطر",
66
+ 36: "يس",
67
+ 37: "الصافات",
68
+ 38: "ص",
69
+ 39: "الزمر",
70
+ 40: "غافر",
71
+ 41: "فصلت",
72
+ 42: "الشورى",
73
+ 43: "الزخرف",
74
+ 44: "الدخان",
75
+ 45: "الجاثية",
76
+ 46: "الأحقاف",
77
+ 47: "محمد",
78
+ 48: "الفتح",
79
+ 49: "الحجرات",
80
+ 50: "ق",
81
+ 51: "الذاريات",
82
+ 52: "الطور",
83
+ 53: "النجم",
84
+ 54: "القمر",
85
+ 55: "الرحمن",
86
+ 56: "الواقعة",
87
+ 57: "الحديد",
88
+ 58: "المجادلة",
89
+ 59: "الحشر",
90
+ 60: "الممتحنة",
91
+ 61: "الصف",
92
+ 62: "الجمعة",
93
+ 63: "المنافقون",
94
+ 64: "التغابن",
95
+ 65: "الطلاق",
96
+ 66: "التحريم",
97
+ 67: "الملك",
98
+ 68: "القلم",
99
+ 69: "الحاقة",
100
+ 70: "المعارج",
101
+ 71: "نوح",
102
+ 72: "الجن",
103
+ 73: "المزمل",
104
+ 74: "المدثر",
105
+ 75: "القيامة",
106
+ 76: "الإنسان",
107
+ 77: "المرسلات",
108
+ 78: "النبأ",
109
+ 79: "النازعات",
110
+ 80: "عبس",
111
+ 81: "التكوير",
112
+ 82: "الانفطار",
113
+ 83: "المطففين",
114
+ 84: "الانشقاق",
115
+ 85: "البروج",
116
+ 86: "الطارق",
117
+ 87: "الأعلى",
118
+ 88: "الغاشية",
119
+ 89: "الفجر",
120
+ 90: "البلد",
121
+ 91: "الشمس",
122
+ 92: "الليل",
123
+ 93: "الضحى",
124
+ 94: "الشرح",
125
+ 95: "التين",
126
+ 96: "العلق",
127
+ 97: "القدر",
128
+ 98: "البينة",
129
+ 99: "الزلزلة",
130
+ 100: "العاديات",
131
+ 101: "القارعة",
132
+ 102: "التكاثر",
133
+ 103: "العصر",
134
+ 104: "الهمزة",
135
+ 105: "الفيل",
136
+ 106: "قريش",
137
+ 107: "الماعون",
138
+ 108: "الكوثر",
139
+ 109: "الكافرون",
140
+ 110: "النصر",
141
+ 111: "المسد",
142
+ 112: "الإخلاص",
143
+ 113: "الفلق",
144
+ 114: "الناس"
145
+ ],
146
+ label="🕌 اختر السورة",
147
+ value="1 - الفاتحة"
148
+ )
149
+ btn = gr.Button("بدء التحليل")
150
+
151
+ with gr.Column():
152
+ out_text = gr.Textbox(label="📝 النص المستخرج من صوتك")
153
+ out_word_report = gr.File(label="📄 تقرير أخطاء الكلمات")
154
+ out_tajweed_report = gr.File(label="✍️ تقرير أخطاء التشكيل")
155
+ out_verses = gr.File(label="📖 نص الآيات المكتشفة")
156
+ out_original = gr.File(label="💾 ملف النص الأصلي")
157
+
158
+ btn.click(
159
+ fn=process_quran_asr,
160
+ inputs=[up_audio, up_audio, surah], # بعتنا الـ up_audio مرتين كـ placeholder
161
+ outputs=[out_text, out_word_report, out_tajweed_report, out_verses, out_original]
162
+ )
163
+
164
+ demo.launch()