File size: 1,825 Bytes
d530258
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2a144d6
 
d530258
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2a144d6
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
import streamlit as st
from transformers import MarianMTModel, MarianTokenizer

# Title and Description
st.set_page_config(page_title='Language Translation App', layout='centered')
st.title('Language Translation App')
st.write('Translate text between multiple languages using an open-source model.')

# Model Selection
@st.cache_resource
def load_model(src_lang, tgt_lang):
    model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
    tokenizer = MarianTokenizer.from_pretrained(model_name)
    model = MarianMTModel.from_pretrained(model_name)
    return tokenizer, model

# Sidebar for Language Selection
st.sidebar.header('Language Selection')
src_lang = st.sidebar.selectbox('Select Source Language', ['en', 'fr', 'es', 'de', 'it','pt','ru','zh','ja','ar'], index=0)
tgt_lang = st.sidebar.selectbox('Select Target Language', ['en', 'fr', 'es', 'de', 'it','pt','ru','zh','ja','ar'], index=1)

# Main Input Area
st.write('### Enter text to translate:')
text = st.text_area('Text Input', placeholder='Type your text here...')

# Translation Button
if st.button('Translate'):
    if text.strip() == '':
        st.warning('Please enter text to translate.')
    else:
        try:
            tokenizer, model = load_model(src_lang, tgt_lang)
            inputs = tokenizer.encode(text, return_tensors='pt')
            translated = model.generate(inputs, max_length=1000, num_beams=5, early_stopping=True)
            result = tokenizer.decode(translated[0], skip_special_tokens=True)
            st.success('### Translated Text:')
            st.write(result)
        except Exception as e:
            st.error(f'Error: {e}')

# Footer
st.sidebar.write('Powered by Helsinki-NLP/opus-mt')
st.sidebar.write('Built with Streamlit')

# To run the app, save this file and run `streamlit run filename.py` in your terminal.