A desktop-based sign language interpreter built with Python, MediaPipe, TensorFlow, OpenCV, and Tkinter.
The app captures hand signs through a webcam, predicts the sign using a trained neural network, and builds a sentence in real time.
- Real-time webcam-based sign detection
- Desktop UI built with Tkinter
- Hand landmark extraction using MediaPipe
- Trained classifier for letters and common words
- Sentence builder with add space, delete, clear, and copy actions
- Improved prediction stability using confidence thresholds and short-term smoothing
The current model is trained on:
- Letters:
A-Z - Words:
hello,thanks,yes,no,please,sorry,help,iloveyou
- Python 3.11
- MediaPipe
- TensorFlow
- OpenCV
- NumPy
- scikit-learn
- Pillow
- Tkinter
sign-language-interpreter/
├── app/
│ ├── collect_data.py
│ ├── train_model.py
│ └── interpreter.py
├── data/
├── model/
│ ├── classes.npy
│ └── sign_model.keras
├── requirements.txt
└── README.md
git clone https://github.com/Shreyaaaaaak/Sign-Language-interpreter.git
cd Sign-Language-interpreterOn Windows:
python -m venv .venv
.venv\Scripts\activatepip install -r requirements.txtFrom the project root:
cd app
python interpreter.pyThen:
- Click
Start Camera - Show a supported hand sign to the webcam
- Hold the sign steady until it is detected
- Build a sentence using the recognized signs
If you want to collect your own training dataset:
cd app
python collect_data.pyHow it works:
- Opens the webcam
- Collects hand landmark samples for each sign
- Stores
.npyfiles inside thedata/folder
To train the classifier again using your own collected data:
cd app
python train_model.pyThis saves:
model/classes.npymodel/sign_model.keras
- The current project is designed for Windows and was tested with Python 3.11.
- Good lighting and a clear hand pose improve detection accuracy.
- If the webcam does not open, close other apps that may be using the camera.
- If you retrain the model, run the interpreter again after training completes.
- Add text-to-speech output
- Show top 3 predictions in the UI
- Improve landmark normalization for better accuracy
- Add more words and dynamic signs
- Support exporting recognized sentences
Shreya Kaushik