Spaces:
Sleeping
Sleeping
File size: 1,691 Bytes
6ade6c2 29343bf f6af0d3 6ade6c2 f6af0d3 29343bf 6ade6c2 f6af0d3 29343bf 7050891 db15544 f6af0d3 db15544 6ade6c2 db15544 6ade6c2 db15544 6ade6c2 29343bf f6af0d3 6ade6c2 db15544 29343bf f6af0d3 db15544 f6af0d3 db15544 29343bf db15544 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import gradio as gr
from transformers import pipeline
import torch
import os
# 1. اقرأ الـ Token من الـ Secrets الخاصة بالـ Space
HF_TOKEN = os.getenv("HUGGING_FACE_TOKEN")
# 2. تحقق من وجود الـ Token
if HF_TOKEN is None:
raise ValueError("لم يتم العثور على HUGGING_FACE_TOKEN في أسرار الـ Space. يرجى إضافته.")
# 3. اسم النموذج الرسمي والمستقر
MODEL_NAME = "openai/whisper-base" # <<<--- النموذج الرسمي من OpenAI
# اختر الجهاز
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if device != "cpu" else torch.float32
# تحميل الـ pipeline مع تمرير الـ Token بشكل صريح
pipe = pipeline(
"automatic-speech-recognition",
model=MODEL_NAME,
token=HF_TOKEN, # استخدام الـ Token للمصادقة
device=device,
torch_dtype=torch_dtype
)
def transcribe(audio):
if audio is None:
return "لم يتم رفع أي ملف صوتي."
# استدعاء النموذج
# ملاحظة: نموذج v3 يتوقع تحديد اللغة للحصول على أفضل النتائج
result = pipe(audio, generate_kwargs={"language": "arabic"})
return result["text"]
# بناء واجهة Gradio
gr.Interface(
fn=transcribe,
inputs=gr.Audio(sources=["upload"], type="filepath", label="ارفع ملفاً صوتياً"),
outputs=gr.Textbox(label="النص المُحوَّل"),
title="API لتحويل الكلام إلى نص",
description=f"واجهة لنموذج Whisper الرسمي ({MODEL_NAME}).",
allow_flagging="never"
).launch() |