FaizTech commited on
Commit
6ade6c2
·
verified ·
1 Parent(s): f6af0d3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -35
app.py CHANGED
@@ -1,49 +1,35 @@
1
- # import gradio as gr
2
- # from transformers import pipeline
3
- # import torch
 
4
 
5
- # # اختر الجهاز: استخدم GPU إذا كان متاحاً في الـ Space، وإلا CPU
6
- # device = "cuda:0" if torch.cuda.is_available() else "cpu"
7
 
8
- # # تحميل الـ pipeline للنموذج العربي البديل والممتاز
9
- # pipe = pipeline(
10
- # "automatic-speech-recognition",
11
- # model="openai-community/whisper-large-v3-arabic", # <<<--- هذا هو التغيير
12
- # device=device
13
- # )
14
 
15
- # def transcribe(audio):
16
- # if audio is None:
17
- # return "لم يتم رفع أي ملف صوتي."
18
-
19
- # # استدعاء النموذج لتحويل الصوت (المسار المؤقت للملف)
20
- # text = pipe(audio)["text"]
21
- # return text
22
 
23
- # # بناء واجهة Gradio التي ستوفر لنا الـ API
24
- # gr.Interface(
25
- # fn=transcribe,
26
- # inputs=gr.Audio(sources=["upload"], type="filepath", label="ارفع ملفاً صوتياً"),
27
- # outputs=gr.Textbox(label="النص المُحوَّل"),
28
- # title="API لتحويل الكلام العربي إلى نص",
29
- # description="واجهة لنموذج Whisper المتخصص باللغة العربية (openai-community/whisper-large-v3-arabic).",
30
- # allow_flagging="never"
31
- # ).launch()
32
 
 
33
 
34
- import gradio as gr
35
- from transformers import pipeline
36
- import torch
37
 
38
  # اختر الجهاز
39
  device = "cuda:0" if torch.cuda.is_available() else "cpu"
 
40
 
41
- # تحميل الـ pipeline للنموذج العربي الجديد والمتاح
42
  pipe = pipeline(
43
  "automatic-speech-recognition",
44
- model="bakri/whisper-large-v2-arabic", # <<<--- هذا هو النموذج الجديد والمتاح حالياً
 
45
  device=device,
46
- torch_dtype=torch.float16 if device != "cpu" else torch.float32 # تحسين الأداء على الـ GPU
47
  )
48
 
49
  def transcribe(audio):
@@ -51,7 +37,6 @@ def transcribe(audio):
51
  return "لم يتم رفع أي ملف صوتي."
52
 
53
  # استدعاء النموذج لتحويل الصوت
54
- # إضافة chunk_length_s و stride_length_s يمكن أن يساعد في معالجة الملفات الطويلة
55
  result = pipe(audio, chunk_length_s=30, stride_length_s=5, return_timestamps=False)
56
  return result["text"]
57
 
@@ -61,6 +46,6 @@ gr.Interface(
61
  inputs=gr.Audio(sources=["upload"], type="filepath", label="ارفع ملفاً صوتياً"),
62
  outputs=gr.Textbox(label="النص المُحوَّل"),
63
  title="API لتحويل الكلام العربي إلى نص",
64
- description="واجهة لنموذج Whisper المتخصص باللغة العربية (bakri/whisper-large-v2-arabic).",
65
  allow_flagging="never"
66
  ).launch()
 
1
+ import gradio as gr
2
+ from transformers import pipeline
3
+ import torch
4
+ import os # <<< إضافة جديدة لقراءة المتغيرات
5
 
6
+ # --- بداية التعديلات المهمة ---
 
7
 
8
+ # 1. اقرأ الـ Token من الـ Secrets الخاصة بالـ Space
9
+ # استخدمنا os.getenv لقراءته
10
+ HF_TOKEN = os.getenv("HUGGING_FACE_TOKEN")
 
 
 
11
 
12
+ # 2. تحقق من وجود الـ Token (للأمان)
13
+ if HF_TOKEN is None:
14
+ raise ValueError("لم يتم العثور على HUGGING_FACE_TOKEN في أسرار الـ Space. يرجى إضافته.")
 
 
 
 
15
 
16
+ # 3. اختر النموذج الذي تريده. لنبدأ بنموذج bakri لأنه موثوق.
17
+ MODEL_NAME = "bakri/whisper-large-v2-arabic"
 
 
 
 
 
 
 
18
 
19
+ # --- نهاية التعديلات المهمة ---
20
 
 
 
 
21
 
22
  # اختر الجهاز
23
  device = "cuda:0" if torch.cuda.is_available() else "cpu"
24
+ torch_dtype = torch.float16 if device != "cpu" else torch.float32
25
 
26
+ # تحميل الـ pipeline مع تمرير الـ Token بشكل صريح
27
  pipe = pipeline(
28
  "automatic-speech-recognition",
29
+ model=MODEL_NAME,
30
+ token=HF_TOKEN, # <<<--- هذه هي الإضافة السحرية التي تجبره على استخدام الـ Token
31
  device=device,
32
+ torch_dtype=torch_dtype
33
  )
34
 
35
  def transcribe(audio):
 
37
  return "لم يتم رفع أي ملف صوتي."
38
 
39
  # استدعاء النموذج لتحويل الصوت
 
40
  result = pipe(audio, chunk_length_s=30, stride_length_s=5, return_timestamps=False)
41
  return result["text"]
42
 
 
46
  inputs=gr.Audio(sources=["upload"], type="filepath", label="ارفع ملفاً صوتياً"),
47
  outputs=gr.Textbox(label="النص المُحوَّل"),
48
  title="API لتحويل الكلام العربي إلى نص",
49
+ description=f"واجهة لنموذج Whisper المتخصص باللغة العربية ({MODEL_NAME}).",
50
  allow_flagging="never"
51
  ).launch()