Computer Vision
•7 min read•211 words

UnVoiced: Translating Indian Sign Language in Real-Time with OpenCV & Python

How UnVoiced converts Indian Sign Language alphabet gestures into spoken audio and real-time text using OpenCV contour analysis and neural classification.

Om Prakash Behera
Om Prakash BeheraCSE Student at GCEK Kalahandi | Full-Stack & AI Engineer

Breaking Communication Barriers

Communication between the deaf/mute community and non-signers remains a major accessibility gap. In UnVoiced and Sign-Language-Recognition, I built an automated Indian Sign Language (ISL) gesture translator.

Computer Vision Pipeline

The system processes video feeds through a dedicated multi-stage pipeline:

  1. Skin Color Segmentation (HSV & YCrCb Color Spaces):

- Eliminates background clutter by isolating human skin tones in the Cr-Cb chrominance plane:

133 ≤ Cr ≤ 173 quad and quad 77 ≤ Cb ≤ 127

  1. Morphological Filtering: Gaussian blur followed by dilation and erosion to fill holes in hand contours.
  2. Convex Hull & Defect Extraction: Analyzing peak count between extended fingers to classify alphabetical characters (A-Z) and numeric digits (0-9).
pythonCode Snippet
import cv2
import numpy as np

def extract_hand_contour(frame):
    # Convert to HSV color space
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    lower_skin = np.array([0, 20, 70], dtype=np.uint8)
    upper_skin = np.array([20, 255, 255], dtype=np.uint8)
    
    mask = cv2.inRange(hsv, lower_skin, upper_skin)
    mask = cv2.GaussianBlur(mask, (5, 5), 100)
    
    contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    return max(contours, key=lambda c: cv2.contourArea(c)) if contours else None

Speech Synthesis (TTS)

Predicted letters and words are converted to real-time audio output using pyttsx3, enabling fluid two-way dialogue without human translators.

Related Topics:#UnVoiced#OpenCV#Sign Language#Accessibility#Python