Spaces:
Sleeping
Sleeping
import streamlit as st | |
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer | |
def translate_text(article, source_language, target_language): | |
# Importing the pre-trained model | |
tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M") | |
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M") | |
# Mapping language to language code | |
lang_code = { | |
"hindi": "hin_Deva", | |
"telugu": "tel_Telu", | |
"english":"eng_Latn" | |
# Add more language codes as needed | |
} | |
# Appending source language to the input text | |
article_with_lang = f"{article} [lang:{lang_code[source_language]}]" | |
# Translating the sentence | |
inputs = tokenizer(article_with_lang, return_tensors="pt") | |
translated_tokens = model.generate( | |
**inputs, forced_bos_token_id=tokenizer.lang_code_to_id[lang_code[target_language]], max_length=30 | |
) | |
# Decoding and returning the translated text | |
return tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0] | |
# Streamlit UI | |
st.title("Language Translator") | |
# Input section | |
st.sidebar.header("Input Options") | |
input_text = st.text_area("Enter Text to Translate:") | |
source_language = st.sidebar.selectbox("Select Source Language:", ["english", "hindi", "telugu"]) | |
# Output section | |
st.sidebar.header("Output Options") | |
target_language = st.sidebar.selectbox("Select Target Language:", ["english","hindi", "telugu"]) | |
# Translate button | |
if st.button("Translate"): | |
if input_text: | |
translated_text = translate_text(input_text, source_language, target_language) | |
st.success(f"Translated ({target_language}): {translated_text}") | |
else: | |
st.warning("Please enter text to translate.") | |