Ai / app.py
Ebramashraf's picture
Update app.py
1e1aa53 verified
# ✅ تحميل المكتبات
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
from diffusers import StableDiffusionPipeline
import gradio as gr
import torch
from PIL import Image
from speechbrain.pretrained import EncoderASR # تم التعديل هنا
# ✅ تحميل نموذج المحادثة (GPT-like)
chat_model = pipeline("text-generation", model="akhooli/gpt2-small-arabic")
# ✅ تحميل نموذج توليد الصور (Stable Diffusion)
image_pipe = StableDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")
image_pipe.to("cuda" if torch.cuda.is_available() else "cpu")
# ✅ تحميل نموذج تحليل الصور (ResNet)
vision_pipe = pipeline("image-classification", model="microsoft/resnet-50")
# ✅ تحميل نموذج استخراج النصوص (OCR)
ocr_pipe = pipeline("image-to-text", model="microsoft/trocr-base-printed")
# ✅ تحميل نموذج تحويل الكلام إلى نص (STT)
asr_pipe = EncoderASR.from_hparams(source="speechbrain/asr-wav2vec2-commonvoice-ar", savedir="pretrained_models/asr-wav2vec2-commonvoice-ar") # تم التعديل هنا
# ✅ دالة المحادثة
def chat(user_input):
response = chat_model(user_input, max_length=100)[0]['generated_text']
return response
# ✅ دالة توليد الصور
def generate_image(prompt):
image = image_pipe(prompt).images[0]
return image
# ✅ دالة تحليل الصور
def analyze_image(image):
result = vision_pipe(image)
return [{"label": r["label"], "score": r["score"]} for r in result]
# ✅ دالة استخراج النصوص من الصور
def extract_text(image):
text = ocr_pipe(image)[0]['generated_text']
return text
# ✅ دالة تحويل الكلام إلى نص
def speech_to_text(audio_file):
text = asr_pipe.transcribe_file(audio_file)
return text
# ✅ إنشاء واجهة Gradio
with gr.Blocks(title="الذكاء الاصطناعي المتكامل") as app:
gr.Markdown("# نظام ذكاء اصطناعي متكامل 🚀")
with gr.Tab("💬 الدردشة"):
chat_input = gr.Textbox(label="اكتب رسالتك...")
chat_output = gr.Textbox(label="الرد")
chat_btn = gr.Button("إرسال")
chat_btn.click(chat, inputs=chat_input, outputs=chat_output)
with gr.Tab("🎨 توليد الصور"):
image_prompt = gr.Textbox(label="وصف الصورة")
image_output = gr.Image(label="الصورة المولدة")
image_btn = gr.Button("توليد")
image_btn.click(generate_image, inputs=image_prompt, outputs=image_output)
with gr.Tab("🔍 تحليل الصور"):
image_input = gr.Image(type="pil", label="الصورة المدخلة")
analysis_output = gr.JSON(label="نتيجة التحليل")
analyze_btn = gr.Button("حلل")
analyze_btn.click(analyze_image, inputs=image_input, outputs=analysis_output)
with gr.Tab("📜 استخراج النصوص"):
ocr_input = gr.Image(type="pil", label="الصورة المدخلة")
ocr_output = gr.Textbox(label="النص المستخرج")
ocr_btn = gr.Button("استخرج النص")
ocr_btn.click(extract_text, inputs=ocr_input, outputs=ocr_output)
with gr.Tab("🎙️ تحويل الكلام إلى نص"):
stt_input = gr.Audio(type="filepath", label="الصوت المدخل")
stt_output = gr.Textbox(label="النص المستخرج")
stt_btn = gr.Button("حول الكلام إلى نص")
stt_btn.click(speech_to_text, inputs=stt_input, outputs=stt_output)
# ✅ تشغيل التطبيق
app.launch(debug=True)