Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import MarianMTModel, MarianTokenizer | |
| import torch | |
| # 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 | |
| def load_model(src_lang, tgt_lang): | |
| if not torch.cuda.is_available(): | |
| st.warning('CUDA is not available. The model will run on CPU, which may be slower.') | |
| 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') | |
| # Instructions for Running | |
| st.write('**To run the app:**') | |
| st.code('streamlit run app.py') | |