Use when evaluating, extending, or writing C# code for conversational speech-to-text, Flux-style real-time transcription, or turn-taking streaming in the Deepgram .NET SDK. Identifies missing Flux request parameters (language_hint, eot_threshold), maps existing WebSocket response types, provides the closest supported LiveSchema code path, and guides adding TurnInfo models and Flux examples. Use `deepgram-dotnet-speech-to-text` for standard streaming transcription without turn awareness.
94
93%
Does it follow best practices?
Impact
94%
1.25xAverage score across 3 eval scenarios
Passed
No known issues
This repo does not currently expose a dedicated Flux / conversational STT API surface comparable to the Python SDK's listen.v2.connect(...) + TurnInfo flow.
Use a different skill when:
deepgram-dotnet-speech-to-text.deepgram-dotnet-voice-agent.What exists:
ClientFactory.CreateListenWebSocketClient() returns the latest WebSocket listen client.Deepgram.Models.Listen.v2.WebSocket.LiveSchema.OpenResponse, MetadataResponse, ResultResponse, SpeechStartedResponse, UtteranceEndResponse, CloseResponse, ErrorResponse, UnhandledResponse.SendKeepAlive(), SendFinalize(), SendClose(), Send(...).What is not present in the current repo search:
flux model constants or examples.TurnInfo / turn-aware event models.language_hint, eager_eot_threshold, eot_threshold, or similar Flux request properties.using Deepgram;
using Deepgram.Models.Listen.v2.WebSocket;
Library.Initialize(); // reads DEEPGRAM_API_KEY env var
var liveClient = ClientFactory.CreateListenWebSocketClient();
await liveClient.Subscribe(new EventHandler<ResultResponse>((sender, e) =>
{
var transcript = e.Channel.Alternatives[0].Transcript;
if (!string.IsNullOrWhiteSpace(transcript))
{
Console.WriteLine(transcript);
}
}));
await liveClient.Subscribe(new EventHandler<UtteranceEndResponse>((sender, e) =>
{
Console.WriteLine(e.Type);
}));
await liveClient.Connect(new LiveSchema()
{
Model = "nova-3",
Encoding = "linear16",
SampleRate = 16000,
InterimResults = true,
UtteranceEnd = "1000",
VadEvents = true,
});Treat this as standard live STT, not true Flux parity.
On LiveSchema: Model, Encoding, SampleRate, InterimResults, UtteranceEnd, VadEvents, Endpointing, NoDelay, Punctuate, SmartFormat, Keywords, Keyterm, Diarize, Redact.
If the task requires real Flux parity, follow these steps in order:
Deepgram/Models/Listen/v2/WebSocket/LiveSchema.cs with LanguageHint, EagerEotThreshold, EotThreshold, and other Flux-specific fields. Validate against the AsyncAPI spec.TurnInfo and any turn-aware event types under Deepgram/Models/Listen/v2/WebSocket/. Verify field names match the AsyncAPI spec.Deepgram/Clients/Listen/v2/WebSocket/Client.cs to deserialize and dispatch new event types.examples/speech-to-text/websocket/flux/Program.cs demonstrating a Flux session with turn-taking.TurnInfo-style .NET models or ConnectFluxAsync(...) helpers that are not backed by real implementation.Listen.v2.WebSocket naming is misleading for Python-parity expectations. It is the newest streaming client, but not a full conversational surface.DeepgramWsClientOptions defaults APIVersion to v1. Inspect connection URIs before assuming /v2/listen behavior.examples/speech-to-text/websocket/file/Program.csexamples/speech-to-text/websocket/http/Program.csexamples/speech-to-text/websocket/microphone/Program.csDeepgram/Clients/Listen/v2/WebSocket/Client.cs, Deepgram/Models/Listen/v2/WebSocket/*.cs3b953f0
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.