Signia is a Colombian Sign Language (LSC) translation platform built with Django 5.2 and deployed on Railway. It gives deaf and mute users a two-way bridge between written or spoken Spanish and LSC: the app can take text or audio input, process it through a Groq-powered grammar layer that restructures Spanish into proper LSC gloss order, and then present the matching sign videos from a curated database. In the opposite direction, a live webcam feed captures hand gestures, runs them through a MediaPipe landmark detector and a scikit-learn RandomForest classifier, and converts the recognized signs back into readable Spanish text — all inside the browser with no additional desktop software required.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jtapieromalambo-ctrl/Signia/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Clone the repo, configure your environment, and have Signia running locally in minutes.
Text to Signs
Learn how the text-and-audio translation pipeline works, from Whisper STT to LSC grammar reordering.
Sign Recognition
Explore how MediaPipe hand landmarks feed a RandomForest model to recognize LSC signs in real time.
User Accounts
Understand the custom auth flow, OTP email verification, OAuth providers, and disability-based routing.
What Signia does
Signia exposes two main translation modes that can be used independently depending on the user’s communication needs. Text and audio → LSC signs. A user types a Spanish sentence or records an audio clip. If audio is provided, faster-whisper transcribes it to text. The resulting text is then sent to the LSC grammar layer (lsc_grammar.py), which calls the Groq API with a chain of four Llama models to reorder the Spanish tokens into LSC gloss order and identify any facial expression markers. The structured output is used to look up sign videos in the database, which are then played back in sequence.
Webcam signs → text. The user faces their webcam and performs hand signs. MediaPipe’s HandLandmarker extracts 21 per-hand landmarks from each frame. Those landmark vectors are fed to a trained RandomForest classifier that returns the corresponding LSC sign label, which is displayed as text on screen.
Tech stack
| Layer | Technology |
|---|---|
| Web framework | Django 5.2 |
| Runtime | Python 3.11 |
| Speech-to-text | faster-whisper |
| LSC grammar / LLM | Groq API (Llama models, 4-model fallback chain) |
| Hand landmark detection | MediaPipe HandLandmarker |
| Sign classification | scikit-learn RandomForest (300 trees) |
| Auth & OAuth | django-allauth (Google, Facebook) |
| Static files | WhiteNoise with CompressedStaticFilesStorage |
| Database | SQLite (dev) / PostgreSQL Neon (production) |
| Deployment | Railway via nixpacks |
Key features
- Text and audio to LSC — Type or speak Spanish and receive the corresponding LSC sign video sequence, reordered to match LSC grammar.
- Real-time webcam sign recognition — Perform hand signs in front of a webcam and receive the Spanish text equivalent in real time.
- LSC grammar AI layer — A dedicated module converts Spanish word order into LSC gloss order using the Groq API, with a rule-based fallback if all LLM calls fail.
- OTP email verification — New registrations require a one-time passcode delivered by email (10-minute expiry) before the account is activated.
- OAuth login — Users can sign in with Google or Facebook through django-allauth; accounts are auto-connected if the email already exists.
- Disability-based routing — After login, users identify as deaf (
sordo) or mute (mudo), and are routed directly to the appropriate module. - Admin video panel — Superusers manage the sign video library and trigger ML model retraining from
/admin-videos/. - Translation and recognition history — Every translation and recognition event is stored per user and accessible through the
historialmodule.
Signia’s webcam recognition module requires a trained ML model (
model_seq.pkl) to be present before it can classify signs. The model is generated through the admin video panel after sign videos have been uploaded. See the Sign Recognition page for details.