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.
89
86%
Does it follow best practices?
Impact
Pending
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).
d0d6fee
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.