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): 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(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" # 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(server_name="0.0.0.0", server_port=7860, share=True)