Table of Contents

πŸ‘‰ 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 PipelineOrchestrator for 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:

  1. Select a Whisper model for transcription.
  2. Select a chat model for analysis.
  3. Enter the path to an audio file.
  4. Watch real-time transcription and multi-stage processing.
  5. Receive summary, action items, and follow-up email.
  6. Type quit to 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

Share