Spaces:
Running
Running
File size: 1,472 Bytes
68271ac 831f548 68271ac 831f548 68271ac 831f548 68271ac 831f548 68271ac 831f548 68271ac 831f548 68271ac |
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 |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
import gradio as gr
# Load models
en_ur_model_name = "Helsinki-NLP/opus-mt-en-ur"
ur_en_model_name = "Helsinki-NLP/opus-mt-ur-en"
en_ur_tokenizer = AutoTokenizer.from_pretrained(en_ur_model_name)
en_ur_model = AutoModelForSeq2SeqLM.from_pretrained(en_ur_model_name)
translator_en_ur = pipeline("translation", model=en_ur_model, tokenizer=en_ur_tokenizer)
ur_en_tokenizer = AutoTokenizer.from_pretrained(ur_en_model_name)
ur_en_model = AutoModelForSeq2SeqLM.from_pretrained(ur_en_model_name)
translator_ur_en = pipeline("translation", model=ur_en_model, tokenizer=ur_en_tokenizer)
def translate_text(text):
contains_urdu = any('\u0600' <= ch <= '\u06FF' for ch in text)
if contains_urdu:
result = translator_ur_en(text, max_length=100)
direction = "Urdu β English"
else:
result = translator_en_ur(text, max_length=100)
direction = "English β Urdu"
return f"π Translation ({direction}):\n\n" + result[0]['translation_text']
with gr.Blocks() as demo:
gr.Markdown("## π English β Urdu Translator using Hugging Face")
input_text = gr.Textbox(label="Enter Text (English or Urdu)", placeholder="Type here...")
output_text = gr.Textbox(label="Translation Output", interactive=False)
translate_button = gr.Button("Translate")
translate_button.click(fn=translate_text, inputs=input_text, outputs=output_text)
demo.launch()
|