A sophisticated web application that transliterates Hindi and Marathi text to English with high accuracy, maintaining phonetic precision through advanced linguistic algorithms, exhaustive phonetic mapping and user feedbacks.
- Accurate Transliteration: Convert Hindi and Marathi text to English while preserving pronunciation
- Multi-Language Support: Currently supports Hindi and Marathi with plans for Bengali, Tamil, and more
- Real-time Processing: Instant transliteration as you type
- Document Processing: Upload and process
.txt,.docx, and.pdffiles (up to 2MB)
- Context-Aware Processing: Analyzes surrounding words for improved accuracy
- Statistical Schwa Deletion: Intelligently handles inherent vowels using linguistic rules
- Auto-Capitalization: Properly capitalizes sentences, names, and titles
- Exception Handling: Built-in dictionary of exceptions and special cases
- Adaptive Learning: Learns from user corrections to improve over time
- User Accounts: Secure registration and login system
- History Tracking: Save and manage your transliteration history
- CSV Export: Export your transliteration history as CSV files
-
- Batch Processing: Upload .txt, .docx and .pdf files to get a transliterated .txt
- Preview Mode: Preview document processing before download
- Responsive Design: Works seamlessly on desktop and mobile devices
- Translation Support: Basic Hindi/Marathi to English translation via Google Translate
- Python 3.8 or higher
- pip package manager
- Virtual environment (recommended)
-
Clone the repository
git clone https://github.com/yourusername/indicode.git cd indicode -
Create and activate virtual environment
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Run the application
python app.py
-
Access the application Open your browser and navigate to
http://127.0.0.1:5000
indicode/
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── hindi_exceptions.json # Hindi language exceptions
├── marathi_exceptions.json # Marathi language exceptions
├── nukta_exceptions.json # Nukta character exceptions
├── custom_indicate/ # Custom transliteration engine
│ ├── __init__.py # Package initialization
│ ├── transliterate.py # Basic character mappings
│ ├── enhanced_transliteration.py # Advanced features
│ ├── schwa_deletion.py # Inherent vowel handling
│ ├── context_aware.py # Context-aware processing
│ ├── exception_detection.py # Exception handling
│ ├── auto_capitalization.py # Capitalization rules
│ ├── exceptions.py # Exception management
│ └── nukta_exceptions.py # Nukta handling
├── database/ # Database files
│ └── transliterate.db # SQLite database
├── static/ # Static assets
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript files
│ └── favicon.ico # Site favicon
└── templates/ # HTML templates
├── base.html # Base template
├── index.html # Home page
├── dashboard.html # User dashboard
├── history.html # Transliteration history
├── login.html # Login page
├── register.html # Registration page
└── settings.html # User settings
- Backend: Python 3.10.9, Flask 2.0.1
- Frontend: HTML5, CSS3, JavaScript (ES6+), Bootstrap 5
- Database: SQLite with SQLAlchemy ORM
- Authentication: Flask-Login with session management
- Document Processing: python-docx, PyPDF2
- Translation: Google Translate API integration
- Security: Flask-Bcrypt for password hashing
- Visit the homepage or dashboard
- Select your input language (Hindi/Marathi)
- Type or paste text in the input field
- Click "Transliterate" to see the English output
- Use "Copy" to copy results to clipboard
- Go to the Dashboard
- Upload a file (TXT, DOCX, or PDF)
- Select the input language
- Preview the processing if desired
- Download the transliterated document
- View your transliteration history
- Export history as CSV
- Reuse previous transliterations
- Clear history when needed
The application employs several sophisticated techniques:
- Character Mapping: Direct conversion using comprehensive Devanagari-to-Roman mappings
- Schwa Deletion: Statistical analysis for inherent vowel handling
- Context Analysis: Surrounding word analysis for disambiguation
- Exception Detection: Automatic recognition of known exceptions
- Phonetic Refinement: Sound-based adjustments for better pronunciation
- Learning System: Continuous improvement from user feedback
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Home page |
/transliterate |
POST | Transliterate text |
/translate |
POST | Translate text |
/process_file |
POST | Process uploaded files |
/history |
GET | View transliteration history |
/export_history |
GET | Export history as CSV |
/feedback |
POST | Submit corrections/feedback |
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow PEP 8 coding standards
- Add unit tests for new features
- Update documentation as needed
- Test on multiple browsers and devices
Found a bug? Please open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Browser/OS information
This project is licensed under the MIT License - see the LICENSE file for details.
- Alesha Mulla - muggloaf
- Ajinkya Ghule - GhuleAjikya
- Inspiration from various transliteration libraries
- Hindi/Marathi linguistic research papers
- Open source community for tools and libraries
- Beta testers and feedback providers
⭐ Star this repository if you found it helpful!
[](https://www.python.org/downloads/)
[](https://flask.palletsprojects.com/)
[](LICENSE)