| title | emoji | colorFrom | colorTo | sdk | sdk_version | app_file | pinned |
|---|---|---|---|---|---|---|---|
AI Language Learning Assistant |
🎓 |
blue |
purple |
streamlit |
1.49.1 |
app.py |
false |
An AI-powered Streamlit application designed to help users learn and practice Indian languages through word meaning exercises. The app generates English questions about word meanings and allows users to respond in their native Indian language through both text and voice input.
- Multi-language Support: Supports 13 major Indian languages
- AI-Generated Questions: Automatic generation of word meaning questions in English
- Dual Input Methods: Text and voice input capabilities
- Local Data Storage: All responses are stored locally for privacy
- Progress Tracking: View your learning progress and previous responses
- User-Friendly Interface: Clean, intuitive Streamlit interface
- Open Source: Built with open-source AI models
The application supports the following Indian languages:
- Hindi (हिन्दी)
- Bengali (বাংলা)
- Telugu (తెలుగు)
- Marathi (मराठी)
- Tamil (தமிழ்)
- Gujarati (ગુજરાતી)
- Urdu (اردو)
- Kannada (ಕನ್ನಡ)
- Malayalam (മലയാളം)
- Odia (ଓଡ଼ିଆ)
- Punjabi (ਪੰਜਾਬੀ)
- Assamese (অসমীয়া)
- Sanskrit (संस्कृत)
- Python 3.8 or higher
- pip package manager
-
Clone the repository:
git clone https://github.com/yourusername/indian-language-learning-assistant.git cd indian-language-learning-assistant -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
streamlit run app.py
-
Open your browser: Navigate to
http://localhost:8501
This app is ready to deploy on Hugging Face Spaces:
- Upload all files to your Hugging Face Space repository
- Set the Space type to "Streamlit"
- The app will automatically deploy
indian-language-learning-assistant/
├── app.py # Main Streamlit application
├── requirements.txt # Python dependencies
├── README.md # Project documentation
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Version history
├── LICENSE # MIT License
├── REPORT.md # Technical report
├── user_responses/ # Local storage directory (auto-created)
│ ├── response_*.json # User text responses
│ └── audio_*.wav # User audio responses
└── assets/ # Static assets (if any)
- Select Language: Choose your native Indian language from the dropdown in the sidebar
- Generate Question: Click "Generate New Question" to get an AI-generated word meaning question in English
- Provide Response:
- Text: Type your explanation of the word meaning in your selected language
- Voice: Click the microphone button to record your spoken response
- Submit: Click "Submit Response" to save your answer locally
- Track Progress: View your previous responses and learning statistics
- Text Generation: Uses Microsoft's DialoGPT-medium model for question generation
- Audio Processing: Handles audio recording and storage using SoundFile
- Language Support: Implements language codes following ISO 639-1 standards
- Local Storage: All user data is stored locally in JSON and WAV formats
- Privacy-First: No data is sent to external servers
- Structured Format: Responses include metadata like timestamp, language, and question context
- Streamlit: Web application framework
- Transformers: Hugging Face transformers library for AI models
- SoundFile: Audio file handling
- audio-recorder-streamlit: Audio recording component
No environment variables are required for basic functionality. The app works out of the box.
- Add Languages: Modify the
INDIAN_LANGUAGESdictionary inapp.py - Change Models: Update the model loading function to use different AI models
- Modify Questions: Customize the word list or implement more sophisticated question generation
- Automatically generates diverse word meaning questions
- Focuses on common vocabulary for practical learning
- Questions are always in English for consistency
- Text Input: Large text area for detailed written responses
- Voice Recording: One-click audio recording with visual feedback
- Dual Submission: Users can provide both text and voice responses
- Response Counter: Tracks total number of responses
- Language Distribution: Shows usage statistics across different languages
- Historical View: Access to previous responses with timestamps
- JSON Storage: Structured storage of text responses with metadata
- Audio Files: WAV format audio storage with unique identifiers
- File Organization: Timestamp-based file naming for easy management
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Reporting bugs
- Suggesting features
- Submitting pull requests
- Code style guidelines
- Advanced AI models for better question generation
- Speech-to-text functionality for audio analysis
- Multi-user support with user profiles
- Export functionality for learning data
- Integration with more Indian languages
- Difficulty levels and adaptive learning
- Community features and shared learning
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
For support, questions, or feedback:
- Create an issue on GitHub
- Review the CHANGELOG.md for version updates
- Hugging Face for providing open-source AI models
- Streamlit team for the excellent web framework
- The Indian language community for inspiration and feedback
- Contributors and users who help improve the application
Made with ❤️ for Indian language learners