KubraBashir commited on
Commit
4a67ed5
·
verified ·
1 Parent(s): c41431b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -48
app.py CHANGED
@@ -1,50 +1,45 @@
1
  import streamlit as st
2
- from transformers import MarianMTModel, MarianTokenizer
3
-
4
- # Define a dictionary to map language names to model identifiers
5
- models = {
6
- 'French': 'Helsinki-NLP/opus-mt-en-fr',
7
- 'Spanish': 'Helsinki-NLP/opus-mt-en-es',
8
- 'German': 'Helsinki-NLP/opus-mt-en-de',
9
- 'Italian': 'Helsinki-NLP/opus-mt-en-it',
10
- 'Urdu': 'Helsinki-NLP/opus-mt-en-ur',
11
- 'Arabic': 'Helsinki-NLP/opus-mt-en-ar',
12
- # Add more language models if needed
 
 
 
 
 
 
 
 
 
 
 
13
  }
14
-
15
- def load_model(model_name):
16
- """Load the model and tokenizer based on the selected model name."""
17
- model = MarianMTModel.from_pretrained(model_name)
18
- tokenizer = MarianTokenizer.from_pretrained(model_name)
19
- return model, tokenizer
20
-
21
- def translate_text(text, model, tokenizer):
22
- """Translate text using the provided model and tokenizer."""
23
- inputs = tokenizer.encode(text, return_tensors="pt")
24
- translated = model.generate(inputs)
25
- translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
26
- return translated_text
27
-
28
- def main():
29
- st.title("Multilingual Translator")
30
-
31
- # User input for English text
32
- text_to_translate = st.text_area("Enter text in English:")
33
-
34
- # Language options
35
- selected_language = st.selectbox("Select target language:", list(models.keys()))
36
-
37
- if st.button("Translate"):
38
- if text_to_translate:
39
- # Load the selected model
40
- model_name = models[selected_language]
41
- model, tokenizer = load_model(model_name)
42
-
43
- translated_text = translate_text(text_to_translate, model, tokenizer)
44
- st.write(f"**Translation in {selected_language}:**")
45
- st.write(translated_text)
46
- else:
47
- st.warning("Please enter text to translate.")
48
-
49
- if __name__ == "__main__":
50
- main()
 
1
  import streamlit as st
2
+ from transformers import pipeline
3
+
4
+ # Title of the app
5
+ st.title("🌐 Language Translator")
6
+
7
+ # Load translation pipeline
8
+ @st.cache_resource
9
+ def load_translation_pipeline(language_code):
10
+ model_name = f"Helsinki-NLP/opus-mt-en-{language_code}"
11
+ return pipeline("translation", model=model_name)
12
+
13
+ # Input text
14
+ text_to_translate = st.text_area("Enter text in English to translate:")
15
+
16
+ # Target language selection
17
+ languages = {
18
+ "German": "de",
19
+ "French": "fr",
20
+ "Spanish": "es",
21
+ "Italian": "it",
22
+ "Chinese": "zh",
23
+ "Hindi": "hi",
24
  }
25
+ target_language = st.selectbox("Select target language:", options=list(languages.keys()))
26
+
27
+ # Translation action
28
+ if st.button("Translate"):
29
+ if not text_to_translate.strip():
30
+ st.warning("Please enter some text to translate.")
31
+ else:
32
+ # Get the language code for the selected target language
33
+ language_code = languages[target_language]
34
+
35
+ # Load the translation model
36
+ translator = load_translation_pipeline(language_code)
37
+
38
+ # Perform translation
39
+ with st.spinner("Translating..."):
40
+ try:
41
+ result = translator(text_to_translate)[0]['translation_text']
42
+ st.success("Translated Text:")
43
+ st.write(result)
44
+ except Exception as e:
45
+ st.error(f"An error occurred: {e}")