Table of Contents
Silent Talk is a webcam prototype that classifies ASL fingerspelled letters and displays the accumulated text. It recognizes hand poses from individual frames; it does not translate continuous sign language or provide two-way interpretation.
This project was selected as a Top 30 Semifinalist (out of 300+ teams) in the Samsung Solve for Tomorrow 2024 competition.
- Reported training data: A custom dataset of ~50,000 images.
- Reported competition result: >90% accuracy on validation samples during competition trials. Training scripts, the validation split, and evaluation results are not included here, so this figure cannot be reproduced from the repository alone.
- Execution: Hand tracking and letter classification run locally without requiring a GPU. Text spacing uses an external OpenAI API call.
The prototype has a Flask backend and a React frontend.
Located in backend/, the recognition flow is:
- Hand Tracking: MediaPipe extracts skeletal landmarks (21 points per hand) in real-time.
- Letter classification: A saved classifier predicts one of 26 letter labels from hand landmarks. A prediction must remain stable for 1.5 seconds before it is appended.
- Text spacing: The backend sends accumulated text to
gpt-4o-miniwith instructions to insert spaces. There is no speech-synthesis implementation in this snapshot.
Located in /frontend, the client is built with React:
- Display: Shows the backend camera feed and polls recognized text once per second.
- Controls: Includes camera-display and text-reset controls, plus a light/dark theme.
The original setup targets Python 3.9+ and Node.js. The backend needs access to the host computer’s camera, the bundled backend/model.p, and an OPENAI_API_KEY environment variable. Starting it without an API key fails when the OpenAI client is created.
- Python 3.9+
- Node.js & npm
- Clone the repository
git clone https://github.com/alexandr-tk/silent-talk.git- Setup Backend (Python)
cd silent-talk/backend
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -r requirements.txt
export OPENAI_API_KEY="<your-api-key>" # backend environment only
python app.py- Setup Frontend (React), in a second terminal from the repository root
cd frontend
npm install
npm run devStatus: Competition proof of concept
This codebase represents the competition snapshot of Silent Talk submitted for the Samsung Solve for Tomorrow semifinals.
- Code Quality: Experimental / Prototype Grade.
- Maintenance: This competition snapshot is not currently maintained.
- Integration limits: The settings client calls
/set_stable_time, but the Flask backend does not implement that route. Some service helpers use relative URLs while Vite has no API proxy. The camera and main text display uselocalhost:5000directly.
Distributed under the MIT License. See LICENSE for more information.
Alex Tkachyov - Lead Developer - LinkedIn
Project Link: Silent Talk on GitHub