Use when writing or reviewing C# code in this repo that enables Deepgram intelligence overlays on Speech-to-Text requests. Covers `PreRecordedSchema` analytics flags such as `Summarize`, `Topics`, `Intents`, `Sentiment`, `DetectLanguage`, `DetectEntities`, `Diarize`, and `Redact`, plus the smaller live-streaming subset on `LiveSchema`. Use `deepgram-dotnet-speech-to-text` for plain transcription and `deepgram-dotnet-text-intelligence` for analytics on already-transcribed text.
71
86%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Audio analytics live on top of the same STT clients. Turn features on through schema properties.
Use a different skill when:
deepgram-dotnet-speech-to-text./read → deepgram-dotnet-text-intelligence.dotnet add package Deepgramusing Deepgram;
Library.Initialize();
var client = ClientFactory.CreateListenRESTClient();ClientFactory reads credentials from the DEEPGRAM_API_KEY (or DEEPGRAM_ACCESS_TOKEN) environment variable by default. To pass them explicitly, use ClientFactory.CreateListenRESTClient(apiKey: "...", options: ...) / CreateListenWebSocketClient(apiKey: "...", options: ...). DeepgramHttpClientOptions / DeepgramWsClientOptions throw if neither the env var nor an explicit credential is provided.
| Feature | REST (PreRecordedSchema) | WebSocket (LiveSchema) |
|---|---|---|
Diarize | yes | yes |
Redact | yes | yes |
DetectEntities | yes | not surfaced in LiveSchema |
Summarize | yes (string) | no |
Topics / Intents / Sentiment | yes | no |
DetectLanguage | yes | no |
CustomTopic / CustomIntent | yes | no |
using Deepgram.Models.Listen.v1.REST;
var client = ClientFactory.CreateListenRESTClient();
var response = await client.TranscribeUrl(
new UrlSource("https://dpgr.am/spacewalk.wav"),
new PreRecordedSchema()
{
Model = "nova-3",
Punctuate = true,
SmartFormat = true,
Diarize = true,
Summarize = "v2",
Topics = true,
Intents = true,
Sentiment = true,
DetectLanguage = true,
DetectEntities = true,
Redact = new List<string> { "pii", "numbers" },
Language = "en",
});
Console.WriteLine(response.Results.Channels[0].Alternatives[0].Transcript);
Console.WriteLine(response.Results.Summary);using Deepgram.Models.Listen.v2.WebSocket;
var liveClient = ClientFactory.CreateListenWebSocketClient();
await liveClient.Subscribe(new EventHandler<ResultResponse>((sender, e) =>
{
Console.WriteLine(e.Channel.Alternatives[0].Transcript);
}));
await liveClient.Connect(new LiveSchema()
{
Model = "nova-3",
Diarize = true,
Redact = new List<string> { "pii" },
Encoding = "linear16",
SampleRate = 16000,
});REST (PreRecordedSchema): Summarize, Topics, Intents, Sentiment, DetectLanguage, DetectEntities, CustomTopic, CustomTopicMode, CustomIntent, CustomIntentMode, Diarize, DiarizeVersion, Redact, Utterances, plus the regular STT knobs.
Live (LiveSchema): Diarize, Redact, UtteranceEnd, VadEvents, Punctuate, SmartFormat, plus normal streaming STT settings.
Deepgram/Models/Listen/v1/REST/PreRecordedSchema.csDeepgram/Models/Listen/v2/WebSocket/LiveSchema.csDeepgram/Clients/Listen/v1/REST/Client.csDeepgram/Clients/Listen/v2/WebSocket/Client.cshttps://context7.com/deepgram/deepgram-dotnet-sdk/llmstxt/developers_deepgram_llms_txtSummarize on STT is a string. Use Summarize = "v2", not true.List<string>. This SDK does not expose the Python-style union of string-or-array.CustomTopicMode / CustomIntentMode or the model behavior will not match expectations.examples/speech-to-text/rest/summary/Program.csexamples/speech-to-text/rest/sentiment/Program.csexamples/speech-to-text/rest/topic/Program.csexamples/speech-to-text/rest/intent/Program.csexamples/speech-to-text/rest/file/Program.csFor cross-language Deepgram product knowledge — the consolidated API reference, documentation finder, focused runnable recipes, third-party integration examples, and MCP setup — install the central skills:
npx skills add deepgram/skillsThis SDK ships language-idiomatic code skills; deepgram/skills ships cross-language product knowledge (see api, docs, recipes, examples, starters, setup-mcp).
3b953f0
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.