KubraBashir commited on
Commit
d8c80c8
·
verified ·
1 Parent(s): d6b0b84

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -47
app.py CHANGED
@@ -1,50 +1,50 @@
1
  import streamlit as st
2
- from transformers import pipeline
3
-
4
- # Function to load translation pipeline
5
- @st.cache_resource
6
- def load_translator(target_language):
7
- model_name = f"Helsinki-NLP/opus-mt-en-{target_language}"
8
- return pipeline("translation", model=model_name)
9
-
10
- # Supported languages
11
- supported_languages = {
12
- "fr": "French",
13
- "es": "Spanish",
14
- "de": "German",
15
- "zh": "Chinese",
16
- "hi": "Hindi",
17
- "ar": "Arabic",
18
- "ru": "Russian",
19
- "ja": "Japanese",
20
- "ko": "Korean",
21
- "it": "Italian",
22
  }
23
 
24
- # Streamlit App
25
- st.title("🌍 Language Translator App")
26
- st.write("Translate text from English to any supported language using Hugging Face models.")
27
-
28
- # User input for text
29
- input_text = st.text_area("Enter text in English:", placeholder="Type here...")
30
-
31
- # Dropdown to select target language
32
- target_language = st.selectbox(
33
- "Select target language:",
34
- options=list(supported_languages.keys()),
35
- format_func=lambda lang: f"{supported_languages[lang]} ({lang})",
36
- )
37
-
38
- # Translate button
39
- if st.button("Translate"):
40
- if not input_text.strip():
41
- st.error(" Please enter some text to translate.")
42
- else:
43
- try:
44
- st.info(" Translating...")
45
- translator = load_translator(target_language)
46
- translation = translator(input_text)[0]["translation_text"]
47
- st.success("✅ Translated Text:")
48
- st.write(translation)
49
- except Exception as e:
50
- st.error(f"⚠️ An error occurred: {str(e)}")
 
 
 
 
 
 
 
 
 
 
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()