# nnavyy/livetranslatoroverlay architecture

> Architecture diagram of the GitHub repository nnavyy/livetranslatoroverlay, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nnavyy/livetranslatoroverlay
- Repository: https://github.com/nnavyy/livetranslatoroverlay

## Overview

Live Translator Overlay is a Windows desktop app for live audio subtitles and selected-region OCR translation, with history, localization, and in-app report tracking. The main workflow starts in the overlay: capture audio or select a screen region, transcribe or recognize text, translate it, then display the result. README capabilities supplement the sampled source; links to unsampled subsystems are limited to documented behavior and supported paths.

Main entry points: [`MainWindow.xaml.cs`](https://github.com/nnavyy/livetranslatoroverlay/blob/main/MainWindow.xaml.cs) (Translator overlay), [`Core/WhisperSttService.cs`](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/WhisperSttService.cs) (Batch transcription), [`Core/Feedback/FeedbackHistoryManager.cs`](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Feedback/FeedbackHistoryManager.cs) (Report history manager), [`Core/Translation/GroqTranslateProvider.cs`](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/GroqTranslateProvider.cs) (Groq translation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["Desktop experience"]
  node_main["Translator overlay<br/>[MainWindow.xaml.cs]"]
end

subgraph group_audio["Audio transcription"]
  node_capture["Audio capture"]
  node_deepgram["Streaming diarization"]
  node_whisper["Batch transcription"]
  node_hallucination["Transcript filtering"]
end

subgraph group_language["Text processing"]
  node_ocr["Screen OCR"]
  node_google["Google translation"]
  node_groqtranslate["Groq translation"]
  node_libre["Libre translation"]
  node_providerinterface["Translation provider contract"]
end

subgraph group_history["History and feedback"]
  node_historywindow["Translation history"]
  node_feedbackwindow["Feedback interface"]
  node_feedbackhistory["Report history manager"]
  node_feedbackrecord["Report record<br/>[FeedbackRecord.cs]"]
  node_historydata[("Local report history")]
end

subgraph group_support["Local configuration"]
  node_settings["App settings<br/>[AppSettings.cs]"]
  node_localization["UI localization"]
  node_quota["Quota tracking<br/>[QuotaTracker.cs]"]
end

node_user(("Desktop user"))
node_audioinput(("Audio devices"))
node_display(("Desktop screen"))
node_cloudspeech{{"Deepgram / Groq APIs"}}
node_translationservices{{"Translation services"}}
node_github{{"GitHub report status"}}

node_user -->|"controls"| node_main
node_main -->|"starts capture"| node_capture
node_audioinput -->|"provides audio"| node_capture
node_main -->|"streams audio"| node_deepgram
node_main -->|"submits audio"| node_whisper
node_deepgram -->|"streams to"| node_cloudspeech
node_whisper -->|"transcribes via"| node_cloudspeech
node_deepgram -->|"filters transcript"| node_hallucination
node_whisper -->|"filters transcript"| node_hallucination
node_main -->|"recognizes region"| node_ocr
node_display -->|"supplies region"| node_ocr
node_main -->|"requests translation"| node_google
node_main -.->|"requests translation"| node_groqtranslate
node_main -.->|"requests translation"| node_libre
node_google -->|"translates via"| node_translationservices
node_groqtranslate -.->|"translates via"| node_translationservices
node_libre -.->|"translates via"| node_translationservices
node_providerinterface -->|"defines contract"| node_google
node_providerinterface -->|"defines contract"| node_groqtranslate
node_providerinterface -->|"defines contract"| node_libre
node_main -->|"opens history"| node_historywindow
node_main -->|"opens reports"| node_feedbackwindow
node_feedbackwindow -->|"loads and updates"| node_feedbackhistory
node_feedbackhistory -->|"creates records"| node_feedbackrecord
node_feedbackhistory -->|"reads and writes"| node_historydata
node_feedbackhistory -.->|"checks status"| node_github
node_historywindow -.->|"summarizes history"| node_groqtranslate
node_main -->|"loads preferences"| node_settings
node_main -->|"localizes interface"| node_localization
node_main -->|"updates usage"| node_quota
node_whisper -->|"updates quota"| node_quota

click node_main "https://github.com/nnavyy/livetranslatoroverlay/blob/main/MainWindow.xaml.cs"
click node_historywindow "https://github.com/nnavyy/livetranslatoroverlay/blob/main/HistoryWindow.xaml.cs"
click node_feedbackwindow "https://github.com/nnavyy/livetranslatoroverlay/blob/main/FeedbackWindow.xaml.cs"
click node_capture "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/AudioCaptureService.cs"
click node_deepgram "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/DiarizedSttService.cs"
click node_whisper "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/WhisperSttService.cs"
click node_hallucination "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/HallucinationDetector.cs"
click node_ocr "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/ScreenOcrService.cs"
click node_google "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/GoogleFreeTranslateProvider.cs"
click node_groqtranslate "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/GroqTranslateProvider.cs"
click node_libre "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/LibreTranslateProvider.cs"
click node_providerinterface "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/ITranslationProvider.cs"
click node_settings "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/AppSettings.cs"
click node_localization "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Localization/LocalizationManager.cs"
click node_quota "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/QuotaTracker.cs"
click node_feedbackhistory "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Feedback/FeedbackHistoryManager.cs"
click node_feedbackrecord "https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Feedback/FeedbackRecord.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_user,node_display toneBlue
class node_capture,node_deepgram,node_whisper,node_hallucination toneAmber
class node_ocr,node_google,node_groqtranslate,node_libre,node_providerinterface,node_cloudspeech toneMint
class node_historywindow,node_feedbackwindow,node_feedbackhistory,node_feedbackrecord,node_historydata toneRose
class node_settings,node_localization,node_quota,node_audioinput,node_translationservices,node_github toneIndigo
```

## Components

### Desktop experience

- [Translator overlay](https://github.com/nnavyy/livetranslatoroverlay/blob/main/MainWindow.xaml.cs): `MainWindow.xaml.cs`

### Audio transcription

- [Audio capture](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/AudioCaptureService.cs): `Core/AudioCaptureService.cs`
- [Streaming diarization](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/DiarizedSttService.cs): `Core/DiarizedSttService.cs`
- [Batch transcription](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/WhisperSttService.cs): `Core/WhisperSttService.cs`
- [Transcript filtering](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/HallucinationDetector.cs): `Core/HallucinationDetector.cs`

### Text processing

- [Screen OCR](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/ScreenOcrService.cs): `Core/ScreenOcrService.cs`
- [Google translation](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/GoogleFreeTranslateProvider.cs): `Core/Translation/GoogleFreeTranslateProvider.cs`
- [Groq translation](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/GroqTranslateProvider.cs): `Core/Translation/GroqTranslateProvider.cs`
- [Libre translation](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/LibreTranslateProvider.cs): `Core/Translation/LibreTranslateProvider.cs`
- [Translation provider contract](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Translation/ITranslationProvider.cs): `Core/Translation/ITranslationProvider.cs`

### History and feedback

- [Translation history](https://github.com/nnavyy/livetranslatoroverlay/blob/main/HistoryWindow.xaml.cs): `HistoryWindow.xaml.cs`
- [Feedback interface](https://github.com/nnavyy/livetranslatoroverlay/blob/main/FeedbackWindow.xaml.cs): `FeedbackWindow.xaml.cs`
- [Report history manager](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Feedback/FeedbackHistoryManager.cs): `Core/Feedback/FeedbackHistoryManager.cs`
- [Report record](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Feedback/FeedbackRecord.cs): `Core/Feedback/FeedbackRecord.cs`
- **Local report history**

### Local configuration

- [App settings](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/AppSettings.cs): `Core/AppSettings.cs`
- [UI localization](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/Localization/LocalizationManager.cs): `Core/Localization/LocalizationManager.cs`
- [Quota tracking](https://github.com/nnavyy/livetranslatoroverlay/blob/main/Core/QuotaTracker.cs): `Core/QuotaTracker.cs`

### Other components

- **Desktop user**
- **Audio devices**
- **Desktop screen**
- **Deepgram / Groq APIs**
- **Translation services**
- **GitHub report status**

## Connections

- Desktop user → Translator overlay: controls
- Translator overlay → Audio capture: starts capture
- Audio devices → Audio capture: provides audio
- Translator overlay → Streaming diarization: streams audio
- Translator overlay → Batch transcription: submits audio
- Streaming diarization → Deepgram / Groq APIs: streams to
- Batch transcription → Deepgram / Groq APIs: transcribes via
- Streaming diarization → Transcript filtering: filters transcript
- Batch transcription → Transcript filtering: filters transcript
- Translator overlay → Screen OCR: recognizes region
- Desktop screen → Screen OCR: supplies region
- Translator overlay → Google translation: requests translation
- Translator overlay → Groq translation: requests translation
- Translator overlay → Libre translation: requests translation
- Google translation → Translation services: translates via
- Groq translation → Translation services: translates via
- Libre translation → Translation services: translates via
- Translation provider contract → Google translation: defines contract
- Translation provider contract → Groq translation: defines contract
- Translation provider contract → Libre translation: defines contract
- Translator overlay → Translation history: opens history
- Translator overlay → Feedback interface: opens reports
- Feedback interface → Report history manager: loads and updates
- Report history manager → Report record: creates records
- Report history manager → Local report history: reads and writes
- Report history manager → GitHub report status: checks status
- Translation history → Groq translation: summarizes history
- Translator overlay → App settings: loads preferences
- Translator overlay → UI localization: localizes interface
- Translator overlay → Quota tracking: updates usage
- Batch transcription → Quota tracking: updates quota
