TANVEERMAKHDOOM commited on
Commit
7aac0a3
·
verified ·
1 Parent(s): f044c52

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -0
app.py CHANGED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+
4
+ st.set_page_config(page_title="English ↔ Urdu Translator", layout="centered")
5
+
6
+ st.title("📘 English ↔ اردو Translator")
7
+
8
+ # Language options
9
+ direction = st.selectbox("Select Translation Direction", ["English to Urdu", "Urdu to English"])
10
+
11
+ # Input text
12
+ text = st.text_area("Enter Text")
13
+
14
+ # Load models and tokenizers only once using caching
15
+ @st.cache_resource
16
+ def load_model_and_tokenizer(src_lang):
17
+ if src_lang == "en":
18
+ model_name = "Helsinki-NLP/opus-mt-en-ur"
19
+ else:
20
+ model_name = "Helsinki-NLP/opus-mt-ur-en"
21
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
22
+ model = MarianMTModel.from_pretrained(model_name)
23
+ return tokenizer, model
24
+
25
+ # Translate
26
+ if st.button("Translate"):
27
+ if not text.strip():
28
+ st.warning("Please enter some text.")
29
+ else:
30
+ src_lang = "en" if direction == "English to Urdu" else "ur"
31
+ tokenizer, model = load_model_and_tokenizer(src_lang)
32
+ inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
33
+ translated = model.generate(**inputs)
34
+ result = tokenizer.decode(translated[0], skip_special_tokens=True)
35
+ st.success("Translation:")
36
+ st.write(result)