AI Real-Time Sign Language Translator
AI Real-Time Sign Language Translator
In
DEPARTMENT OF COMPUTER ENGINEERING
(SOFTWARE ENGINEERING)
By
Mrs. K SUNANDHA
I
2025-26
II
SIDDHARTHA INSTITUTE OF TECHNOLOGYAND SCIENCES
(Approved by AICTE, Affiliated to JNTU Hyderabad, Accredited by
NAAC(A+))
CERTIFICATE
In partial fulfillment for the award of the degree of Bachelor of Technology in Computer
Science and Engineering, Jawaharlal Nehru Technological University Hyderabad, is a
record of Bonafide work carried out under my guidance and supervision. The results
embodied in this project report have not been submitted to any other University or Institute
for the award of any Degree or Diploma.
III
DECLARATION
IV
ACKNOWLEDGMENT
By
V
TABLE OF CONTENTS
VI
5.1 UML Diagrams
Chapter 6 : Methodology
6.1 Data Collection 17
6.2 Data Processing 17
6.3 Model Training 18
6.4 Real-Time Gesture Recognition 18
Chapter 7 : Implementation
7.1 Environmental Setup 21
7.2 Source Code 23
Chapter 8 : Tests and Results
8.1 Introduction 37
8.2 Result Table 37
8.3 Testing Result 38
8.4 Result Screenshots 38
Chapter 9 : Conclusion
9.1 Conclusion 42
9.2 Future Enhancements 42
References 44
VII
LIST OF FIGURES
Figur Name Of The Figure Page
e No. No.
VIII
8.7 Output of Crop Module 41
LIST OF SYMBOLS
NOTATION
[Link] NAME NOTATION DESCRIPTION
1 Class Represents a
collection of
Class similar entities
Name grouped together.
+ public
att
-private rib
ute
att
rib
ute
2 Association Association
represents static
relationships
between classes.
Role represents the
way the two classes
see each other.
Class Class
A N B
A
M
E
Class Class
A B
IX
3 Actor It aggregates
several classes into
a single class.
Class Clas
B sB
5 Relation Extends
(extends) relationship is used
when one use case
is similar to
another use case
but does a bit more.
6 Communication Communication
between various
use cases.
State of the
7 State State processes.
Initial state of
8 Initial State
the object
Final state of
9 Final state
the object
Represents
Control flow various control
10
flow
X
ABSTRACT
XII
CHAPTER1
INTRODUCTION
One of the most pressing challenges in communication today is bridging the gap between
individuals with hearing impairments and the general population. While sign language
serves as a powerful medium for deaf individuals, its widespread adoption and
understanding remain limited, often restricting seamless interaction in social, professional,
and public settings. The absence of accessible and intuitive real-time translation tools
exacerbates this challenge, making effective communication difficult.
With advancements in Artificial Intelligence (AI), computer vision, and natural language
processing (NLP), technology now has the potential to eliminate such barriers. The AI-
Based Real-Time Sign Language Translator is designed to address this issue by
providing a seamless, interactive translation system that fosters digital inclusivity and
ensures effective communication between hearing and hearing-impaired individuals. This
system operates in two primary modes:
Key features of this system include real-time gesture recognition, voice command
interpretation, dynamic mode switching, and conversation data logging in MongoDB,
ensuring future reference and scalability. Developed in Python, this system guarantees
modularity and adaptability, making it applicable in diverse fields such as education,
healthcare, customer service, and public spaces.
The Sign Language Translator not only promotes digital inclusivity but also acts as an
efficient, low-cost accessibility tool, reinforcing the importance of AI-driven solutions in
creating an interconnected, communicative world. By incorporating advanced AI
1
techniques, this system strengthens social engagement and transforms how deaf individuals
interact with their surroundings. In an era where inclusivity is paramount, such innovative
solutions pave the way for a more equitable and accessible society.
1.1 PROBLEM STATEMENT
1.2 OBJECTIVES
Some existing models use 3D avatars to represent sign language, but they often suffer from
slow processing speeds and limited accuracy in gesture interpretation. Others rely on
manual input, requiring users to select predefined signs, which hinders natural
communication. Furthermore, speech-to-sign translation in current systems is often
incomplete, lacking contextual understanding and dynamic response mechanisms. While
advancements in computer vision and NLP have improved sign language recognition, real-
time, AI-driven solutions remain scarce.
3
CHAPTER2
LITERATURE SURVEY
This study explores the integration of IoT technology with real-time sign language
translation systems. It highlights the importance of assistive technologies for the deaf and
hard-of-hearing community, analyzing advancements in gesture recognition, machine
learning, and computer vision to improve communication accessibility on rule-based
algorithms or static gesture mapping, which often lack real-time adaptability and context
awareness. Many solutions focus on word-by-word translations, failing to capture the
fluidity and nuances of sign language. Additionally, most systems depend on predefined
datasets, limiting their ability to recognize diverse gestures or adapt to individual variations
in signing styles.
Algorithms
4
3) Sign Language Translator using Machine Learning
This paper discusses the challenges faced by the deaf and mute community in expressing
themselves and interacting with non-sign language users. It proposes a sign language
recognition system using MediaPipe and machine learning to convert sign language
gestures into standard language words, enhancing inclusivity primarily rely on rule-based
algorithms or static gesture mapping, which often lack real-time adaptability and context
awareness. Many solutions focus on word-by-word translations, failing to capture the
fluidity and nuances of sign language.
This research investigates the integration of NLP and speech synthesis in sign language
translation systems. It highlights the importance of contextual understanding, ensuring
accurate speech-to-sign and sign-to-speech conversions. The study evaluates various
speech recognition models, comparing their efficiency in processing spoken language and
mapping it to predefined gestures. They collectively emphasize the importance of AI, deep
learning, and NLP in bridging the communication gap between deaf and hearing
individuals, paving the way for inclusive and intelligent translation systems.
5
CHAPTER3
PROBLEMSTATEMENT
data covering various gestures, lighting conditions, and signing styles, it may struggle with
6
Limited Scalability: Existing models may struggle to scale when processing real-time
gesture translations for multiple sign languages. This limitation restricts their usability in
Algorithmic Bias: If training data does not include varied sign language gestures, AI
models may favor specific regional signs, leading to biased translations. This affects
Complexity in Interpretation: Many machine learning models are complex and opaque,
Lack of transparency can erode trust among users who may question the system's reliability
or decision-making process.
Resource Intensiveness: Training and deploying machine learning models often require
lacks transparency, making it difficult for users to understand how predictions are made. A
on internet connectivity, restricting usability for users in remote areas or regions with
Privacy and Security Concerns: AI-powered sign language translators may collect user
gesture data, raising concerns about data privacy and security risks. Ensuring secure data
7
classifier to recognize the specific gesture. Once recognized, the system generates
multimodal output including the corresponding gesture image, textual representation, and
audio feedback using a text-to-speech engine.
To enhance accuracy and user experience, the system integrates features like gesture buffer
smoothing, landmark vector normalization, and safe multi-threaded GUI operations built
using Tkinter and PIL. The entire interface is intuitive, providing buttons to switch modes,
stop processes, and exit the application gracefully. This makes the system suitable for use
in public service desks, hospitals, educational institutions, and anywhere inclusive,
accessible communication is essential.
3.4 ADVANTAGES OF PROPOSED SYSTEM
modes, enabling inclusive and interactive communication for hearing and speech-impaired
individuals.
Offline Functionality: Both gesture recognition and speech recognition (via Vosk) work
without an internet connection, making the system suitable for remote or low-connectivity
areas.
Real-Time Response: The application provides immediate visual, textual, and audio
feedback for detected gestures or spoken inputs, ensuring a responsive user experience.
Accurate Gesture Detection: Uses Mediapipe and a machine learning classifier trained on
Flexible Voice Recognition: Incorporates fuzzy matching to handle speech variations and
Multimodal Output: Each recognized input generates three forms of output — image,
User-Friendly GUI: The Tkinter-based interface is intuitive and includes essential controls
like mode switching, stop, and quit buttons for easy navigation.
Buffered Gesture Smoothing: Uses a gesture buffer to stabilize predictions and reduce
4.2.1 PYTHON
4.2.2 TKINTER
Tkinter is Python’s standard GUI (Graphical User Interface) toolkit, providing a fast and
easy way to create desktop-based applications. It is a thin object-oriented layer built on top
of the Tcl/Tk GUI toolkit. In this project, Tkinter is used to develop the main application
interface that allows users to interact with the system. It facilitates the creation of
interactive buttons for switching between gesture-to-voice and voice-to-sign modes, real-
time display of gesture images, and updates of recognition status. The GUI includes
9
additional control options such as "Stop" and "Quit" buttons for safe and graceful
termination of processes.
4.2.3 OPENCV
OpenCV (Open Source Computer Vision Library) is an open-source library that provides a
comprehensive suite of tools for image processing, video analysis, and computer vision
applications. It supports both real-time and offline processing. In the Sign Language
Translator system, OpenCV is used to capture the live video feed from the webcam and
process each frame. It handles operations such as frame flipping, color conversion, and
displaying annotated frames with gesture overlays. It also acts as the pipeline through
which Mediapipe receives input for hand tracking.
4.2.4 MEDIAPIPE
4.2.5 NUMPY
NumPy (Numerical Python) is a foundational library in the scientific Python ecosystem. It
offers support for high-performance multidimensional arrays and a large collection of
mathematical functions. In the proposed system, NumPy is primarily used for processing
the landmark data received from Mediapipe. It helps convert hand coordinates into feature
vectors, normalize them for consistency, and save gesture samples into .npy files during the
training phase.
4.2.6 SCIKIT-LEARN
Scikit-learn is a powerful and user-friendly machine learning library built on top of NumPy
and SciPy. It provides efficient implementations of popular algorithms for classification,
regression, clustering, and dimensionality reduction. In this project, Scikit-learn is used to
train a Random Forest Classifier on the collected and normalized hand landmark vectors.
10
The classifier is then exported as a .pkl file using joblib and loaded during application
runtime for gesture prediction. Scikit-learn allows easy experimentation with different
models and parameters, making it suitable for iterative development and optimization of
the recognition system.
4.2. 7 PYTTSX3
pyttsx3 is a cross-platform, offline text-to-speech (TTS) conversion library in Python. It
allows developers to synthesize spoken audio from text using the system’s built-in speech
engines. In this project, pyttsx3 is used to vocalize recognized gestures or matched voice
commands, providing a natural auditory output. This feature makes the system inclusive
for visually impaired users as well. Being an offline library, pyttsx3 ensures consistent
performance even in environments without internet connectivity.
4.2. 8 VOSK
Vosk is an offline speech recognition toolkit built on the Kaldi speech recognition
framework. In this project, Vosk is used in the voice-to-sign mode to transcribe spoken
input from the user. The recognized text is then matched to predefined commands to
retrieve and display the corresponding sign image and speech. Vosk’s ability to operate
offline, with high speed and decent accuracy, makes it a suitable and scalable choice for the
proposed system.
4.2. 10 DIFFLIB
Difflib is a standard Python library used for comparing sequences, especially useful for
approximate string matching. In the voice recognition module, Difflib’s
get_close_matches() function is employed to match recognized voice phrases to a
predefined set of gesture commands. This fuzzy matching technique improves the system’s
robustness by tolerating minor misrecognitions or variations in user speech. It ensures that
11
even imperfect or partially recognized voice inputs can be mapped to valid outputs,
enhancing user experience and accuracy.
CHAPTER5
DESIGN PHASE
12
5.2 UML DIAGRAMS
The goal is for UML to become a common language for creating models of object-oriented
computer software. In its current form UML is comprised of two major components: A
Meta-model and a notation. In the future, some form of method or process may also be
added to; or associated with, UML.
The UML represents a collection of best engineering practices that have proven successful
in the modelling of large and complex systems.
The UML is a very important part of developing objects-oriented software and the software
development process. The UML uses mostly graphical notations to express the design of
software projects.
13
5.2.1 USE CASE DIAGRAM
Use case diagrams are a set of use cases, actors, and their relationships. They represent the
use case view of a system. A use case represents a particular functionality of a system. The
Heritage system has three actors, User, System and Admin. Common Actor System has
common module
14
Figure 5.3: Class Diagram
15
5.2.4 ACTIVITY DIAGRAM
Activity diagram describes the flow of control in a system. It consists of activities and
links. The flow can be sequential, concurrent, or branched. Activities are nothing but the
functions of a system.
Numbers of activity diagrams are prepared to capture the entire flow in a system.
16
CHAPTER6
METHODOLOGY
The proposed system adopts a modular and iterative methodology that integrates computer
vision, machine learning, and natural language processing techniques to achieve robust
real-time sign language detection and translation. The entire pipeline is divided into five
primary stages, each essential for system functionality and performance.
To train the gesture recognition model, a custom dataset of hand gestures is created using
webcam capture and Mediapipe’s 21-point hand landmark detection. Each gesture is
labelled using natural language phrases (e.g., “hello”, “thank you”, “where are you from”)
and saved as .npy files, where each file contains normalized (x, y) landmark positions.
After data collection, the raw gesture vectors undergo multiple preprocessing steps to
ensure consistency, reduce noise, and improve model learning. First, landmark coordinates
are normalized relative to the wrist (base point) to reduce the effect of hand position and
scale in the frame. This step helps the model focus on the shape of the gesture rather than
the absolute position. Next, outlier samples or incomplete detections are identified and
removed. Optional augmentation techniques such as mirroring the hand or introducing
17
minor angle shifts can be used to make the dataset more generalizable. These preprocessing
steps ensure the dataset remains robust across different lighting conditions, user hand sizes,
and capture angles.
With clean and normalized data ready, the system proceeds to the model training phase.
Each gesture sample is represented as a 42-dimensional feature vector (21 landmarks × 2
coordinates). A Random Forest Classifier is chosen due to its ability to handle small to
medium-sized datasets, interpretability, and resistance to overfitting. The model is trained
using scikit-learn's Random Forest Classifier x(n_estimators=100) configuration. Once the
model achieves desirable accuracy and performance during testing, it is exported and
stored as a .pkl file (named gesture_clf.pkl) using the joblib module for easy integration
into the live recognition pipeline. This trained model becomes the core engine behind
gesture interpretation in the application.
Model: RandomForestClassifier(n_estimators=100)
Library: scikit-learn
Output: gesture_clf.pkl (trained model)
Following training, the classifier is integrated into the system to perform real-time gesture
recognition using the live webcam feed. OpenCV continuously captures video frames,
which are then passed through Mediapipe to detect hand landmarks. The resulting vector is
normalized and sent to the classifier for prediction. To avoid false positives caused by noise
or unstable detection, the system maintains a short-term buffer using Python's deque data
structure. A gesture is only accepted if it consistently appears in more than 80% of the last
15 frames. Once validated, the recognized gesture is displayed as text on the GUI,
accompanied by the corresponding sign image, and also converted into audible speech
18
using the pyttsx3 text-to-speech library. This multimodal output enhances accessibility and
user comprehension.
Once trained, the model is integrated into a real-time pipeline using a webcam feed:
Mediapipe extracts live hand landmarks.
The model predicts the gesture.
Detected gesture is translated into:
o Text on screen
o Corresponding gesture image
o Spoken output using pyttsx3
To avoid false positives:
A buffer (deque) is used to stabilize predictions.
Only gestures that occur with >80% consistency over 15 frames are considered valid.
The system also supports reverse translation from voice to sign. In this mode, it captures
user voice input using a microphone and transcribes it to text using the Vosk offline speech
recognition engine. The transcribed text is then compared with predefined gesture phrases
using fuzzy matching to tolerate slight variations in pronunciation. If a valid match is
found, the system displays the associated sign language image, prints the matched phrase,
and optionally speaks it out loud. This feature is particularly useful for individuals who are
unfamiliar with sign language but wish to communicate effectively with someone who uses
it. In future versions, this module can be enhanced using large language models to generate
more natural sentence-based gesture sequences.
Gesture-to-Voice: Displays recognized gesture, plays audio, and shows the image.
Voice-to-Gesture: Displays gesture image based on spoken phrase.
Each mode is activated with a single click, and a Stop & Quit button safely terminates the
current mode.
The Throughout the system, robust error handling mechanisms are in place to ensure
smooth performance under various conditions. Each major module is wrapped in try-except
blocks to catch issues such as unavailable webcam, microphone errors, or missing
model/image files. The use of .npy files instead of raw images significantly reduces
memory usage and speeds up data loading and training. Additionally, since the gesture
recognition model is modular and retrainable, the system can be iteratively improved by
collecting new samples and retraining the model with minimal effort. The combination of
offline capability, buffer smoothing, and robust matching makes the system highly reliable
for real-world use.
All major modules include try-except blocks to handle runtime errors (camera failure,
audio issues).
Optimizations such as using .npy over image-based datasets ensure faster processing.
The system is trained iteratively by collecting new gesture samples if needed.
20
CHAPTER7
IMPLEMENTATION
[Link] downloadand install Visual Studio Code visit the officialpage of Visual
Studio
Code[Link]
21
Figure 7.1: Visual Studio Code
2. Once the download is complete, run the exe for installing Visual Studio Code. Now
click on install now.
3. You can see Visual Studio Code installing at this point.
4. When it finishes, you can see a screen that says the setup was successful.
3. Search for the extension you want using the search bar at the top.
22
5. Click on the Install button to install the extension.
3. Open Command Prompt (cmd) or the VS Code terminal and install the required libraries
using:
pip install opencv-python mediapipe pyttsx3 sounddevice vosk pillow scikit-learn joblib
numpy
7.2 IMPLEMENTATION
SignLanguageTranslator/
│
├── main_gui.py
├── run_gesture_to_voice.py
├── voice_recognition.py
├── gesture_clf.pkl ← Trained gesture recognition model
├── [Link]
├── images/ ← Contains images for each gesture (e.g., [Link], [Link])
│ ├── [Link]
│ ├── [Link]
│ └── ...
├── gesture_data/ ← Contains .npy files for gesture training samples
│ └── hi/[Link], [Link] ...
├── model/ ← Contains Vosk offline voice model
│ └── vosk-model-small-en-us-0.15/
#======================[Link]========================
opencv-python
mediapipe
numpy
pillow
tkinter
23
pyttsx3
sounddevice
vosk
scikit-learn
joblib
difflib
pymongo
#====================== COLLECT_DATA.PY=====================
import cv2
import mediapipe as mp
import os
import numpy as np
mp_hands = [Link]
hands = mp_hands.Hands(static_image_mode=False, max_num_hands=1)
mp_draw = [Link].drawing_utils
cap = [Link](0)
count = 0
def normalize_landmarks(landmarks):
base_x = landmarks[0].x
base_y = landmarks[0].y
base_z = landmarks[0].z
norm_landmarks = []
for lm in landmarks:
norm_landmarks.extend([lm.x - base_x, lm.y - base_y, lm.z - base_z])
while True:
ret, frame = [Link]()
if not ret:
24
break
frame = [Link](frame, 1)
img_rgb = [Link](frame, cv2.COLOR_BGR2RGB)
results = [Link](img_rgb)
if results.multi_hand_landmarks:
for hand_landmarks in results.multi_hand_landmarks:
mp_draw.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)
norm = normalize_landmarks(hand_landmarks.landmark)
[Link](f"{SAVE_DIR}/{count}", [Link](norm))
count += 1
[Link]()
[Link]()
#=====================RUN_GESTURE_TO_VOICE.PY================
==
import cv2
import mediapipe as mp
import pyttsx3
import os
import time
import sys
import joblib
from collections import deque, Counter
import numpy as np
cap = [Link](0)
if not [Link]():
update_status("Error: Could not access webcam.")
return
gesture_buffer = deque(maxlen=15)
prev_gesture = None
last_speak_time = [Link]()
try:
while not stop_flag.is_set():
ret, frame = [Link]()
if not ret:
continue
frame = [Link](frame, 1)
frame_rgb = [Link](frame, cv2.COLOR_BGR2RGB)
results = [Link](frame_rgb)
if results.multi_hand_landmarks:
hand_landmarks = results.multi_hand_landmarks[0]
mp_drawing.draw_landmarks(frame, hand_landmarks,
mp_hands.HAND_CONNECTIONS)
vector = extract_landmark_vector(hand_landmarks.landmark)
try:
prediction = [Link]([vector])[0]
except Exception as e:
update_status(f"Classifier Prediction Error: {e}")
continue
gesture_buffer.append(prediction)
else:
gesture_buffer.append(None)
img_path = gesture_map.get(most_common)
if img_path and [Link](img_path):
update_image(img_path)
else:
update_status(f"Image not found: {img_path}")
[Link](0.01)
except RuntimeError as e:
if "interpreter shutdown" in str(e).lower() or not hasattr(sys, 'stdout'):
return
update_status(f"Runtime Error: {e}")
except Exception as e:
update_status(f"Error: {e}")
finally:
[Link]()
[Link]()
#=====================TRAIN_MODEL.PY==================
import os
import numpy as np
from [Link] import RandomForestClassifier
import joblib
data = [ ]
labels = [ ]
28
DATA_DIR = "gesture_data"
for gesture_label in [Link](DATA_DIR):
gesture_folder = [Link](DATA_DIR, gesture_label)
for file in [Link](gesture_folder):
if [Link](".npy"):
sample = [Link]([Link](gesture_folder, file))
[Link](sample)
[Link](gesture_label.replace("_", " "))
X = [Link](data)
y = [Link](labels)
[Link](clf, "gesture_clf.pkl")
print("✅ Model saved as gesture_clf.pkl")
#======================= MAIN_GUI.PY
============================
import tkinter as tk
import threading
import run_gesture_to_voice
import voice_recognition
import os
class SignLanguageApp:
[Link] = root
[Link]("700x550")
29
self.stop_flag = [Link]()
[Link] = None
[Link](pady=10)
self.status_label.pack(pady=5)
self.image_label = [Link](root)
self.image_label.pack(pady=20)
self.mode_frame = [Link](root)
self.mode_frame.pack(pady=10)
self.stop_btn.pack(pady=10)
30
self.quit_btn = [Link](root, text="Quit", command=self.quit_app)
self.quit_btn.pack(pady=5)
self.status_label.config(text=f"Status: {msg}")
try:
photo = [Link](img)
self.image_label.configure(image=photo)
self.image_label.image = photo
except Exception as e:
def stop_mode(self):
self.stop_flag.set()
[Link](timeout=2)
self.stop_flag.clear()
self.update_status("Stopped")
def start_gesture_mode(self):
self.stop_mode()
[Link]()
def start_voice_mode(self):
self.stop_mode()
[Link] = [Link](target=voice_recognition.run_voice_to_sign,
[Link]()
def quit_app(self):
self.stop_mode()
if __name__ == "__main__":
root = [Link]()
app = SignLanguageApp(root)
[Link]()
#=====================VOICE_RECOGNITION.PY==================
import os
import queue
import time
import sounddevice as sd
32
import json
import pyttsx3
voice_map = {
"hi": "images/[Link]",
"hello": "images/[Link]",
"please": "images/[Link]",
"eat": "images/[Link]",
"good": "images/[Link]",
"bad": "images/[Link]",
def find_closest_match(text):
phrases = list(voice_map.keys())
model = Model("model")
q = [Link]()
engine = [Link]()
33
def callback(indata, frames, time_info, status):
if status:
print(status, flush=True)
[Link](bytes(indata))
channels=1, callback=callback):
data = [Link]()
if [Link](data):
result = [Link]()
text = [Link](result)["text"]
if text:
matched = find_closest_match(text)
if matched:
update_status(f"Matched: {matched}")
img_path = voice_map[matched]
if [Link](img_path):
update_image(img_path)
[Link](matched)
[Link]()
else:
34
update_status("No match found.")
[Link](1)
To enable accurate real-time gesture prediction, we train a custom machine learning model
using collected gesture data. The process involves recording gesture samples, saving them
as .npy landmark vectors, and then using a Random Forest Classifier to train the model.
Step 1: Collecting Gesture Samples
1. Run the collect_data.py script for each gesture:
python collect_data.py
2. When prompted, input the gesture label (e.g., hello, hi, thank you).
3. The webcam will open, and Mediapipe will detect hand landmarks.
4. Hold the gesture for a few seconds until 100 samples are collected.
5. Press q to stop. Samples are saved in gesture_data/<gesture_name>/.
Step 2: Training the Model
1. Run the training script:
python train_model.py
2. The script loads all .npy files from gesture_data/, trains a Random Forest Classifier,
and saves the model as gesture_clf.pkl.
With the model trained, we now integrate it into the live webcam feed:
1. In run_gesture_to_voice.py:
o The trained model is loaded using joblib.
o Mediapipe processes the webcam feed in real time.
o Landmark vectors are extracted and normalized.
o The model predicts the most probable gesture.
35
o Text, image, and audio output is generated.
2. A buffer (deque) is used to smooth predictions and reduce flickering or noise.
The main_gui.py file brings everything together into a single user interface:
GUI Framework: Tkinter
Features:
o Title and status display
o Buttons to switch between gesture and voice modes
o Stop and Quit buttons for graceful termination
Threading: Each mode runs in a separate thread to prevent GUI freezing
36
7.2.9 Running the Application
CHAPTER8
RESULTS
8.1 INTRODUCTION
The developed AI-Based Sign Language Translator was successfully implemented and
tested in real-time conditions across both of its core modules: gesture-to-voice and voice-
to-sign. The system was evaluated based on responsiveness, accuracy, and usability.
During testing, the gesture recognition module demonstrated reliable and consistent
performance. Users performed pre-trained hand gestures in front of the webcam, and the
system accurately identified and translated them into text, images, and speech.
The use of a gesture buffer (deque) significantly reduced flickering outputs, and the model
performed with an average gesture recognition accuracy of over 90% under normal
lighting conditions. The system was tested on a range of gestures including “hi”, “thank
you”, “shall we meet”, and “where are you from”, with correct outputs displayed in all
cases when the hand gesture was properly held.
The graphical user interface (GUI) enabled smooth mode switching, real-time updates,
and safe termination. The addition of a “Stop” and “Quit” button improved usability. The
37
system was tested on multiple devices and performed efficiently without lag or crash, even
on basic Figure 8.1: Result Table
The voice recognition module, powered by the Vosk offline speech engine, successfully
captured spoken input and matched it to predefined phrases. It worked well in quiet
environments and responded quickly, converting voice input into matched gesture images
and corresponding text output. Fuzzy matching logic using Difflib improved the flexibility
of voice inputs, allowing variations like “thank you so much” to match “thank you”. The
average response time was within 2–3 seconds, and all outputs were rendered without
requiring internet access.
Real-time gesture-to-voice translation with visual and audible output
Offline voice-to-sign translation using Vosk
Functional GUI with easy navigation and safety controls
Seamless integration of machine learning, computer vision, and speech processing
38
Figure 8.2: Home page
The Sign Language Detection System Architecture is structured to provide real-time, two-
way communication, enabling users to sign to voice and speak to sign using advanced AI
models and machine learning techniques.
Hand Gesture Input: Captures real-time hand movements via webcam using MediaPipe.
Figure 8.4: Gesture Recognized – "Hi"
39
Figure 8.5: Gesture Recognized – "Eat"
The above screen is for comparison of different algorithms based on its Accuracy, Precision,
Recall , F1-measure.
40
Figure 8.7: Voice Recognized – "Hello" & Converted into Gesture
In above screen we have spoken “hi” and the system recognised the word and generated
output.
41
CHAPTER9
CONCLUSION
9.1 CONCLUSION
The AI-Based Sign Language Translator developed in this project successfully bridges the
communication gap between the hearing and speech-impaired community and the rest of
society. By leveraging computer vision, machine learning, and natural language processing
techniques, the system is capable of real-time gesture-to-voice and voice-to-sign
translation. It provides outputs in the form of images, text, and audio — enhancing clarity,
accessibility, and inclusiveness.
When The system's modular architecture allows smooth switching between gesture and
voice modes, and its offline capabilities (using Vosk and trained gesture classifiers) make it
usable in areas without internet access. The inclusion of a GUI ensures that both technical
and non-technical users can interact with the system intuitively. Furthermore, the trained
model achieved high accuracy in real-time gesture recognition and voice command
interpretation, proving the effectiveness of the proposed solution.
42
technologies. The platform also provides a foundation for future enhancements, such as
multilingual support, dynamic sentence recognition, and 3D gesture interpretation.
While the current implementation of the Sign Language Translator provides reliable
gesture-to-voice and voice-to-sign communication, there are several opportunities to
extend and enhance its capabilities in future versions. These improvements aim to increase
scalability, adaptability, and accessibility across a wider range of users and real-world
environments.
43
Integrating MongoDB or Firebase for storing gesture logs and usage statistics can help
caretakers or institutions monitor user activity over time.
7. Augmented Reality (AR) Output
Using AR libraries like OpenCV-AR or Unity AR Foundation, recognized gestures can be
projected into 3D space (e.g., floating signs), especially helpful in educational or training
setups.
8. Personalized Gesture Learning Module
A user training mode could allow individuals to add custom gestures or retrain the system
based on their own signing style — making the system adaptive and more inclusive.
REFERENCES
44
[9] OpenCV Developers, “Open Source Computer Vision Library,” [Link],
Available: [Link]
[10] scikit-learn Developers, “Machine Learning in Python,” scikit-learn Documentation,
Available: [Link]
[11] pyttsx3 Contributors, “Offline Text-to-Speech Conversion Library,” pyttsx3 Docs,
Available: [Link]
[12] Pillow Contributors, “Python Imaging Library (Pillow),” Pillow Docs,
Available: [Link]
[13] Python Software Foundation, “difflib – Helpers for computing deltas,” Python
Standard Library, Available: [Link]
[14] R. Bowden and A. Zisserman, “Sign Language Recognition Using Temporal
Classification,” British Machine Vision Conference (BMVC), 2000.
45