A powerful Windows desktop application for recording, transcribing, and summarizing meetings and lectures with AI. Built with WPF and C#, featuring real-time transcription, video/audio transcription, multi-language translation, and both local and cloud AI support.
- Audio Recording: Capture system audio and microphone simultaneously or separately
- Real-Time Transcription: See transcripts appear live as you speak (configurable 5-300 second intervals)
- Video/Audio Transcription: Transcribe and summarize your video or audio in seconds!
- AI Summarization: Generate concise summaries with key highlights and action items
- Multi-Language Translation: Translate transcripts to 8+ languages using DeepL
- Smart Chunking: Automatically splits long recordings (>10 minutes) for efficient processing
- Markdown Rendering: View AI summaries with beautiful markdown formatting
- Local or Cloud: Choose between local models (Whisper.cpp, Ollama) or cloud APIs (Azure STT, OpenRouter)
- Mixed Mode: Use local transcription with cloud summarization (or vice versa)
- Customizable Settings: Adjust real-time intervals, enable/disable features, configure API keys
- Windows 10/11
- .NET 8.0 Runtime
- (Optional) Whisper.cpp for local transcription
- (Optional) Ollama for local AI summarization
- Go to Release page and download the newest version to your PC
- Extract the contents out from the zip folder, and go into publish folder
- Double-click TranscribeMeetingUI.exe to run the app
- Enjoy!
For Dev:
- Clone the repository
git clone https://github.com/yourusername/meeting-transcriber.git
cd meeting-transcriber- Install dependencies
dotnet restore- Build the project
dotnet build- Run the application
dotnet run --project TranscribeMeetingUI- Launch the application
- Click the βοΈ Settings button
- Configure your preferred services:
- For Local Setup: Provide paths to Whisper.cpp and Ollama
- For Cloud Setup: Enter your API keys (Azure, OpenRouter, DeepL)
The app uses Ollama to run local Large Language Models.
- Installation: Download and install Ollama for your OS.
- Download a Model: Pull a model from the Ollama library. We recommend starting with
Llama 3.1 8B.
Run this command in your terminal:ollama pull llama3.1:8b
- Keep Ollama Running: The Ollama background service is all that's needed. The app will automatically detect your downloaded models and show them in the settings panel dropdown.
The app connects to a Whisper.cpp for local transcription.
- Installation: Download the appropriate pre-built binary from the Whisper.cpp releases page.
- For NVIDIA GPU users on Windows (recommended): Download
whisper-cublas-....zip. - For CPU-only on Windows: Download
whisper-bin-x64.zip. - For MAC: Clone the repo and build the APP
- For NVIDIA GPU users on Windows (recommended): Download
- Download a Model: Download a quantized Whisper model.
ggml-base.en-q8_0.binis a fast, high-quality starting point from Huggingface - Configuration: You will provide the path to
whisper-cli.exeand the.binmodel file in the app's settings panel. The app will launch and manage the server for you.
β Cloud Mode (Optional): LLM: OpenRouter STT: Microsoft Azure Speech.
- Click Save and start recording!
- Toggle Microphone: Enable/disable microphone input (system audio always recorded)
- Click Start Recording: Begin capturing audio
- Click Stop Recording: End capture and start processing
- View Results: See transcript and AI summary
- Export: Save results in your preferred format
- Enable Real-Time: Toggle the β‘ Real-time switch before recording
- Start Recording: Transcription appears automatically every 30 seconds (configurable)
- Toggle Translation: Click π to switch between original and translated text
- Stop When Done: AI summary generated from all segments
- Enable in Settings: Provide DeepL API key and select target language
- During Recording: Translation happens automatically in real-time mode
- After Recording: Click π button to translate on-demand
- Toggle Views: Switch between original and translated text anytime
- Local (Whisper.cpp): Free, runs on your GPU/CPU
- Requires: Whisper CLI path and model file (.bin)
- Models: tiny, base, small, medium, large
- Azure Speech-to-Text: Cloud-based, fast and accurate
- Requires: Azure API key and region
- Local (Ollama): Free, runs locally
- Requires: Ollama installed and running
- Configure: Model name (e.g., llama3.1:8b) and URL
- OpenRouter API: Cloud-based, access to multiple models
- Requires: OpenRouter API key
- Configure: Model name (e.g., anthropic/claude-3-sonnet)
- DeepL API: Professional translation service
- Requires: DeepL API key (free tier available)
- Supported: English, Spanish, French, German, Italian, Japanese, Korean, Chinese
- Chunk Interval: 5-300 seconds (default: 30)
- Lower = Faster updates, higher CPU usage
- Higher = Less frequent updates, lower CPU usage
- Enable AI Summary: Toggle summary generation
- Auto-Export: Automatically save after processing
- Framework: .NET 8.0 / WPF
- Audio: NAudio (WASAPI loopback capture, audio mixing)
- Transcription: Whisper.cpp / Azure Cognitive Services
- AI: Ollama / OpenRouter (Claude, GPT, etc.)
- Translation: DeepL API
- Markdown: Markdig.Wpf for rendering
TranscribeMeetingUI/
βββ MainWindow.xaml # Main UI
βββ MainWindow.xaml.cs # Main logic
βββ SettingsWindow.xaml # Settings UI
βββ SettingsWindow.xaml.cs # Settings logic
βββ AppSettings.cs # Configuration management
βββ Recorder.cs # Audio recording with mixing
βββ RealTimeTranscriber.cs # Live transcription handler
βββ Transcriber.cs # Local/Azure transcription
βββ Summarizer.cs # Local/Cloud AI summarization
βββ ChunkedProcessor.cs # Long recording handler
βββ AzureSTTHandler.cs # Azure Speech-to-Text
βββ OpenRouterHandler.cs # OpenRouter API integration
βββ DeepLTranslator.cs # DeepL translation
- Local Processing: Use local models (Whisper, Ollama) for complete privacy
- No Data Storage: Application doesn't store recordings or transcripts permanently
- API Keys: Stored locally in
%AppData%/MasterTranscriber/settings.json - Temporary Files: Cleaned up after processing
Whisper.cpp not creating transcript:
- Ensure Whisper CLI path is correct
- Check model file (.bin) exists and is valid
- Verify output directory has write permissions
Audio recording is silent:
- Check system audio is playing
- Verify microphone permissions in Windows settings
- Try toggling microphone on/off
Real-time transcription not working:
- Ensure chunk interval is set (5-300 seconds)
- Check Whisper.cpp or Azure STT is configured
- Look for errors in debug output (Visual Studio Output window)
Translation fails:
- Verify DeepL API key is valid
- Check internet connection
- Ensure target language is supported
Duration mismatch (file longer than actual recording):
- This was a bug in mixing - ensure you're using the latest code
- Check debug output for "Discrepancy ratio" (should be ~1.0x)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- NAudio - Audio recording and processing
- Whisper.cpp - Local speech-to-text
- Ollama - Local AI models
- Markdig - Markdown rendering
- Azure Cognitive Services - Cloud transcription
- OpenRouter - Multi-model AI access
- DeepL - Professional translation
β If you find this project useful, please consider giving it a star on GitHub!
