Spaces:
Sleeping
Sleeping
File size: 1,977 Bytes
89a6d3a 91ed51c 89a6d3a 5aa51cd 89a6d3a 5aa51cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
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}")
|