How naavalanarul/lecture_whisper works
Lecture Whisper is a local-first lecture capture and academic-intelligence system: recordings are captured or uploaded, processed into transcripts and study materials, persisted locally, and reviewed in the web dashboard; an Android companion pairs and syncs with the server. The README also documents timetable OCR, speaker/event/question intelligence, and correction workflows. Some server and UI subsystems are represented by their exact enclosing paths because their implementation was not sampled; edges are limited to documented or sampled interactions.
Main entry points: runner.py Pipeline runner · api.ts Dashboard API client · jobs.py Job queue · MainActivity.java Android app
Components 27
Capture & Pairing
- Android app
mobile/android/app/src/main/java/com/lecturewhisper/MainActivity.java - Audio recorder
mobile/android/app/src/main/java/com/lecturewhisper/recorder/RecorderService.java - Connection manager
mobile/android/app/src/main/java/com/lecturewhisper/network/ConnectionManager.java - Laptop sync client
mobile/android/app/src/main/java/com/lecturewhisper/network/LaptopSyncClient.java
Local Server
- FastAPI application
server/src/lecturewhisper/api/app.py - Audio upload
server/src/lecturewhisper/api/routes/upload.py - Pairing API
server/src/lecturewhisper/api/routes/pairing.py - Job queue
server/src/lecturewhisper/api/jobs.py - Job status & events
server/src/lecturewhisper/api/routes/job_routes.py - Recording API
server/src/lecturewhisper/api/routes/recordings.py - Timetable API
server/src/lecturewhisper/api/routes/timetable.py - SQLite database
server/src/lecturewhisper/store/database.py - Audio & artifacts
server/src/lecturewhisper/store/files.py
Lecture Processing
- Pipeline runner
server/src/lecturewhisper/pipeline/runner.py - Audio preparation
server/src/lecturewhisper/pipeline/audio.py - Speech recognition
server/src/lecturewhisper/pipeline/asr.py - Speaker diarization
server/src/lecturewhisper/pipeline/diarize.py - Study notes
server/src/lecturewhisper/pipeline/notes.py - Chapters & events
server/src/lecturewhisper/pipeline/chapters.py - Schedule extraction
server/src/lecturewhisper/pipeline/timetable.py - Structured LLM
server/src/lecturewhisper/llm/engine.py
Review & Study
- Web dashboard
ui/src/App.tsx - Lecture study view
ui/src/views/LectureView.tsx - Corrections
ui/src/views/CorrectionsView.tsx - Dashboard API client
ui/src/api.ts
Other components
- Student
- Local ML runtime
Connections 35
- Student → Android app: records / pairs
- Android app → Audio recorder: starts recording
- Android app → Connection manager: discovers host
- Android app → Laptop sync client: syncs audio
- Laptop sync client → Audio upload: uploads chunks
- Student → Web dashboard: uploads / reviews
- Web dashboard → Dashboard API client: requests data
- Dashboard API client → Audio upload: submits audio
- Dashboard API client → Recording API: loads recordings
- Dashboard API client → Timetable API: loads schedule
- Dashboard API client → Pairing API: gets pairing info
- FastAPI application → Audio upload: registers routes
- FastAPI application → Pairing API: registers routes
- FastAPI application → Job queue: starts worker
- Audio upload → Job queue: queues processing
- Dashboard API client → Job queue: queues processing
- Job status & events → Job queue: reads status / streams
- Job queue → Pipeline runner: dispatches work
- Pipeline runner → Audio preparation: prepares audio
- Pipeline runner → Speech recognition: transcribes
- Pipeline runner → Speaker diarization: identifies speakers
- Pipeline runner → Study notes: generates notes
- Pipeline runner → Chapters & events: extracts chapters
- Pipeline runner → Schedule extraction: extracts schedule
- Study notes → Structured LLM: requests generation
- Chapters & events → Structured LLM: requests extraction
- Schedule extraction → Structured LLM: requests OCR
- Structured LLM → Local ML runtime: runs inference
- Recording API → SQLite database: reads / writes metadata
- Timetable API → SQLite database: reads / writes schedule
- Pipeline runner → Audio & artifacts: stores artifacts
- Web dashboard → Lecture study view: shows selected lecture
- Web dashboard → Corrections: opens review tools
- Corrections → Dashboard API client: submits corrections
- Lecture study view → Dashboard API client: loads lecture data