File size: 1,967 Bytes
58b36ab
 
e57b72c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0a29326
e57b72c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Install dependencies (Run this in Google Colab)
!pip install transformers gradio --quiet

# Import libraries
from transformers import MarianMTModel, MarianTokenizer
import gradio as gr

# Define model names for English↔Urdu translation
en_to_ur_model_name = "Helsinki-NLP/opus-mt-en-ur"
ur_to_en_model_name = "Helsinki-NLP/opus-mt-ur-en"

# Load models and tokenizers
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)

# Translation functions
def translate_en_to_ur(text):
    inputs = en_to_ur_tokenizer(text, return_tensors="pt", padding=True, truncation=True)
    translated = en_to_ur_model.generate(**inputs)
    return en_to_ur_tokenizer.decode(translated[0], skip_special_tokens=True)

def translate_ur_to_en(text):
    inputs = ur_to_en_tokenizer(text, return_tensors="pt", padding=True, truncation=True)
    translated = ur_to_en_model.generate(**inputs)
    return ur_to_en_tokenizer.decode(translated[0], skip_special_tokens=True)

# Gradio interface
with gr.Blocks() as demo:
    gr.Markdown("## 🈯 English ↔ Urdu Translator")
    with gr.Tab("English ➜ Urdu"):
        en_input = gr.Textbox(label="Enter English Text")
        en_output = gr.Textbox(label="Translated Urdu Text")
        en_translate_btn = gr.Button("Translate to Urdu")
        en_translate_btn.click(translate_en_to_ur, en_input, en_output)

    with gr.Tab("Urdu ➜ English"):
        ur_input = gr.Textbox(label="اردو متن داخل کریں")
        ur_output = gr.Textbox(label="Translated English Text")
        ur_translate_btn = gr.Button("Translate to English")
        ur_translate_btn.click(translate_ur_to_en, ur_input, ur_output)

# Launch the app (for local testing or in Colab)
if __name__ == "__main__":
demo.launch()