# muzammil-ansari-17/signlanguagetranslator architecture

> Architecture diagram of the GitHub repository muzammil-ansari-17/signlanguagetranslator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/muzammil-ansari-17/signlanguagetranslator
- Repository: https://github.com/muzammil-ansari-17/signlanguagetranslator

## Overview

This is a webcam-based ASL gesture translator. The main workflow captures frames, detects and classifies hand landmarks, builds words and sentences, offers word suggestions, and can translate text or speak it. A separate model-preparation workflow extracts landmarks from image classes and trains the classifier used at runtime. The README describes real-time detection and speech; sampled code confirms these paths, though the UI currently enables only English. Training and translation-service wiring are based on the sampled scripts and modules.

Main entry points: [`main.py`](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/main.py) (App loop and UI), [`gesture_detector.py`](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/gesture_detector.py) (Gesture detector), [`train_model.py`](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/train_model.py) (Model training), [`tts_engine.py`](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/tts_engine.py) (Speech synthesis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Translation app"]
  node_main["App loop and UI<br/>[main.py]"]
  node_word_logic["Word suggestions<br/>[word_logic.py]"]
end

subgraph group_vision["Gesture recognition"]
  node_detector["Gesture detector"]
  node_mediapipe["Hand landmarks"]
  node_classifier["Gesture classifier<br/>[asl_model.h5]"]
  node_label_encoder["Label mapping<br/>[label_encoder.pkl]"]
end

subgraph group_training["Model preparation"]
  node_training_images["Training images"]
  node_extract["Landmark extraction"]
  node_landmarks["Landmark dataset<br/>[landmarks.csv]"]
  node_train["Model training<br/>[train_model.py]"]
end

subgraph group_language["Language output"]
  node_translator["Text translation<br/>[translator.py]"]
  node_tts["Speech synthesis<br/>[tts_engine.py]"]
end

node_user(("User"))
node_webcam(("Webcam"))
node_display(("Display"))
node_speaker(("Audio output"))
node_translation_service(("Translation provider"))
node_speech_service(("gTTS service"))

node_user -->|"operates"| node_main
node_webcam -->|"sends frames"| node_main
node_main -->|"classifies frames"| node_detector
node_detector -->|"extracts landmarks"| node_mediapipe
node_detector -->|"predicts gestures"| node_classifier
node_detector -->|"decodes labels"| node_label_encoder
node_main -->|"requests suggestions"| node_word_logic
node_main -.->|"translates text"| node_translator
node_translator -.->|"requests translation"| node_translation_service
node_main -.->|"requests speech"| node_tts
node_tts -.->|"generates audio"| node_speech_service
node_tts -->|"plays audio"| node_speaker
node_main -->|"renders interface"| node_display
node_training_images -->|"provides images"| node_extract
node_extract -->|"writes landmarks"| node_landmarks
node_train -->|"reads landmarks"| node_landmarks
node_train -->|"saves model"| node_classifier
node_train -->|"saves labels"| node_label_encoder

click node_main "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/main.py"
click node_word_logic "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/word_logic.py"
click node_detector "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/gesture_detector.py"
click node_mediapipe "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/gesture_detector.py"
click node_classifier "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/data/asl_model.h5"
click node_label_encoder "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/data/label_encoder.pkl"
click node_training_images "https://github.com/muzammil-ansari-17/signlanguagetranslator/tree/master/data/asl_alphabet_train"
click node_extract "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/extract_landmarks.py"
click node_landmarks "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/data/landmarks.csv"
click node_train "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/train_model.py"
click node_translator "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/translator.py"
click node_tts "https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/tts_engine.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_word_logic,node_user toneBlue
class node_detector,node_mediapipe,node_classifier,node_label_encoder toneAmber
class node_training_images,node_extract,node_landmarks,node_train toneMint
class node_translator,node_tts toneRose
class node_webcam,node_display,node_speaker,node_translation_service,node_speech_service toneIndigo
```

## Components

### Translation app

- [App loop and UI](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/main.py): `main.py`
- [Word suggestions](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/word_logic.py): `word_logic.py`

### Gesture recognition

- [Gesture detector](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/gesture_detector.py): `gesture_detector.py`
- [Hand landmarks](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/gesture_detector.py): `gesture_detector.py`
- [Gesture classifier](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/data/asl_model.h5): `data/asl_model.h5`
- [Label mapping](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/data/label_encoder.pkl): `data/label_encoder.pkl`

### Model preparation

- [Training images](https://github.com/muzammil-ansari-17/signlanguagetranslator/tree/master/data/asl_alphabet_train): `data/asl_alphabet_train`
- [Landmark extraction](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/extract_landmarks.py): `extract_landmarks.py`
- [Landmark dataset](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/data/landmarks.csv): `data/landmarks.csv`
- [Model training](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/train_model.py): `train_model.py`

### Language output

- [Text translation](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/translator.py): `translator.py`
- [Speech synthesis](https://github.com/muzammil-ansari-17/signlanguagetranslator/blob/master/tts_engine.py): `tts_engine.py`

### Other components

- **User**
- **Webcam**
- **Display**
- **Audio output**
- **Translation provider**
- **gTTS service**

## Connections

- User → App loop and UI: operates
- Webcam → App loop and UI: sends frames
- App loop and UI → Gesture detector: classifies frames
- Gesture detector → Hand landmarks: extracts landmarks
- Gesture detector → Gesture classifier: predicts gestures
- Gesture detector → Label mapping: decodes labels
- App loop and UI → Word suggestions: requests suggestions
- App loop and UI → Text translation: translates text
- Text translation → Translation provider: requests translation
- App loop and UI → Speech synthesis: requests speech
- Speech synthesis → gTTS service: generates audio
- Speech synthesis → Audio output: plays audio
- App loop and UI → Display: renders interface
- Training images → Landmark extraction: provides images
- Landmark extraction → Landmark dataset: writes landmarks
- Model training → Landmark dataset: reads landmarks
- Model training → Gesture classifier: saves model
- Model training → Label mapping: saves labels
