translation / app.py
deepugaur's picture
Create app.py
59721c2 verified
Raw History Blame Contribute Delete
1.59 kB
import streamlit as st
from transformers import MarianMTModel, MarianTokenizer
import torch
# Load pre-trained models and tokenizers for English to French and English to Hindi
model_name_fr = 'Helsinki-NLP/opus-mt-en-fr'
model_name_hi = 'Helsinki-NLP/opus-mt-en-hi'
tokenizer_fr = MarianTokenizer.from_pretrained(model_name_fr)
model_fr = MarianMTModel.from_pretrained(model_name_fr)
tokenizer_hi = MarianTokenizer.from_pretrained(model_name_hi)
model_hi = MarianMTModel.from_pretrained(model_name_hi)
# Determine the device to use (GPU if available, else CPU)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_fr.to(device)
model_hi.to(device)
# Function to translate a word
def translate_word(word, tokenizer, model, device):
inputs = tokenizer.encode(word, return_tensors="pt").to(device)
outputs = model.generate(inputs)
translation = tokenizer.decode(outputs[0], skip_special_tokens=True)
return translation
# Streamlit UI
st.title("10-Letter Word Translator")
st.write("Translate 10-letter English words to French or Hindi")
word = st.text_input("Enter a 10-letter English word")
if word:
if len(word) != 10:
st.write("Please enter a 10-letter word.")
else:
language = st.selectbox("Select target language", ("French", "Hindi"))
if language == "French":
translation = translate_word(word, tokenizer_fr, model_fr, device)
else:
translation = translate_word(word, tokenizer_hi, model_hi, device)
st.write(f"Translation in {language}: {translation}")