Loohanikhan's picture
Update app.py
0555295 verified
raw
history blame
3.41 kB
import gradio as gr
from transformers import pipeline
from langdetect import detect
from gtts import gTTS
# Dummy Models (اصل میں آپ نے اپنی فائلوں میں load کرنے ہیں)
# یہاں صرف ڈیمو کے لیے placeholders
def s2t_model(audio):
return {"text": "یہ آڈیو سے حاصل شدہ متن ہے"}
def qa_model(question, context):
return {"answer": "یہ سوال کا فرضی جواب ہے"}
def translator_en_ur(text):
return [{"translation_text": "یہ انگلش سے اردو ترجمہ ہے"}]
def translator_ur_en(text):
return [{"translation_text": "This is translation from Urdu to English"}]
def detect_language(text):
# سادہ detection – فرضی
if any(ch in text for ch in "abcdefghijklmnopqrstuvwxyz"):
return "en"
return "ur"
welcome_message = "✨ خوش آمدید! اردو/انگلش چیٹ، ترجمہ، سوال جواب اور آواز کی سہولت۔"
# پروسیسنگ فنکشن
def process(context, tts_flag, src_lang, tgt_lang, question, audio):
output_text = ""
audio_output = None
# Speech to Text
if audio:
result = s2t_model(audio)
text = result.get("text", "")
output_text += f"🗣️ بول کر کہا: {text}\n\n"
else:
text = context
# Question Answering
if question.strip():
if not text.strip():
answer = "براہ کرم سوال کے لیے متعلقہ متن فراہم کریں۔"
else:
try:
answer = qa_model(question=question, context=text)['answer']
except:
answer = "جواب دستیاب نہیں"
output_text += f"❓ سوال: {question}\n🧠 جواب: {answer}\n\n"
# Translation
translated = None
if text.strip():
lang = detect_language(text) if src_lang == "Auto" else src_lang.lower()
if lang in ["en", "english"]:
translated = translator_en_ur(text)[0]['translation_text']
elif lang in ["ur", "urdu"]:
translated = translator_ur_en(text)[0]['translation_text']
else:
translated = "⚠️ صرف اردو اور انگلش معاونت یافتہ ہیں"
output_text += f"🌐 ترجمہ: {translated}\n"
# Text-to-speech
if tts_flag and translated:
tts_lang = 'ur' if tgt_lang.lower() == "urdu" else 'en'
try:
tts = gTTS(text=translated, lang=tts_lang)
tts.save("output.mp3")
audio_output = "output.mp3"
except:
audio_output = None
return output_text, audio_output
# Gradio UI
iface = gr.Interface(
fn=process,
inputs=[
gr.Textbox(label="متن یا سیاق"),
gr.Checkbox(label="آواز میں سنیں؟"),
gr.Radio(["Auto", "Urdu", "English"], label="ماخذ زبان (Source Language)"),
gr.Radio(["Urdu", "English"], label="ہدف زبان (Target Language)"),
gr.Textbox(label="سوال"),
gr.Audio( type="filepath", label="آڈیو (اختیاری)")
],
outputs=[
gr.Textbox(label="نتیجہ"),
gr.Audio(label="آڈیو آؤٹ پٹ")
],
title="🧠 Urdu-English AI QA + Translation + TTS",
description=welcome_message
)
if __name__ == "__main__":
iface.launch()