A cross-platform (Windows/Linux) application that enables voice-controlled grading using offline speech recognition and direct Excel file manipulation.
This project was developed as part of my Bachelor Thesis in the Digital Systems Department, University of Thessaly.
📄 Official Thesis PDF:
https://ir.lib.uth.gr/xmlui/bitstream/handle/11615/86513/32043.pdf?sequence=4
Speech2Sheet allows educators to record grades using only their voice—without internet access—while automatically updating Excel spreadsheets.
The system aims to reduce grading time, minimize human errors, and provide an accessible workflow for educators managing large student datasets.
The application supports:
- Offline speech recognition (Greek & English)
- Real-time Excel editing inside Unity
- Automatic saving & undo history
- Student matching using approximate string matching (Levenshtein)
- Unity-based dynamic grid UI
- Cross-platform builds (Windows & Linux)
- 🎤 Offline Speech-to-Text using Whisper.cpp
- 🇬🇷🇬🇧 Bilingual Input & Interface (Greek + English)
- 📊 Live Excel Grid generated dynamically
- 🔎 Approximate student search using Levenshtein distance
- 📝 Voice-controlled grade entry
- ↩️ Undo stack for safe editing
- 💾 Auto-Save + Manual Save options
- 📁 Built-in file browser (Excel + Whisper model selection)
- 🖥️ Works on Windows & Linux
| Component | Technology |
|---|---|
| Engine | Unity 6000.0.48f1 LTS |
| Speech Recognition | Whisper.cpp |
| Excel Reading | ExcelDataReader |
| Excel Writing | NPOI |
| UI Framework | UI Toolkit, UGUI, TextMeshPro |
| File Dialog | Simple File Browser |
| String Matching | Levenshtein Distance |
| Language Support | Unity Localization |
| Programming Language | C# |
Download the current executable build from the GitHub Releases page:
Unzip the downloaded .zip file.
Windows:
Run Speech2Sheet.exe
Linux:
chmod +x Speech2Sheet.x86_64
./Speech2Sheet.x86_64No installation required.
No internet connection required.
Load an .xls or .xlsx file containing:
- Student IDs
- Names
- Grades
The grid will appear automatically.
In Settings, choose:
- Which column is Student ID
- Which column is Name
- Which column is Grade
- Which columns you want displayed in the grid
Select a .bin Whisper model such as:
tiny.binbase.binmedium.bin
Heavier models provide better accuracy.
Press Start Recording to:
- Identify a student (e.g., “Παπαδόπουλος” or “3120052”)
- Dictate a grade (e.g., “επτά κόμμα πέντε” → 7.5)
The system will:
- Transcribe your speech
- Match the student using approximate string matching
- Insert the grade into the Excel grid
- Use Save to write the updated file back to disk
- Or enable Auto-Save to save automatically after every change
The application is built with a modular design.
-
ExcelLoader
Handles reading, displaying, updating, and saving Excel files. -
SpeechToTextManager
Handles microphone recording, Whisper CLI execution, regex parsing, token processing, and number extraction. -
ColumnSettingsUIManager
Manages dropdowns/toggles for choosing ID/Name/Grade columns. -
AutoSaveController
Triggers automatic saving after grid modifications. -
LanguageToggle
Switches between English and Greek through Unity Localization.
- Regex parsing
- Word-to-number mapping (Greek & English)
- Levenshtein distance for approximate name/ID matching
- Dynamic thresholding for fuzzy search
- Grid-building with prefabs
This repository is based on the bachelor thesis:
“Φωνητική Διεπαφή Καταχώρισης Βαθμολογιών – Voice-Based Grading Interface”
University of Thessaly, 2025
📄 PDF Link:
https://ir.lib.uth.gr/xmlui/bitstream/handle/11615/86513/32043.pdf?sequence=4
- Supervisor: Fotios Kokkoras, Assistant Professor
- University of Thessaly — Digital Systems Department
Released under the MIT License.
Developer: Ioannis Karkalas
For questions or suggestions, please open an Issue on GitHub.