Inspiration

The idea was inspired by the assistive communication systems used by Stephen Hawking, where a controllable movement was used to select options from a menu. I wanted to explore a similar idea using blinking and computer vision.

What it does

TalkinEyes uses Eye Aspect Ratio (EAR) to detect whether the eyes are open or closed. It also considers blink duration to distinguish intentional selections from normal blinking. Look → Wait → Blink → Communicate Selected phrases are spoken using text-to-speech.

How I built it

I built TalkinEyes in Python, using OpenCV, MediaPipe, NumPy, Tkinter, and pyttsx3. I developed it step by step, starting with eye detection and EAR calculations, then adding blink detection, menu navigation, submenus, and text-to-speech. I also used AI as a learning and development tool to understand concepts, debug errors, and explore solutions.

Challenges I ran into

The biggest challenge was making blink detection reliable. Normal blinks could accidentally trigger selections, so I experimented with EAR thresholds, blink duration, calibration, and timing.

I also had to solve compatibility issues between libraries and connect real-time computer vision with the graphical interface.

Accomplishments I'm proud of

  • Built a functional eye-based communication prototype.
  • Implemented intentional blink detection.
  • Created menus and submenus for different needs.
  • Added text-to-speech.
  • Built the project independently while learning many of the technologies along the way.

What I learned

I learned about computer vision, facial landmarks, EAR, real-time processing, GUI design, text-to-speech, debugging, and Git/GitHub.

I also learned that accessibility requires focusing on reliability and user experience, not just making the code work.

What's next for TalkinEyes

I want to improve calibration, reliability, false-positive prevention, customizable phrases, and performance in different environments.

I would also like to test the project with users and accessibility professionals to understand how it could be improved.

Built With

Share this project:

Updates

Submission history