Independent product · Windows and Android app · 2026
Live Meeting Translator
A .NET MAUI Blazor Hybrid app that listens to a meeting, detects English or Turkish speech, translates it in real time for the person using it and helps them take part — with an AI assistant, a reply mode and meeting minutes.
The problem
In a meeting held in another language you have to follow fast speech, technical terms and several speakers at once — and still answer in time. Captioning tools show words; they do not explain a term, help you reply or remember what was decided.
What I built
- Three interchangeable translation engines behind one interface: Gemini Live streaming translation (the default), Gemini transcription with a technical glossary followed by sentence-level text translation, and Azure Speech Translation with English/Turkish auto-detection as the fallback.
- Audio capture on Windows with WASAPI (NAudio): the microphone, system audio without the app’s own playback, a single application such as Teams, Zoom or a browser through process loopback, or an output device — with meeting detection that offers to translate an app as soon as it starts playing sound.
- Built to stay out of the way: an always-on-top, see-through, click-through subtitle window, recordable global hotkeys, push-to-talk, a tray icon and a mini window; started at sign-in, it waits in the tray with no UI loaded.
- A streaming Azure OpenAI assistant: a better translation of the last sentence, guidance on what to say (on a hotkey, shown over the meeting), explanations of terms, and meeting minutes with decisions, action items, owners and due dates.
- Reply and two-way modes: the user’s spoken answer is translated into English or Turkish speech and sent into Teams or Zoom through an automatically detected virtual audio cable, while the meeting itself keeps being translated.
- Per-client glossaries and context fed to every model, searchable meeting history with automatic deletion, exports to Markdown, Word, SRT and VTT, a usage report with an estimated cost, and API keys kept only in the device’s secure storage.
- Delivery through GitHub Actions: 240 unit tests, a self-contained Windows build with ReadyToRun, an Android release APK, and a Velopack installer that updates itself from GitHub Releases.
Architecture
Audio capture
microphone · system audio · one app (Teams, Zoom) · WASAPI
Translation engines
Gemini Live · Gemini + glossary · Azure Speech
Subtitles
floating, click-through, global hotkeys
AI assistant
Azure OpenAI: refine, guide, explain, minutes
Reply
translated speech into the meeting through a virtual cable
History and exports
search · Markdown · Word · SRT/VTT · usage report
Key decisions
Engines behind one interface
Capture, subtitles and history do not depend on which engine translates, so an engine can be swapped, or replaced by the fallback, without changing the rest of the app.
No keys in code or backups
Keys live only in the device’s secure storage, and a settings backup cannot contain them by design.
Testable without the platform
The logic compiles against plain .NET 10, so its unit tests run on Linux in CI without any MAUI workload.
Honest scope
In testing on Windows 11 since October 2026; a public release has not been published yet, and code signing is still to be decided. Android is a secondary target.