Inspiration

Around the world, 70 million people use sign language as their primary language. Yet most digital tools—meetings, hospitals, classrooms, customer support—are built entirely around spoken language. We realized that accessibility shouldn't be an afterthought; it should be built in from the start.

The moment that crystallized our vision was imagining a Deaf person in a doctor's office unable to understand medical terminology, a student struggling to follow a lecture, or a customer service interaction requiring an expensive interpreter. We asked ourselves: what if technology could bridge that gap instantly?

SignBridge was born from the belief that conversation is a human right, not a privilege.


What it does

SignBridge is a two-way real-time sign language translation platform with three core modes:

1. Speech → Sign

Speak or type any English sentence. Our system tokenizes, normalizes grammar and tense to ASL conventions, simplifies domain-specific jargon (e.g., medical terms → plain language), and plays sequenced sign language animations from our video library.

2. Sign → Speech

Use your webcam to sign into the system. MediaPipe Hands detects hand landmarks in real time; Gemini Vision interprets the gesture and returns English text, which is then spoken aloud via browser TTS or ElevenLabs.

3. Live Conversation

A side-by-side two-way interface where hearing users can speak and see signs, while Deaf signers can sign and hear speech, enabling seamless dialogue without an interpreter.


How we built it

Frontend

  • Vanilla JavaScript with HTML/CSS for responsive UI
  • MediaPipe Hands running locally in the browser for real-time hand landmark detection (21 joints per hand, 30+ fps)
  • Video preloading into a hidden buffer element to eliminate gaps between sign playback
  • AJAX forms with zero-reload submission for instant feedback

Backend

  • Django (Python) REST APIs handling text-to-sign and sign-to-speech routes
  • NLTK for tokenization, lemmatization, part-of-speech tagging, and tense detection
  • Google Gemini for sign language simplification, domain jargon removal, and hand classification
  • ElevenLabs TTS for natural-sounding speech synthesis

AI/ML Pipeline

  1. Hand Feature Extraction: Palm facing direction, finger flexion states, hand tilt, fingertip spread
  2. Motion Context: Rolling buffer of last 2–4 frames to capture dynamic signs (J vs. I, Yes vs. No)
  3. Gemini Classification: Fast-turnaround text-only API calls using gemini-2.0-flash-lite (3–5x faster than standard Flash)
  4. Video Matching: 150+ pre-recorded ASL sign clips; unknown words fall back to automatic fingerspelling

Data

  • 150+ pre-recorded sign language video clips (MP4)
  • 26 letter clips for fingerspelling
  • Allowed vocabulary carefully curated to ~150 common ASL signs

Challenges we ran into

1. ASL Grammar ≠ English Word Order

Initial word-for-word translation failed spectacularly. ASL follows topic-first order ("pizza I eat" not "I eat pizza"), uses tense markers as separate signs, and relies on spatial classifiers. We rebuilt the pipeline with proper NLP to detect English tense and reorder for ASL conventions.

2. Hand Ambiguity

Many signs share the same static hand shape but differ only in:

  • Palm facing (palm-forward vs. palm-back changes meaning entirely)
  • Hand tilt (sideways vs. upright)
  • Finger spread (V vs. U)
  • Motion (J vs. I, Yes vs. No)

We solved this by engineering rich geometric features and adding motion history context.

3. Latency Kills Usability

A 2-second delay between sign and speech breaks conversation flow. We optimized:

  • Switched to ultra-fast gemini-2.0-flash-lite model
  • Compressed prompts from 50+ lines to 4 lines
  • Parallelized frame capture and model calls
  • Preloaded next video before current one finishes

Result: 300–600ms per recognition (was 1.5–2s).

4. Web Speech API Unreliability

The browser's SpeechSynthesis.onend event sometimes never fires, permanently freezing app state. We added an 8-second timeout guard and wrapped all async flows in try/finally to guarantee state reset.

5. Video Playback Gaps

Switching between signs caused jarring 200–500ms pauses. We implemented a hidden video buffer that preloads the next sign while the current one plays.

6. Limited Vocabulary

We only have 150 pre-recorded signs. Most users encounter unknown words. We solved this by allowing automatic fallback to fingerspelling (playing individual letter clips), which covers ~95% of real-world sentences.


Accomplishments that we're proud of

End-to-end two-way communication — not just translation, but actual conversation between Deaf and hearing users

Real-time performance — sub-second latency in both directions, making it feel natural

Elegant fallback system — unknown words automatically fingerspell instead of breaking

Context awareness — system remembers prior words, so pronouns and references resolve correctly

Accessibility-first design — built WITH the Deaf community in mind, not retrofitted for them

Robust error handling — graceful degradation: if sign recognition fails, offer fingerspelling; if speech fails, type instead

Zero external dependencies for ML — hand detection and video playback run entirely in the browser (no server round-trip for video frames)


What we learned

1. Accessibility is Not Optional

It's not a checkbox feature. It requires deep engagement with the community you're serving. We realized early that word-for-word translation would fail—only by talking to Deaf signers did we understand ASL grammar fundamentally differs from English.

2. Latency is a Feature

In real-time communication, 500ms feels like an eternity. We spent as much time optimizing response time as we did on accuracy.

3. Hand Geometry is Surprisingly Expressive

Palm facing alone disambiguates dozens of sign pairs. We learned to extract and trust geometric invariants rather than relying on neural networks to "figure it out."

4. Perfect is the Enemy of Good

Our first attempts tried to handle 100% of signs with pre-recorded clips. Adding fingerspelling fallback was a breakthrough—now we handle ~95% of real-world sentences with elegant degradation.

5. Motion Context Matters More Than We Expected

Static hand pose is only 40–50% of sign identity. The last 2–4 frames of hand motion are often critical (especially for distinguishing letters and dynamic signs).


What's next for SignBridge

Short-term (Next 3 months)

  • [ ] Expand sign vocabulary to 500+ common signs (partner with Deaf linguists)
  • [ ] Add regional sign language support (BSL, LSF, JSL)
  • [ ] Mobile app for iOS/Android (bring real-time recognition to phones)
  • [ ] Accessibility audit with Deaf communities

Medium-term (3–6 months)

  • [ ] Video sign synthesis — use generative models (Stable Video Diffusion) to create signs on the fly instead of pre-recorded clips only
  • [ ] Conversational memory — remember user preferences and context across sessions
  • [ ] Domain-specific modes — Medical, Legal, Education (specialized vocabulary + jargon handling)
  • [ ] Offline mode — WebAssembly-based hand recognition for areas with poor connectivity

Long-term (6+ months)

  • [ ] Facial expression & body language — ASL is 60% hands, 40% face and torso; add full-body tracking
  • [ ] Interpreter dashboard — tools for professional interpreters to review, correct, and train the model
  • [ ] Integration with accessibility platforms — embed SignBridge into Zoom, Teams, Google Meet
  • [ ] Research partnerships — collaborate with universities on ASL linguistics and computer vision

The Big Vision

SignBridge is a step toward a world where technology doesn't just accommodate Deaf people—it amplifies them. Our ultimate goal is to make sign language translation so seamless and accurate that it becomes a standard feature in every communication platform, not a specialty tool.

Language is power. Accessibility is justice.

Built With

  • django
  • elevenlabs-tts
  • google-gemini-vision/text-apis
  • html/css
  • javascript
  • lemmatization
  • mediapipe-hands
  • nltk
  • pos-tagging
  • python
  • sqlite/postgresql
Share this project:

Updates