|
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 |
|
|
|
|
|
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 |
|
|
|
|
|
languages = { |
|
'Urdu': 'ur', |
|
'French': 'fr', |
|
'Spanish': 'es', |
|
'German': 'de', |
|
'Chinese': 'zh', |
|
'Italian': 'it', |
|
'Russian': 'ru', |
|
'Japanese': 'ja', |
|
'Arabic': 'ar', |
|
'Hindi': 'hi', |
|
|
|
} |
|
|
|
def translate_ui(text, target_language): |
|
tgt_lang = languages[target_language] |
|
return translate(text, 'en', tgt_lang) |
|
|
|
|
|
|
|
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." |
|
) |
|
|
|
|
|
iface.launch() |
|
|