Shivam More

English-to-Spanish Translation App Using Streamlit and MarianMT Model

In this blog post, we will explore an interactive English-to-Spanish Neural Machine Translation (NMT) app built using the Streamlit framework and the fine-tuned MarianMT model. This project is designed to provide real-time, seamless translation for text input while ensuring a smooth user experience.

Whether you’re a developer looking to build a similar application or simply interested in machine translation systems, this guide will break down the project and its implementation step-by-step.


Table of Contents

  1. Project Overview
  2. Key Features
  3. Technologies Used
  4. How to Install the Project
  5. Docker Integration
  6. How to Use the App
  7. Model Details
  8. Evaluation Metrics
  9. Future Scope
  10. Conclusion
  11. FAQs

Project Overview

This project demonstrates how to develop a user-friendly English-to-Spanish Translation App with real-time capabilities. By leveraging the MarianMT model (fine-tuned on English-Spanish parallel datasets), the app translates English input text into Spanish with high accuracy and fluency.

Built using the Streamlit framework, the app includes features like:

  • Real-time text translation.
  • A progress bar for visual feedback.
  • Error handling for smooth user experience.

With support for Docker containers, it is easy to deploy the app in different environments.


Key Features

  • Real-time Translation: Instant English-to-Spanish translation.
  • Progress Bar: Provides visual feedback during the translation process.
  • Error Handling: Ensures smooth app functionality, even in case of invalid input.
  • User-Friendly Interface: Built with Streamlit, the app is interactive and intuitive.
  • Docker Support: Easily containerize and run the app in a Docker environment.

Technologies Used

The following tools and frameworks power the project:

  • MarianMT Model: Pre-trained MarianMT (Helsinki-NLP/opus-mt-en-es) for neural machine translation.
  • Streamlit: For building the user interface and app interactivity.
  • PyTorch and Hugging Face Transformers: For model fine-tuning and deployment.
  • Docker: To containerize the app for deployment.

How to Install the Project

To get started with the English-to-Spanish Translation App, follow these steps:

  1. Clone the Repositorygit clone https://github.com/WizKnight/English-to-Spanish-Translation-APP.git cd English-to-Spanish-Translation-APP
  2. Install Dependencies Install all required libraries using pip:pip install -r requirements.txt
  3. Run the Streamlit App Launch the app locally:streamlit run main.py
  4. Translate Text
    • Open the app in your browser.
    • Input English text into the provided text area.
    • Click Translate to see the output in Spanish.

Docker Integration

The project is also containerized for easy deployment. To run the app using Docker:

  1. Build the Docker Imagedocker build -t english-to-spanish-translator .
  2. Run the Docker Containerdocker run -p 8501:8501 english-to-spanish-translator
  3. Open http://localhost:8501 in your browser to access the app.

How to Use the App

Follow these steps to use the English-to-Spanish Translator:

  1. Open the app on your local system or hosted server.
  2. Enter or paste the English text you want to translate.
  3. Click on the Translate button.
  4. View the translated Spanish text displayed below.
  5. Progress bars and error handling ensure a smooth experience.

Model Details

The MarianMT model, pre-trained and fine-tuned, is at the core of this app:

  • Architecture: MarianMT (Helsinki-NLP/opus-mt-en-es)
  • Framework: PyTorch and Hugging Face Transformers
  • Dataset: Fine-tuned on a large parallel English-Spanish corpus.

This results in a highly accurate translation model capable of handling general-purpose text.


Evaluation Metrics

The model was evaluated using the BLEU Score to measure translation quality:

  • Achieved a BLEU score of 22.96 on a test dataset.

Additionally, human evaluations ensured that the translations were fluent and accurate.


Future Scope

The project can be further improved with the following enhancements:

  • Support for batch translation of multiple texts.
  • Option to download translations as a text file.
  • Experiment with other architectures like T5 for improved performance.
  • Collect user feedback for iterative updates.

Conclusion

The English-to-Spanish Translation App is a powerful and interactive NMT solution built using Streamlit and the fine-tuned MarianMT model. With real-time translation, Docker support, and user-friendly features, this project is a great resource for anyone exploring machine translation systems.

If you’re a developer or student, feel free to clone the repository, explore the code, and enhance the app further!

Leave a Comment