Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import MarianMTModel, MarianTokenizer | |
| # Function to load the translation model and tokenizer | |
| def load_model(model_name): | |
| model = MarianMTModel.from_pretrained(model_name) | |
| tokenizer = MarianTokenizer.from_pretrained(model_name) | |
| return model, tokenizer | |
| # Streamlit App | |
| st.title("Language Translation App For Engineer Zahid Astori ") | |
| st.subheader("Translate mulittple languages instantly ") | |
| # Available languages | |
| languages = { | |
| 'Azerbaijani': 'az', | |
| 'English': 'en', | |
| 'French': 'fr', | |
| 'German': 'de', | |
| 'Spanish': 'es', | |
| 'Italian': 'it', | |
| 'Portuguese': 'pt', | |
| } | |
| # User input for language selection | |
| input_lang = st.selectbox("Select Input Language:", list(languages.keys())) | |
| output_lang = st.selectbox("Select Output Language:", list(languages.keys())) | |
| # Ensure input and output languages are not the same | |
| if input_lang == output_lang: | |
| st.error("Input and output languages must be different.") | |
| else: | |
| # Prepare model name | |
| model_name = f"Helsinki-NLP/opus-mt-{languages[input_lang]}-{languages[output_lang]}" | |
| try: | |
| # Load model and tokenizer | |
| model, tokenizer = load_model(model_name) | |
| # User input for text to translate | |
| text_to_translate = st.text_area("Enter text to translate:") | |
| # Translation functionality | |
| if st.button("Translate"): | |
| if text_to_translate: | |
| # Tokenize and translate the input text | |
| inputs = tokenizer(text_to_translate, return_tensors="pt", padding=True) | |
| translated = model.generate(**inputs) | |
| translated_text = tokenizer.decode(translated[0], skip_special_tokens=True) | |
| # Show the result | |
| st.subheader("Translated Text:") | |
| st.write(translated_text) | |
| else: | |
| st.error("Please enter some text to translate.") | |
| except Exception as e: | |
| st.error(f"An error occurred: {e}") | |