Skip to content

[Example] 500 — Semantic Kernel Voice Plugin (.NET/C#)#191

Open
github-actions[bot] wants to merge 1 commit intomainfrom
example/500-semantic-kernel-voice-plugin-dotnet
Open

[Example] 500 — Semantic Kernel Voice Plugin (.NET/C#)#191
github-actions[bot] wants to merge 1 commit intomainfrom
example/500-semantic-kernel-voice-plugin-dotnet

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Apr 6, 2026

New example: Semantic Kernel Voice Plugin (.NET/C#)

Integration: Microsoft Semantic Kernel | Language: C# | Products: STT, TTS

What this shows

A Deepgram plugin for Microsoft Semantic Kernel that exposes STT (pre-recorded transcription) and TTS (Aura-2) as [KernelFunction] attributes. Includes a console app with an agent chat loop where the AI agent can autonomously choose to transcribe audio files/URLs or synthesize speech.

Required secrets

  • DEEPGRAM_API_KEY
  • OPENAI_API_KEY (for the Semantic Kernel LLM backend)

Tests

✅ Tests passed

Test Run Successful.
Total tests: 3
     Passed: 3
 Total time: 4.8007 Seconds

Built by Engineer on 2026-04-06

@github-actions github-actions bot added type:example New example language:csharp Language: C# integration:semantic-kernel Integration: Semantic Kernel labels Apr 6, 2026
@github-actions github-actions bot force-pushed the example/500-semantic-kernel-voice-plugin-dotnet branch from ba3b5fc to 6a55828 Compare April 6, 2026 05:24
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions github-actions bot force-pushed the example/500-semantic-kernel-voice-plugin-dotnet branch from 6a55828 to 92f9c75 Compare April 6, 2026 05:27
@github-actions
Copy link
Copy Markdown
Contributor Author

github-actions bot commented Apr 6, 2026

Code Review

Overall: APPROVED

Tests ran ✅

Passed DeepgramSemanticKernel.Tests.DeepgramPluginTests.SpeakTextStream_ReturnsBase64Audio [1 s]
Passed DeepgramSemanticKernel.Tests.DeepgramPluginTests.TranscribeUrl_ReturnsNonEmptyTranscript [606 ms]
Passed DeepgramSemanticKernel.Tests.DeepgramPluginTests.SpeakText_CreatesAudioFile

Test Run Successful.
Total tests: 3
     Passed: 3
 Total time: 4.4656 Seconds

Integration genuineness

✅ Pass

  • Microsoft Semantic Kernel SDK imported and used (Microsoft.SemanticKernel v1.74.0)
  • [KernelFunction] attributes expose Deepgram STT/TTS as Semantic Kernel plugin functions
  • FunctionChoiceBehavior.Auto() enables real agent-driven function calling
  • .env.example lists both DEEPGRAM_API_KEY and OPENAI_API_KEY
  • Tests exit with code 2 when credentials are missing — no fake passes
  • No bypass: Deepgram calls flow through the SK plugin pattern (SK has no native audio interface)
  • No raw WebSocket/fetch — all Deepgram contact via official .NET SDK

Code quality

  • ✅ Official Deepgram .NET SDK v6.6.1 (matches required version)
  • tag: "deepgram-examples" on all STT calls (TTS SpeakSchema has no Tag property in SDK 6.6.1 — SDK limitation, not an omission)
  • ✅ No hardcoded credentials
  • ✅ Credential check runs before SDK initialization in both Program.cs and tests
  • ✅ Error handling covers missing credentials with Environment.Exit(2)
  • ✅ Tests import from src/ via ProjectReference and call the plugin's actual methods
  • ✅ Transcript assertions use proportional length check (transcript.Length >= 10), no flaky word lists
  • ✅ Audio assertions use proportional byte-size checks (> 1000 bytes)

Documentation

  • ✅ README has "What you'll build", prerequisites, env var table with links, install/run instructions, key parameters, and how-it-works section
  • .env.example present and complete with both vars and source links

✓ All checks pass. Ready for merge.


Review by Lead on 2026-04-06

@github-actions github-actions bot added the status:review-passed Self-review passed label Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

integration:semantic-kernel Integration: Semantic Kernel language:csharp Language: C# status:review-passed Self-review passed type:example New example

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants