π Try the demo: https://github.com/LM-Kit/lm-kit-net-samples/tree/main/console_net/agents/smart_meeting_assistant
Smart Meeting Assistant for C# .NET Applications
π― Purpose of the Demo
Smart Meeting Assistant demonstrates how to use LM-Kit.NET to build an end-to-end meeting processing pipeline that combines local speech-to-text with multi-agent orchestration to turn raw audio recordings into actionable meeting deliverables.
The sample shows how to:
- Transcribe audio using Whisper models via
SpeechToText. - Chain multiple agents with
PipelineOrchestratorfor sequential processing. - Build specialized agents (Summarizer, Action Extractor, Email Drafter) using
Agent.CreateBuilder(). - Combine non-agent APIs (speech) with agent orchestration in a single workflow.
- Handle multiple models simultaneously (Whisper + chat model).
- Support multiple audio formats (WAV, MP3, FLAC) with automatic conversion.
Why a Smart Meeting Assistant with LM-Kit.NET?
- Complete privacy: meeting recordings, transcripts, and notes never leave your infrastructure.
- End-to-end automation: from raw audio to ready-to-send follow-up email in one pipeline.
- Multi-capability showcase: demonstrates speech, summarization, extraction, and generation in a single workflow.
- Real-world utility: solves a problem every professional faces daily.
π₯ Who Should Use This Demo
- Enterprise Developers: build meeting intelligence tools for internal use.
- Product Managers: automate post-meeting documentation and follow-ups.
- Healthcare & Legal Professionals: transcribe and summarize consultations while keeping data on-premises.
- AI/ML Engineers: learn how to chain speech processing with agent orchestration.
- Remote Teams: automate meeting minutes for distributed teams.
π What Problem It Solves
- Meeting documentation: eliminates manual note-taking during meetings.
- Action item tracking: automatically extracts who needs to do what and by when.
- Follow-up communication: generates professional follow-up emails ready for review.
- Data sovereignty: processes sensitive meeting content entirely on local hardware.
- Time savings: reduces post-meeting administrative work from 30+ minutes to seconds.
π» Demo Application Overview
Console app that:
- Lets you choose a Whisper model (speech-to-text) and a chat model (analysis).
- Downloads models if needed, with live progress updates.
- Creates a PipelineOrchestrator with three agent stages: Summarizer, Action Extractor, Email Drafter.
- Enters an interactive loop where you can:
- Provide a meeting audio file (WAV, MP3, FLAC, or other formats).
- Watch real-time transcription with timestamped segments.
- See the pipeline process the transcript through three stages.
- Receive an executive summary, structured action items, and a draft follow-up email.
- Displays processing statistics (duration, stage count).
- Loops until you type
quit.
Key Features
- Dual Model Architecture: Whisper for speech, chat model for analysis.
- PipelineOrchestrator: Sequential multi-agent processing where each stage builds on the previous.
- Real-Time Transcription: See each speech segment as it's recognized.
- Structured Action Items: Owners, deadlines, and priorities extracted automatically.
- Ready-to-Send Email: Professional follow-up email with subject, greeting, and all key details.
- Multi-Format Audio: WAV native, MP3/FLAC/others via NAudio conversion.
ποΈ Architecture
βββββββββββββββ
β Audio File β
β (WAV/MP3/..) β
ββββββββ¬βββββββ
β
βΌ
ββββββββββββββββ
β Whisper β Stage 1: Speech-to-Text
β SpeechToTextβ
ββββββββ¬ββββββββ
β transcript
βΌ
ββββββββββββββββ
β Summarizer β Stage 2: Executive Summary
β Agent β
ββββββββ¬ββββββββ
β summary
βΌ
ββββββββββββββββ
β Extractor β Stage 3: Action Items
β Agent β
ββββββββ¬ββββββββ
β action items
βΌ
ββββββββββββββββ
β Drafter β Stage 4: Follow-Up Email
β Agent β
ββββββββ¬ββββββββ
β
βΌ
ββββββββββββββββ
β Complete β Summary + Actions + Email
β Output β
ββββββββββββββββ
Agent Configuration
using LMKit.Agents;
using LMKit.Agents.Orchestration;
using LMKit.Model;
using LMKit.Speech;
// Load two models: Whisper for speech, chat for analysis
LM whisperModel = LM.LoadFromModelID("whisper-base");
LM chatModel = LM.LoadFromModelID("qwen3:8b");
// Create speech-to-text engine
SpeechToText sttEngine = new(whisperModel);
// Create pipeline agents
var summarizer = Agent.CreateBuilder(chatModel)
.WithPersona("Meeting Summarizer - ...")
.WithPlanning(PlanningStrategy.None)
.Build();
var extractor = Agent.CreateBuilder(chatModel)
.WithPersona("Action Item Extractor - ...")
.WithPlanning(PlanningStrategy.None)
.Build();
var drafter = Agent.CreateBuilder(chatModel)
.WithPersona("Follow-Up Email Drafter - ...")
.WithPlanning(PlanningStrategy.None)
.Build();
// Build the pipeline
var pipeline = new PipelineOrchestrator()
.AddStage("Summarizer", summarizer)
.AddStage("ActionExtractor", extractor)
.AddStage("EmailDrafter", drafter);
// Execute: transcribe then pipeline
sttEngine.Transcribe(audio);
var result = await pipeline.ExecuteAsync(transcript, cancellationToken);
βοΈ Getting Started
Prerequisites
- .NET 8.0 or later
- Sufficient VRAM for both models (Whisper: 0.05-0.87 GB + Chat: 6-18 GB)
- A meeting audio file (WAV recommended; MP3, FLAC, and others supported)
Download
git clone https://github.com/LM-Kit/lm-kit-net-samples
cd lm-kit-net-samples/console_net/agents/smart_meeting_assistant
Run
dotnet build
dotnet run
Then:
- Select a Whisper model for transcription.
- Select a chat model for analysis.
- Enter the path to an audio file.
- Watch real-time transcription and multi-stage processing.
- Receive summary, action items, and follow-up email.
- Type
quitto exit.
π§ Troubleshooting
"No speech detected"
- Check that the audio file contains speech.
- Ensure the file is not corrupted.
- Try a larger Whisper model for better accuracy.
Poor transcription quality
- Use Whisper Medium or Large for better accuracy.
- Ensure good audio quality (minimal background noise).
- Whisper works best with clear speech at normal pace.
Pipeline stages produce generic output
- Use a larger chat model (14B+) for better analysis.
- Longer transcripts provide more context for better results.
Out-of-memory errors
- Both models run simultaneously; ensure total VRAM is sufficient.
- Use Whisper Tiny/Base with a smaller chat model.
π Extend the Demo
- Speaker diarization: add speaker identification to the transcript.
- Persistent storage: save meeting notes to a database or file system.
- Calendar integration: extract and create calendar events from deadlines.
- Sentiment tracking: analyze participant sentiment throughout the meeting.
- Multi-language: transcribe and summarize meetings in different languages.
- Batch processing: process a folder of meeting recordings automatically.
π Additional Resources
- LM-Kit.NET Documentation
- SpeechToText API Reference
- PipelineOrchestrator API Reference
- Agent API Reference
- LM-Kit Samples Repository
π Related Content
- How-To: Transcribe Audio with Speech-to-Text: Learn how to use Whisper models for local audio transcription.
- How-To: Generate Meeting Notes from Audio: End-to-end guide for building audio-to-notes pipelines.
- Glossary: Speech-to-Text: Core concepts behind local speech recognition with Whisper models.
- Glossary: AI Agent Orchestration: Overview of pipeline and parallel orchestration strategies.
- Content Creation Pipeline Demo: Another PipelineOrchestrator demo that chains agents for sequential content processing.