An interactive AI-powered mobile app to learn and practice sign language using speech, text, and gesture recognition
Demo โข Features โข Installation โข Usage โข Contributing
Sign Language Learner App is a cutting-edge educational mobile application designed to make sign language learning accessible, engaging, and effective for everyone. Using advanced AI and machine learning technologies, the app provides personalized learning experiences through gesture recognition, interactive lessons, and gamified challenges.
- ๐ฎ Gamified Learning: Interactive quizzes, challenges, and progress tracking
- ๐ค AI-Powered Feedback: Real-time gesture analysis and personalized suggestions
- ๐ฑ Mobile-First Design: Optimized for smartphones and tablets
- ๐ Offline Capability: Learn anytime, anywhere without internet
- ๐ฅ Community-Driven: Built with input from the deaf and hard-of-hearing community
- ๐ Curriculum-Based: Structured learning path from beginner to advanced
- Real-time Detection: Uses MediaPipe and TensorFlow Lite for accurate hand tracking
- Gesture Evaluation: AI-powered feedback on gesture accuracy and form
- Multiple Angles: Recognizes gestures from different camera positions
- Adaptive Learning: Improves recognition based on user's signing style
- Bidirectional Learning: Practice both sign-to-speech and speech-to-sign
- Natural Language Processing: Understands context and sentence structure
- Voice Synthesis: High-quality text-to-speech with multiple voice options
- Multilingual Support: Learn sign language in your preferred spoken language
- Progress Tracking: Visual progress bars and achievement system
- Daily Challenges: Keep users engaged with daily learning goals
- Streak System: Reward consistent practice with streak counters
- Leaderboards: Compete with friends and global learners
- Badges & Rewards: Unlock achievements for milestones and skills
- Interactive Chatbot: Practice conversations in real-world scenarios
- Personalized Feedback: Tailored suggestions based on learning patterns
- Adaptive Difficulty: Automatically adjusts lesson complexity
- Learning Analytics: Track strengths and areas for improvement
- Structured Lessons: Beginner to advanced learning paths
- Topic Categories: Everyday conversations, professional terms, emotional expressions
- Cultural Context: Learn about deaf culture and community
- Regional Variations: Support for different sign language dialects
- Download Lessons: Access content without internet connection
- Local Model Processing: On-device AI for privacy and speed
- Sync Progress: Automatically sync when connected to internet
- Reduced Data Usage: Optimized for mobile data plans
| Component | Technology | Purpose |
|---|---|---|
| Mobile Framework | Flutter (Dart) | Cross-platform mobile development |
| Backend Services | Firebase | Authentication, database, cloud functions |
| Machine Learning | TensorFlow Lite | On-device gesture recognition |
| Computer Vision | MediaPipe | Hand tracking and pose detection |
| Local Database | SQLite/Hive | Offline data storage |
| State Management | Riverpod/Provider | App state and data flow |
| Animation | Rive/Lottie | Interactive animations and feedback |
| Speech APIs | Google Speech/Azure | STT and TTS capabilities |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Presentation Layer โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Screens โ โ Widgets โ โ Animations โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Business Logic Layer โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Controllers โ โ Services โ โ Repositoriesโ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Data Layer โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Firebase โ โLocal Databaseโ โ ML Models โ โ
โ โ (Cloud) โ โ (SQLite) โ โ(TF Lite) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
SignLanguageLearner/
โโโ ๐ฑ lib/
โ โโโ ๐ core/
โ โ โโโ ๐ constants.dart # App-wide constants
โ โ โโโ ๐ theme.dart # App theming and styles
โ โ โโโ ๐ utils.dart # Utility functions
โ โโโ ๐ data/
โ โ โโโ ๐ models/
โ โ โ โโโ ๐ user.dart # User data model
โ โ โ โโโ ๐ lesson.dart # Lesson structure
โ โ โ โโโ ๐ progress.dart # Progress tracking
โ โ โโโ ๐ repositories/
โ โ โ โโโ ๐ user_repository.dart
โ โ โ โโโ ๐ lesson_repository.dart
โ โ โ โโโ ๐ progress_repository.dart
โ โ โโโ ๐ datasources/
โ โ โโโ ๐ firebase_datasource.dart
โ โ โโโ ๐ local_datasource.dart
โ โโโ ๐ domain/
โ โ โโโ ๐ entities/
โ โ โโโ ๐ repositories/
โ โ โโโ ๐ usecases/
โ โโโ ๐ presentation/
โ โ โโโ ๐ screens/
โ โ โ โโโ ๐ auth/
โ โ โ โ โโโ ๐ login_screen.dart
โ โ โ โ โโโ ๐ signup_screen.dart
โ โ โ โโโ ๐ home/
โ โ โ โ โโโ ๐ home_screen.dart
โ โ โ โ โโโ ๐ dashboard_screen.dart
โ โ โ โโโ ๐ learning/
โ โ โ โ โโโ ๐ lesson_screen.dart
โ โ โ โ โโโ ๐ practice_screen.dart
โ โ โ โ โโโ ๐ quiz_screen.dart
โ โ โ โโโ ๐ profile/
โ โ โ โ โโโ ๐ profile_screen.dart
โ โ โ โ โโโ ๐ progress_screen.dart
โ โ โ โโโ ๐ camera/
โ โ โ โโโ ๐ gesture_camera_screen.dart
โ โ โโโ ๐ widgets/
โ โ โ โโโ ๐ common/
โ โ โ โ โโโ ๐ custom_button.dart
โ โ โ โ โโโ ๐ progress_bar.dart
โ โ โ โ โโโ ๐ loading_indicator.dart
โ โ โ โโโ ๐ lesson/
โ โ โ โ โโโ ๐ lesson_card.dart
โ โ โ โ โโโ ๐ gesture_display.dart
โ โ โ โ โโโ ๐ feedback_widget.dart
โ โ โ โโโ ๐ camera/
โ โ โ โโโ ๐ camera_preview.dart
โ โ โ โโโ ๐ gesture_overlay.dart
โ โ โโโ ๐ controllers/
โ โ โโโ ๐ auth_controller.dart
โ โ โโโ ๐ lesson_controller.dart
โ โ โโโ ๐ camera_controller.dart
โ โโโ ๐ services/
โ โ โโโ ๐ firebase_service.dart # Firebase integration
โ โ โโโ ๐ ml_service.dart # Machine learning service
โ โ โโโ ๐ camera_service.dart # Camera handling
โ โ โโโ ๐ speech_service.dart # STT/TTS integration
โ โ โโโ ๐ notification_service.dart
โ โโโ ๐ main.dart # App entry point
โโโ ๐ assets/
โ โโโ ๐ images/
โ โ โโโ ๐ gestures/ # Sign language reference images
โ โ โโโ ๐ avatars/ # User avatars and characters
โ โ โโโ ๐ icons/ # Custom app icons
โ โโโ ๐ animations/
โ โ โโโ ๐ rive/ # Rive animation files
โ โ โโโ ๐ lottie/ # Lottie animation files
โ โโโ ๐ audio/
โ โ โโโ ๐ sounds/ # UI sound effects
โ โ โโโ ๐ pronunciations/ # Word pronunciations
โ โโโ ๐ fonts/ # Custom fonts
โโโ ๐ ml_models/
โ โโโ ๐ gesture_classifier.tflite # Trained gesture model
โ โโโ ๐ hand_landmark.tflite # MediaPipe hand model
โ โโโ ๐ model_metadata.json # Model information
โโโ ๐ test/
โ โโโ ๐ unit/ # Unit tests
โ โโโ ๐ widget/ # Widget tests
โ โโโ ๐ integration/ # Integration tests
โโโ ๐ docs/
โ โโโ ๐ API.md # API documentation
โ โโโ ๐ ARCHITECTURE.md # Architecture guide
โ โโโ ๐ USER_GUIDE.md # User manual
โโโ ๐ pubspec.yaml # Flutter dependencies
โโโ ๐ analysis_options.yaml # Code analysis rules
โโโ ๐ firebase.json # Firebase configuration
โโโ ๐ README.md # This file
- Flutter SDK 3.0 or higher
- Dart SDK 2.17 or higher
- Android Studio / VS Code with Flutter extensions
- Firebase Account for backend services
- Physical Device or Emulator with camera support
git clone https://github.com/yourusername/SignLanguageLearner.git
cd SignLanguageLearner# Get all packages
flutter pub get
# Verify Flutter installation
flutter doctor# Install Firebase CLI
npm install -g firebase-tools
# Login to Firebase
firebase login
# Install FlutterFire CLI
dart pub global activate flutterfire_cli
# Configure Firebase for your project
flutterfire configure# Copy environment template
cp lib/core/env_template.dart lib/core/env.dart
# Edit env.dart with your API keys and configuration# Download pre-trained models
flutter pub run build_runner build
# Or manually download models to ml_models/ directory# Debug mode
flutter run
# Release mode
flutter run --release
# Specific device
flutter run -d <device_id># android/app/build.gradle
android {
compileSdkVersion 33
minSdkVersion 21
targetSdkVersion 33
}
# Add permissions in android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" /># ios/Runner/Info.plist
<key>NSCameraUsageDescription</key>
<string>This app uses camera for gesture recognition</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app uses microphone for speech recognition</string>โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Splash Screen โ => โ Onboarding โ => โ Auth Screen โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโผโโโโโโโโ
โ Profile Setup โ <= โ Home/Dashboard โ <= โ Main Navigationโ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโโโผโโโโโโโโ โโโโโโโโโโโผโโโโโโโโโโ โโโโโโโโโผโโโโโโโโ
โ Lessons โ โ Practice Mode โ โ Progress โ
โ Browser โ โ (Camera) โ โ Tracking โ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
| Screen | Purpose | Key Features |
|---|---|---|
| Onboarding | First-time user introduction | Tutorial, permissions, setup |
| Dashboard | Main hub for learning activities | Progress overview, daily goals |
| Lesson Browser | Browse available lessons | Categories, difficulty levels |
| Practice Mode | Interactive learning session | Gesture recognition, feedback |
| Quiz Mode | Test knowledge and skills | Timed challenges, scoring |
| Progress | Track learning journey | Statistics, achievements |
| Profile | User settings and preferences | Account settings, app config |
- Welcome & Permissions: Grant camera and microphone access
- User Profile: Set up your learning preferences and goals
- Skill Assessment: Take a quick test to determine your starting level
- Tutorial: Learn how to use gesture recognition and app features
- Dashboard Check: Review daily goals and progress
- Lesson Selection: Choose from recommended or browse all lessons
- Interactive Learning: Follow guided instructions with AI feedback
- Practice Session: Use camera to practice gestures
- Quiz Challenge: Test your knowledge with interactive quizzes
- Progress Review: Check achievements and plan next session
// Example gesture practice flow
1. Position camera at arm's length
2. Ensure good lighting and clear background
3. Follow on-screen gesture guide
4. Receive real-time feedback
5. Repeat until accuracy target is met// Speech-to-sign learning
1. Listen to spoken word/phrase
2. Perform corresponding sign language gesture
3. App recognizes your gesture
4. Get feedback on accuracy and timing// Daily challenge example
1. Complete 5 new gestures
2. Practice for 15 minutes
3. Achieve 85% accuracy rate
4. Earn points and badges
5. Maintain learning streak| Metric | Description | Visualization |
|---|---|---|
| Accuracy Score | Gesture recognition accuracy | Progress bars, charts |
| Learning Streak | Consecutive days of practice | Streak counter, calendar |
| Skill Level | Current proficiency level | Level badges, progress rings |
| Time Practiced | Total learning time | Time tracking, goals |
| Gestures Learned | Number of mastered signs | Achievement counters |
- Difficulty Adjustment: Automatically increases challenge based on performance
- Personalized Recommendations: Suggests lessons based on learning patterns
- Weakness Identification: Highlights areas needing improvement
- Optimal Timing: Reminds users when to review previously learned content
# Run all tests
flutter test
# Run with coverage
flutter test --coverage
# Generate coverage report
genhtml coverage/lcov.info -o coverage/html
# Integration tests
flutter drive --target=test_driver/app.dart- Model validation
- Service logic testing
- Utility function verification
- UI component testing
- User interaction simulation
- Layout validation
- Complete user flow testing
- API integration verification
- Camera and ML model testing
# Debug APK
flutter build apk --debug
# Release APK
flutter build apk --release
# App Bundle (for Play Store)
flutter build appbundle --release# Debug build
flutter build ios --debug
# Release build
flutter build ios --release
# Create archive for App Store
flutter build ipa# Upload using fastlane
fastlane android deploy
# Manual upload
# Upload generated app-release.aab to Google Play Console# Upload using fastlane
fastlane ios deploy
# Manual upload via Xcode
# Archive and upload through Xcode Organizer- Basic Alphabet: A-Z fingerspelling
- Numbers: 0-20 counting
- Common Greetings: Hello, goodbye, thank you
- Family Members: Mom, dad, brother, sister
- Daily Activities: Eat, sleep, work, study
- Emotions & Feelings: Happy, sad, angry, excited
- Colors & Shapes: Basic color vocabulary
- Time & Dates: Days, months, telling time
- Food & Drinks: Common meal vocabulary
- Transportation: Car, bus, train, airplane
- Professional Terms: Job titles, workplace vocabulary
- Complex Conversations: Multi-sentence dialogues
- Abstract Concepts: Ideas, opinions, emotions
- Cultural Context: Deaf culture, community values
- Regional Variations: Different sign language dialects
- Medical Signs: Healthcare vocabulary
- Educational Signs: School and learning terms
- Emergency Signs: Safety and urgent communication
- Religious Signs: Spiritual and ceremonial vocabulary
- High Contrast Mode: Better visibility for users with visual impairments
- Text Size Options: Adjustable font sizes for readability
- Voice Commands: Navigate app using voice controls
- Haptic Feedback: Vibration feedback for interactions
- Screen Reader Support: Compatible with TalkBack and VoiceOver
- Community Input: Developed with deaf community feedback
- Cultural Context: Includes deaf culture education
- Regional Support: Multiple sign language variants
- Inclusive Design: Welcomes learners from all backgrounds
- Basic gesture recognition (ASL alphabet & numbers)
- Interactive lessons and quizzes
- Progress tracking and gamification
- Offline mode support
- Speech-to-text integration
- Advanced gesture recognition (words and phrases)
- AI chatbot for conversation practice
- Social features (friend challenges, leaderboards)
- Multiple sign languages (BSL, JSL)
- Improved accuracy with better ML models
- AR overlays for gesture guidance
- Live video chat with interpreters
- Advanced analytics and learning insights
- Teacher/parent dashboard
- Certification and achievement system
- VR immersive learning experiences
- Integration with video calling platforms
- Global sign language community platform
- AI-generated personalized curriculum
- Wearable device integration
We welcome contributions from developers, educators, and the deaf community!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes following our coding standards
- Test your changes thoroughly
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- ๐ Bug Fixes: Help identify and fix issues
- โจ New Features: Implement new learning modules
- ๐จ UI/UX Improvements: Enhance user experience
- ๐ Content Creation: Add new lessons and gestures
- ๐ Localization: Translate app into new languages
- ๐ Documentation: Improve guides and tutorials
- Follow Flutter/Dart best practices
- Write comprehensive tests for new features
- Use meaningful commit messages
- Update documentation for significant changes
- Respect accessibility guidelines
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Sign Language Learner Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software")...
- National Association of the Deaf (NAD) - Guidance and feedback
- Gallaudet University - Sign language curriculum consultation
- Google MediaPipe Team - Hand tracking technology
- Flutter Community - Open source packages and support
- Beta Testers - Early feedback from deaf community members
- MediaPipe - Hand landmark detection
- TensorFlow - Machine learning framework
- Firebase - Backend services
- Flutter - Mobile app framework
- ๐ Documentation: docs/USER_GUIDE.md
- ๐ Bug Reports: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- ๐ง Email Support: [email protected]
- ๐ฎ Discord: Join our learning community
- ๐ฆ Twitter: @SignLearnerApp
- ๐ Facebook: Sign Language Learner Community
- ๐ฑ Reddit: r/SignLanguageLearning
Made with โค๏ธ for inclusive education and accessibility
Help us make sign language learning accessible to everyone!
โญ Star this repository if you found it helpful! โญ