How klindikaraj/studyscribe works
StudyScribe is a Windows, local-first course-lecture recorder and transcription CLI. Users create a session by recording system loopback audio into durable WAV segments, then transcribe that session locally; runs can resume and transcripts can be exported. Recovery repairs abandoned recordings. The README describes study-note generation and a web UI as planned, not implemented, so they are not shown as runtime components. Relationships reflect the README and source-index references; unsampled modules are represented only where their role is documented or indexed.
Main entry points: cli.py Command-line interface · repo.py Session and transcript queries · capture.py Loopback capture · pipeline.py Windowed transcription pipeline
Components 24
Session workflow
- Command-line interface
src/studyscribe/cli.py - Session lifecycle
src/studyscribe/session.py - Recorder process handle
src/studyscribe/recording.py - Crash recovery
src/studyscribe/recovery.py - Transcript export
src/studyscribe/transcribe/export.py
Audio capture
- Loopback capture
src/studyscribe/audio/capture.py - Output device tracking
src/studyscribe/audio/devices.py - Audio timeline alignment
src/studyscribe/audio/timeline.py - Audio signal processing
src/studyscribe/audio/dsp.py - Segment writer
src/studyscribe/audio/segments.py - Crash-tolerant WAV files
src/studyscribe/audio/wav.py
Transcription
- Session audio reader
src/studyscribe/audio/reader.py - Transcription run manager
src/studyscribe/transcribe/runner.py - Windowed transcription pipeline
src/studyscribe/transcribe/pipeline.py - Language detection
src/studyscribe/transcribe/language.py - Transcript filtering
src/studyscribe/transcribe/filters.py - Voice activity detection
src/studyscribe/transcribe/vad.py - Faster Whisper engine
src/studyscribe/transcribe/whisper.py
Persistence
- SQLite session database
src/studyscribe/db/connection.py - Session and transcript queries
src/studyscribe/db/repo.py - Paths and settings
src/studyscribe/config.py
Other components
- Course learner
- Windows audio output
- Local speech model
Connections 32
- Course learner → Command-line interface: runs commands
README.md - Command-line interface → Session lifecycle: creates sessions
src/studyscribe/cli.py - Command-line interface → Recorder process handle: starts recording
src/studyscribe/cli.py - Recorder process handle → Loopback capture: spawns process
src/studyscribe/recording.py - Loopback capture → Windows audio output: captures loopback
README.md - Loopback capture → Output device tracking: tracks output
src/studyscribe/audio/capture.py - Loopback capture → Audio timeline alignment: aligns packets
src/studyscribe/audio/capture.py - Audio timeline alignment → Audio signal processing: processes audio
src/studyscribe/audio/timeline.py - Loopback capture → Segment writer: writes samples
src/studyscribe/audio/capture.py - Segment writer → Crash-tolerant WAV files: writes segments
src/studyscribe/audio/segments.py - Session lifecycle → Session and transcript queries: creates session rows
src/studyscribe/session.py - Session lifecycle → Segment writer: registers closed segments
src/studyscribe/session.py - Command-line interface → Crash recovery: repairs sessions
src/studyscribe/cli.py - Crash recovery → Crash-tolerant WAV files: repairs WAV headers
src/studyscribe/recovery.py - Crash recovery → Session and transcript queries: repairs manifest
src/studyscribe/recovery.py - Command-line interface → Transcription run manager: starts transcription
src/studyscribe/cli.py - Transcription run manager → Session audio reader: loads session audio
src/studyscribe/transcribe/runner.py - Session audio reader → Session and transcript queries: reads segment manifest
src/studyscribe/audio/reader.py - Transcription run manager → Windowed transcription pipeline: transcribes windows
src/studyscribe/transcribe/runner.py - Windowed transcription pipeline → Language detection: detects language
src/studyscribe/transcribe/pipeline.py - Windowed transcription pipeline → Transcript filtering: filters segments
src/studyscribe/transcribe/pipeline.py - Windowed transcription pipeline → Voice activity detection: finds speech pauses
src/studyscribe/transcribe/pipeline.py - Windowed transcription pipeline → Faster Whisper engine: requests recognition
src/studyscribe/transcribe/pipeline.py - Faster Whisper engine → Local speech model: runs local model
README.md - Transcription run manager → Session and transcript queries: stores run results
src/studyscribe/transcribe/runner.py - Command-line interface → Transcript export: exports transcript
src/studyscribe/cli.py - Transcript export → Session and transcript queries: reads transcript data
src/studyscribe/transcribe/export.py - Command-line interface → Session and transcript queries: lists session status
src/studyscribe/cli.py - SQLite session database → Session and transcript queries: provides connection
src/studyscribe/db/connection.py - Session lifecycle → SQLite session database: opens connection
src/studyscribe/session.py - Paths and settings → SQLite session database: sets database path
src/studyscribe/config.py - Paths and settings → Session audio reader: sets audio paths
src/studyscribe/audio/reader.py