EngrNarmeen's picture
Create app.py
2370773 verified
import streamlit as st
from transformers import MarianMTModel, MarianTokenizer
# Function to load the translation model and tokenizer
@st.cache_resource
def load_model_and_tokenizer():
model_name = "Helsinki-NLP/opus-mt-en-ROMANCE" # Example: English to Romance languages (like Spanish, French, etc.)
model = MarianMTModel.from_pretrained(model_name)
tokenizer = MarianTokenizer.from_pretrained(model_name)
return model, tokenizer
# Function to translate text
def translate_text(text, model, tokenizer, src_lang, tgt_lang):
# Prepare the text for translation
translation_input = tokenizer(text, return_tensors="pt", padding=True)
# Translate text
translated = model.generate(**translation_input)
# Decode the translated text
translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
return translated_text
# Streamlit UI components
st.title("Language Translation App")
st.write("Translate text between multiple languages using the Helsinki-NLP translation models.")
# Load model and tokenizer
model, tokenizer = load_model_and_tokenizer()
# Language selection for input and output
available_languages = ["en", "es", "fr", "de", "it", "pt", "ro", "nl", "pl", "ca"]
input_lang = st.selectbox("Select input language", available_languages)
output_lang = st.selectbox("Select output language", available_languages)
# Text input
text_to_translate = st.text_area("Enter text to translate:")
# Perform translation if text is entered
if text_to_translate:
if input_lang != output_lang:
translated_text = translate_text(text_to_translate, model, tokenizer, input_lang, output_lang)
st.write("Translated Text:")
st.write(translated_text)
else:
st.warning("Input and output languages cannot be the same.")