Skip to main content

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.

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.

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

LayerTechnology
Web frameworkDjango 5.2
RuntimePython 3.11
Speech-to-textfaster-whisper
LSC grammar / LLMGroq API (Llama models, 4-model fallback chain)
Hand landmark detectionMediaPipe HandLandmarker
Sign classificationscikit-learn RandomForest (300 trees)
Auth & OAuthdjango-allauth (Google, Facebook)
Static filesWhiteNoise with CompressedStaticFilesStorage
DatabaseSQLite (dev) / PostgreSQL Neon (production)
DeploymentRailway 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 historial module.
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.
Users who sign in as superusers skip the disability selection step entirely and are routed straight to the admin video panel at /admin-videos/.

Project layout

Signia is organized into focused Django apps, each responsible for a single domain:
Signia/          # Django project package (settings, urls, wsgi, asgi)
usuarios/        # Auth, profiles, OTP email verification, OAuth
traduccion/      # Text/audio → LSC sign videos
reconocimientos/ # Webcam hand-sign → text (MediaPipe + RandomForest)
historial/       # Per-user translation and recognition history
lsc_grammar.py   # Standalone LSC grammar layer (Groq API)
ffmpeg/          # Bundled ffmpeg binaries for Windows development

Build docs developers (and LLMs) love