Engr-Saeed's picture
Create app.py
4fb7b50 verified
from transformers import MarianMTModel, MarianTokenizer
def load_model(src_lang, tgt_lang):
model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name)
return model, tokenizer
# Load the English to Urdu model
src_lang = 'en'
tgt_lang = 'ur'
model, tokenizer = load_model(src_lang, tgt_lang)
def translate(text, src_lang, tgt_lang):
model, tokenizer = load_model(src_lang, tgt_lang)
inputs = tokenizer.encode(text, return_tensors="pt", padding=True)
translated = model.generate(inputs)
translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
return translated_text
import gradio as gr
# Define a list of supported language pairs
languages = {
'Urdu': 'ur',
'French': 'fr',
'Spanish': 'es',
'German': 'de',
'Chinese': 'zh',
'Italian': 'it',
'Russian': 'ru',
'Japanese': 'ja',
'Arabic': 'ar',
'Hindi': 'hi',
# Add more languages as needed
}
def translate_ui(text, target_language):
tgt_lang = languages[target_language]
return translate(text, 'en', tgt_lang)
# Create Gradio interface
iface = gr.Interface(
fn=translate_ui,
inputs=[
gr.Textbox(lines=2, placeholder="Enter text here...", label="Input Text"),
gr.Dropdown(choices=list(languages.keys()), label="Target Language")
],
outputs=gr.Textbox(label="Translated Text"),
title="English to Other Languages Translator",
description="Translate English text to various languages including Urdu."
)
# Launch the interface
iface.launch()