How arzelaascoli/lazysubs works
LazySubs is a Windows desktop app for streaming system, microphone, or single-window audio to Azure Speech Translation and displaying bilingual subtitles. The main workflow is source selection, capture, cloud recognition/translation, interim and final subtitle rendering, then session history. Separate branches cover Azure and language settings, and searching, copying, and exporting past sessions. The sampled code supports the capture and history responsibilities; some signal wiring and several UI details are omitted, so uncertain links are left out.
Main entry points: record_page.py Recording page · main.py App shell · engine_azure.py Azure translator · history_manager.py History manager
Components 19
Desktop app
- App shell
main.py - Home page
ui/home_page.py - Recording page
ui/record_page.py - Subtitle chat
ui/chat_view.py
Audio capture
- Audio capture
core/audio_capture.py - Window sources
core/window_targets.py - Process loopback
core/process_loopback.py
Live translation
- Azure translator
core/engine_azure.py
History
- History page
ui/history_page.py - History manager
core/history_manager.py - Session text files
Settings and support
- Settings page
ui/settings_page.py - Config manager
core/config_manager.py - User config
- App paths
core/app_paths.py - System logger
core/logger.py - System log
Other components
- User
- Azure Speech
Connections 28
- User → App shell: opens app
- App shell → Home page: creates page
- App shell → Recording page: creates page
- App shell → History page: creates page
- App shell → Settings page: creates page
- User → Recording page: selects and starts
- Recording page → Audio capture: selects source; starts capture
- Audio capture → Window sources: lists window sources
- Audio capture → Process loopback: captures process audio
- Audio capture → Azure translator: streams audio chunks
- Azure translator → Azure Speech: streams audio; requests translation
- Azure Speech → Azure translator: returns recognition and translation
- Azure translator → Recording page: emits interim and final results
- Recording page → Subtitle chat: updates subtitles
- Recording page → History manager: starts session; appends finals
- History manager → Session text files: writes and reads sessions
- User → History page: searches and exports
- History page → History manager: searches; reads; exports
- User → Settings page: edits settings
- Settings page → Config manager: loads and saves
- Recording page → Config manager: reads translation settings
- Config manager → User config: loads and writes
- Config manager → App paths: resolves config path
- History manager → App paths: resolves history path
- Azure translator → System logger: logs engine events
- History manager → System logger: logs history events
- Settings page → System logger: opens log location
- System logger → System log: writes logs