Translator / app.py
Muhammad-Arham's picture
Update app.py
9ea8873 verified
# Install necessary libraries first
!pip install gradio transformers sentencepiece
# Now, import everything
import gradio as gr
from transformers import MarianMTModel, MarianTokenizer
# Load models
en_to_ur_model_name = "Helsinki-NLP/opus-mt-en-ur"
ur_to_en_model_name = "Helsinki-NLP/opus-mt-ur-en"
en_to_ur_tokenizer = MarianTokenizer.from_pretrained(en_to_ur_model_name)
en_to_ur_model = MarianMTModel.from_pretrained(en_to_ur_model_name)
ur_to_en_tokenizer = MarianTokenizer.from_pretrained(ur_to_en_model_name)
ur_to_en_model = MarianMTModel.from_pretrained(ur_to_en_model_name)
# Define translation functions
def translate_en_to_ur(text):
inputs = en_to_ur_tokenizer(text, return_tensors="pt", padding=True)
translated = en_to_ur_model.generate(**inputs)
result = en_to_ur_tokenizer.decode(translated[0], skip_special_tokens=True)
return result
def translate_ur_to_en(text):
inputs = ur_to_en_tokenizer(text, return_tensors="pt", padding=True)
translated = ur_to_en_model.generate(**inputs)
result = ur_to_en_tokenizer.decode(translated[0], skip_special_tokens=True)
return result
# Create Gradio Interface
with gr.Blocks() as app:
gr.Markdown("## πŸ“ English ↔ Urdu Translator (Free, Open Source)")
with gr.Row():
input_text = gr.Textbox(lines=4, placeholder="Enter your text here...")
with gr.Row():
en_to_ur_button = gr.Button("Translate English β†’ Urdu")
ur_to_en_button = gr.Button("Translate Urdu β†’ English")
output_text = gr.Textbox(lines=4, label="Translated Text")
en_to_ur_button.click(fn=translate_en_to_ur, inputs=input_text, outputs=output_text)
ur_to_en_button.click(fn=translate_ur_to_en, inputs=input_text, outputs=output_text)
# Launch app
app.launch()