Trinath052004/ai-language-learning-assistant
1
š£ļø Indian Language Learning Assistant
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.
š Features
- 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
š Supported Languages
The application supports the following Indian languages:
- Hindi (ą¤¹ą¤æą¤Øą„ą¤¦ą„)
- Bengali (ą¦¬ą¦¾ą¦ą¦²ą¦¾)
- Telugu (ą°¤ą±ą°²ą±ą°ą±)
- Marathi (मराठą„)
- Tamil (தமிஓąÆ)
- Gujarati (ąŖą«ąŖąŖ°ąŖ¾ąŖ¤ą«)
- Urdu (Ų§Ų±ŲÆŁ)
- Kannada (ą²ą²Øą³ą²Øą²”)
- Malayalam (ą“®ą“²ą“Æą“¾ą“³ą“)
- Odia (ą¬ą¬”଼ିą¬)
- Punjabi (ąØŖą©°ąØąØ¾ąØ¬ą©)
- Assamese (ą¦ ą¦øą¦®ą§ą¦Æą¦¼ą¦¾)
- Sanskrit (ą¤øą¤ą¤øą„ą¤ą„त)
š Quick Start
Prerequisites
- Python 3.8 or higher
- pip package manager
Installation
- 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
For Hugging Face Spaces
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
š Project Structure
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)šÆ How to Use
- 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
š ļø Technical Details
AI Backend
- 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
Data Storage
- 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
Dependencies
- Streamlit: Web application framework
- Transformers: Hugging Face transformers library for AI models
- SoundFile: Audio file handling
- audio-recorder-streamlit: Audio recording component
š§ Configuration
Environment Variables
No environment variables are required for basic functionality. The app works out of the box.
Customization
- 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
š Features in Detail
AI Question Generation
- Automatically generates diverse word meaning questions
- Focuses on common vocabulary for practical learning
- Questions are always in English for consistency
Multi-modal Input
- 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
Progress Tracking
- Response Counter: Tracks total number of responses
- Language Distribution: Shows usage statistics across different languages
- Historical View: Access to previous responses with timestamps
Local Data Management
- 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
š¤ Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Reporting bugs
- Suggesting features
- Submitting pull requests
- Code style guidelines
š Roadmap
- [ ] 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
š License
This project is licensed under the MIT License - see the LICENSE file for details.
šāāļø Support
For support, questions, or feedback:
- Create an issue on GitHub
- Check the REPORT.md for technical details
- Review the CHANGELOG.md for version updates
š Acknowledgments
- 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
