Project Overview
Word Watch is an application developed to streamline data collection for Subvocal Recognition (SVR), or thought-decoding, by monitoring subvocalizations that occur during reading. By utilizing eye-tracking technology, the application predicts which words a user reads and estimates when those words are subvocalized. This novel approach addresses the limitations of traditional SVR data collection methods, which are often time-consuming and difficult to scale.
Technologies Used
-
Hardware: Pupil Labs Pupil Core eye tracker
-
Programming Language: Python
-
Libraries and Frameworks:
- GUI Development: Tkinter
- Data Processing:
- NumPy
- SciPy
- scikit-learn
- Eye-Tracking Integration:
- Pupil Labs’ Pupil Capture software
- Pupil Labs Surface Tracking plugin
- Network API for real-time data streaming
- Miscellaneous:
- ZeroMQ for network communication
- MessagePack for data serialization
-
Version Control: Git, GitHub
Key Features
Innovative Data Collection Method
Developed a unique approach to SVR data collection by targeting the natural subvocalizations that occur during reading, significantly reducing the time and effort required compared to traditional methods.
Eye-Tracking Integration
Integrated the Pupil Labs Pupil Core eye tracker to monitor users’ eye movements, enabling real-time prediction of read words and estimation of subvocalization timings.
Custom Calibration and Algorithms
Implemented in-app calibration procedures and custom algorithms to enhance the accuracy of word prediction. These calibrations adjust text settings based on individual user accuracy and reading patterns.
User-Friendly Interface
Designed an intuitive graphical user interface using Tkinter and CustomTkinter, allowing users to easily calibrate the system, read texts within the application, and collect data seamlessly.
Data Output for Machine Learning
Generated time-series data comprising read words and estimated subvocalization times, suitable for training machine learning models in SVR tasks to improve speech recognition technologies.
Challenges and Solutions
Ensuring Eye-Tracking Accuracy
Challenge: Consumer-grade eye trackers can have limitations in accuracy and precision, which can affect data quality.
Solution: Integrated Pupil Labs’ Surface Tracking plugin and developed custom in-app calibrations to adjust for individual discrepancies, improving the reliability of gaze and fixation data.
Mapping Eye Movements to Specific Words
Challenge: Accurately determining which words a user reads based on eye movements is complex due to natural reading behaviors like saccades and fixations.
Solution: Developed algorithms that analyze fixation points and saccade patterns to predict read words. Implemented thresholds and validation steps to differentiate between read and skipped words.
Estimating Subvocalization Timings
Challenge: Estimating when a word is subvocalized during reading is challenging without direct measurement.
Solution: Employed heuristics based on research into the relationship between eye movements and subvocalization, using fixation durations and inter-fixation intervals to estimate subvocalization timings.
Handling User Variability
Challenge: Differences in individual reading styles and eye movement patterns can lead to inconsistencies in data.
Solution: Implemented custom calibration routines that adapt to each user’s reading behavior, enhancing the generalizability and accuracy of the application across different users.
Project Outcome
The development and evaluation of Word Watch demonstrated the feasibility of using eye-tracking technology for efficient SVR data collection. The application successfully identified read words at reasonable reading speeds, addressing a significant bottleneck in SVR research. While further studies are needed to validate the accuracy of subvocalization timing estimates, Word Watch lays the groundwork for scalable and user-friendly SVR data collection methods, potentially benefiting researchers and individuals with speech impairments.