varapiKey=Environment.GetEnvironmentVariable("DEEPGRAM_API_KEY")is{Length:>0}apiKeyValue?apiKeyValue:thrownewAssertInconclusiveException("DEEPGRAM_API_KEY environment variable is not found.");// Create a realtime ListenV1 client and authenticate.awaitusingvarrealtimeClient=newRealtime.DeepgramListenV1RealtimeClient();realtimeClient.AuthorizeUsingToken(apiKey);// Connect with typed query parameters — model, interim results, and language.usingvarcts=newCancellationTokenSource(TimeSpan.FromSeconds(30));awaitrealtimeClient.ConnectAsync(model:Realtime.ListenV1Model.Nova3,interimResults:Realtime.ListenV1InterimResults.True,language:Realtime.ListenV1Language.FromString("en"),cancellationToken:cts.Token);// Download a short audio sample and send it as binary frames.usingvarhttpClient=newHttpClient();varaudioBytes=awaithttpClient.GetByteArrayAsync("https://dpgr.am/spacewalk.wav",cts.Token);// Send audio in 8KB chunks.constintchunkSize=8192;for(varoffset=0;offset<audioBytes.Length;offset+=chunkSize){varlength=Math.Min(chunkSize,audioBytes.Length-offset);awaitrealtimeClient.SendAsync(newArraySegment<byte>(audioBytes,offset,length),System.Net.WebSockets.WebSocketMessageType.Binary,endOfMessage:true,cts.Token);}// Signal end of audio and close the stream.awaitrealtimeClient.SendListenV1CloseStreamAsync(newRealtime.ListenV1ControlMessage{Type=Realtime.ListenV1ControlMessageType.CloseStream,},cts.Token);// Receive transcription events until the connection closes.vartranscripts=newList<string>();string?responseId=null;awaitforeach(varserverEventinrealtimeClient.ReceiveUpdatesAsync(cts.Token)){if(serverEvent.IsMetadata&&serverEvent.Metadatais{}metadata){responseId=metadata.RequestId.ToString();Console.WriteLine($"Session started: {responseId}");}elseif(serverEvent.IsResults&&serverEvent.Resultsis{}results){if(results.IsFinal==true&&results.Channel?.Alternativesis{Count:>0}alts&&alts[0].Transcriptis{Length:>0}transcript){transcripts.Add(transcript);Console.WriteLine($"Final: {transcript}");}}}// Verify we received transcription results.Console.WriteLine($"Total final transcripts: {transcripts.Count}");