Work / Lab
Offline speech-to-notes (Java)
Offline speech-to-notes in Java: on-device Vosk transcription, Gemini-formatted notes and screenshot Q&A.
- Java 17
- Swing
- Maven
- Vosk
- Gemini REST API
TL;DR
- The meeting-notes idea from MeetWise, rebuilt offline-first in Java 17.
- Speech recognition runs on the device with Vosk; Gemini only formats the notes and answers questions about a screenshot.
- Dependency-light by design, and never compiled or run.
What it does
A Swing app that streams 16 kHz mono microphone audio in 100 ms buffers into an on-device Vosk recognizer. The transcript goes to Gemini for structured notes: headings, bullets and a summary on top. A second path answers questions about a full-screen capture through Gemini’s vision input. JSON requests and responses are built and parsed by hand over java.net.http, with no JSON library and no API key in source.
Status
Explored. It has never been compiled, there’s no Vosk model on disk yet, and the hard-coded Gemini model name needs updating before the calls will work.
Verified numbers
| Metric | Value | Source |
|---|---|---|
| Audio capture | 16 kHz, 16-bit mono, 100 ms buffers | local: notes-app/src/main/java/com/notesapp/VoskSpeechRecognizer.java |
| Java source | 563 lines in 6 files | local: notes-app/src/main/java/com/notesapp/ |