my-whispers-api / app.py
FaizTech's picture
Update app.py
7050891 verified
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()