A comprehensive Irish Sign Language translation application for iOS and Web, featuring grammar-aware translation, real-time ISL-to-speech and speech-to-ISL translation, a crowdsourced dictionary, and continuous learning capabilities.
- ISL Dictionary: Browse and search Irish Sign Language signs with video demonstrations
- Grammar-Aware Translation: Authentic ISL grammar (Topic-Comment structure, not word-for-word)
- ISL to Speech: Real-time translation of sign language to spoken words using camera
- Speech to ISL: Convert spoken language to ISL gloss with non-manual markers
- Crowdsourcing: Community-driven sign submissions and validation
- Learning Mode: Structured courses and practice with AI feedback
- Offline Support: Download dictionary and models for offline use
- Topic-Comment Word Order: Proper ISL sentence structure
- WH-Question Formation: WH-words at end with eyebrow markers
- Non-Manual Markers: Facial expressions, head movements, body position
- Classifiers: Entity, handling, and surface classifiers
- Time-First Grammar: Temporal markers at sentence start
- LLM-Powered: Uses OpenAI GPT-4 with ISL grammar knowledge
- Enhanced Translation View: Glass-morphism UI with smooth transitions between SignβSpeech and SpeechβSign modes
- Hand Landmark Overlay: Real-time visualization of detected hand landmarks with customizable display
- Camera Controls: Improved camera handling with front-camera mirroring support
- Contribution Flow: Step-by-step contribution wizard with consent management, recording, and review
- Sign Playback: Word-by-word ISL translation playback with fingerspelling support
- Modern UI: Material-design inspired components with haptic feedback
- ISL Fingerspelling Alphabet: Interactive learning module for all 26 letters with descriptions and progress tracking
- Numbers Learning: Dedicated page for learning ISL number signs
- ISL Fundamentals: Core concepts and basic phrases learning module
- Grammar Lessons: Learn ISL grammar rules, classifiers, and sentence patterns
- Contribution Tracking: View your contributed signs and their validation status
- User Profiles: Track your learning progress and contributions
IrishSignLanguage/
βββ apps/
β βββ ios/ # Native SwiftUI iOS app
β β βββ ISLTranslator/
β β βββ Models/ # Data models
β β βββ Services/ # API, Auth, Settings managers
β β βββ Views/ # SwiftUI views
β β β βββ Contribute/ # Contribution flow with camera recording
β β β βββ Dictionary/ # Sign dictionary browser
β β β βββ Learn/ # Learning modules
β β β βββ Profile/ # User profile
β β β βββ Translate/ # Real-time translation
β β βββ Extensions/ # Swift extensions
β βββ web/ # Next.js web application
β βββ src/
β βββ app/ # App Router pages
β β βββ api/ # API routes
β β βββ auth/ # Authentication pages
β β βββ contribute/ # Contribution interface
β β βββ dictionary/ # Sign dictionary
β β βββ learn/ # Learning modules
β β βββ translate/ # Web translation
β βββ components/ # Reusable components
β βββ lib/ # Utilities and context
βββ packages/
β βββ api/ # Node.js/Express backend API
β β βββ src/
β β βββ middleware/ # Auth and error handling
β β βββ routes/ # API endpoints
β β βββ services/ # Translation engine, R2 storage
β βββ database/ # Prisma schema and migrations
β β βββ prisma/ # Database schema and seeds
β βββ data-scraper/ # π ISL data scraping tools
β β βββ src/
β β βββ scrapers/ # IDS dictionary, linguistics scrapers
β β βββ processors/ # Video download, R2 upload
β β βββ cli/ # Command-line tools
β βββ ml-models/ # ML model definitions and training
β βββ training/ # Model training scripts, Modal.com GPU training
βββ infrastructure/
β βββ docker/ # Container definitions
βββ scripts/ # Setup and utility scripts
βββ supabase/ # Supabase configuration
βββ docs/ # Documentation
- Node.js 18+
- npm 10+
- Xcode 15+ (for iOS development)
- Python 3.10+ (for ML training)
- Supabase - PostgreSQL database and auth
- Firebase - User authentication
- Cloudflare R2 - Video storage (with zero egress fees)
- OpenAI API - Translation engine
- Vercel - Web app hosting (optional)
- Modal.com - Cloud GPU training (optional)
- Clone the repository:
git clone https://github.com/your-org/irish-sign-language.git
cd irish-sign-language- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env.local
# Edit .env.local with your configurationRequired environment variables:
# Database
DATABASE_URL=postgresql://...
DIRECT_URL=postgresql://...
# Firebase Auth
FIREBASE_API_KEY=...
FIREBASE_AUTH_DOMAIN=...
FIREBASE_PROJECT_ID=...
# OpenAI (for translation engine)
OPENAI_API_KEY=sk-...
# Cloudflare R2 (for video storage)
CLOUDFLARE_ACCOUNT_ID=...
R2_ACCESS_KEY_ID=...
R2_SECRET_ACCESS_KEY=...
R2_BUCKET_NAME=isl-videos
R2_PUBLIC_URL=https://...- Set up the database:
# Generate Prisma client
npm run db:generate
# Push schema to database
npm run db:push
# Seed with grammar rules and sample data
cd packages/database
npm run seed:all- Start development servers:
# Start all services
npm run dev
# Or start individually
npm run api:dev # Backend API (port 3001)
npm run web:dev # Web frontend (port 3000)- Open the iOS project in Xcode:
open apps/ios/ISLTranslator.xcodeproj- Select your target device/simulator and run
- Navigate to the web app:
cd apps/web- Start the development server:
npm run dev- SwiftUI with iOS 17+ features
- Vision Framework (hand pose detection)
- Core ML (on-device inference)
- AVFoundation (camera/video recording)
- Speech Framework (TTS/STT)
- Combine for reactive updates
- Next.js 14 (App Router)
- TensorFlow.js + MediaPipe
- Tailwind CSS
- TypeScript
- Framer Motion (animations)
- Lucide React (icons)
- Node.js + Express
- PostgreSQL + Prisma ORM
- Firebase Auth
- OpenAI GPT-4 (translation engine)
- Cloudflare R2 (video storage)
- TensorFlow/Keras
- MediaPipe (hand pose)
- Modal.com (cloud GPU training)
- Core ML export for iOS
- TFLite export for mobile
- Puppeteer (web scraping)
- Cloudflare R2 (storage)
- PostgreSQL (metadata)
POST /api/auth/register- User registrationGET /api/auth/me- Get current user
GET /api/signs- List all signsGET /api/signs/:id- Get sign detailsGET /api/signs/search/:query- Search signsGET /api/categories- List categories
POST /api/translate- Translate English to ISL glossPOST /api/translate/batch- Batch translationPOST /api/translate/feedback/correct- Mark translation correctPOST /api/translate/feedback/correction- Submit correctionGET /api/translate/grammar-rules- Get ISL grammar rulesGET /api/translate/classifiers- Get ISL classifiersGET /api/translate/non-manual-markers- Get facial/body markersGET /api/translate/sentence-patterns- Get sentence patterns
GET /api/contributions- List contributionsPOST /api/contributions- Submit new contributionGET /api/contributions/my- Get user's contributions
POST /api/upload/sign-video- Upload sign video to R2POST /api/upload/contribution-video- Upload contribution videoGET /api/upload/:key- Get signed URL for R2 object
- User - User accounts with roles and consent
- Sign - Dictionary entries with translations
- Category - Sign categories and subcategories
- SignMedia - Videos and images for signs
- GrammarRule - ISL grammar rules with examples
- Classifier - Handshape classifiers (CL:1, CL:3, etc.)
- NonManualMarker - Facial expressions, head movements
- SentencePattern - ISL sentence templates
- TranslationPair - English β ISL gloss pairs
- TranslationSession - Translation history for learning
- ScrapedSource - Data source tracking
- ScrapedEntry - Scraped dictionary entries
- HandPoseData - Training data from videos
- MLModel - Model versions and metrics
- TranslationFeedback - User feedback for improvement
- Data Collection: User interactions generate training data
- Feedback Loop: Users can correct translations
- Export:
python training/export_training_data.py - Train:
modal run training/modal_train.py --alphabet - Deploy: Models uploaded to R2, served to apps
Scrape ISL resources from official sources:
cd packages/data-scraper
# Scrape IDS dictionary
npm run scrape:ids
# Download and process videos to R2
npm run process:videos --limit 50Sources:
- Irish Deaf Society Dictionary
- ISL Linguistics Videos (Vimeo)
- DCU STEM Glossary
- Oireachtas ISL Glossary
ββββββββββββββββββββ ββββββββββββββββββββ
β Vercel β β Cloudflare R2 β
β (Web App) β β (Video/Media) β
ββββββββββ¬ββββββββββ ββββββββββ¬ββββββββββ
β β
β βββββββββββββ β
ββββββ€ Supabase βββββββββ
β (Database)β
βββββββββββββ
- Vercel: Web app hosting (Next.js)
- Cloudflare R2: Video storage (zero egress fees!)
- Supabase: PostgreSQL database
- Firebase: User authentication
- Modal.com: Cloud GPU training
Video streaming is bandwidth-intensive. R2 has zero egress fees, making it ideal for serving sign language videos:
- 1TB video served = $0 with R2 vs ~$90 with AWS S3
- Automatically cached at edge
- S3-compatible API
We welcome contributions from the community! Please see CONTRIBUTING.md for guidelines.
Help expand the ISL dictionary by contributing sign videos through the app. All contributions go through community validation to ensure accuracy.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Translation Engine: Grammar-aware EnglishβISL translation with GPT-4
- ISL Grammar Database: Rules, classifiers, non-manual markers, sentence patterns
- Data Scraping: Automated scraping from Irish Deaf Society
- Cloudflare R2 Integration: Zero-egress video storage
- Cloud GPU Training: Modal.com integration for model training
- Continuous Learning: User feedback pipeline for model improvement
- Enhanced iOS translation UI with glass-morphism design
- Added hand landmark visualization overlay
- ISL fingerspelling alphabet learning module for web
This project is licensed under the MIT License - see LICENSE for details.
- Irish Deaf Society for linguistic resources
- ISL researchers at UCD and DCU
- The Irish deaf community
- All our community contributors
For questions or partnerships, contact: [your-email@example.com]
Note: This project uses ISL (Irish Sign Language), which is distinct from BSL (British Sign Language) and ASL (American Sign Language). Each sign language has its own grammar and vocabulary.