KiteKey.AI.Azure.VoiceLive
0.2.0
dotnet add package KiteKey.AI.Azure.VoiceLive --version 0.2.0
NuGet\Install-Package KiteKey.AI.Azure.VoiceLive -Version 0.2.0
<PackageReference Include="KiteKey.AI.Azure.VoiceLive" Version="0.2.0" />
<PackageVersion Include="KiteKey.AI.Azure.VoiceLive" Version="0.2.0" />
<PackageReference Include="KiteKey.AI.Azure.VoiceLive" />
paket add KiteKey.AI.Azure.VoiceLive --version 0.2.0
#r "nuget: KiteKey.AI.Azure.VoiceLive, 0.2.0"
#:package KiteKey.AI.Azure.VoiceLive@0.2.0
#addin nuget:?package=KiteKey.AI.Azure.VoiceLive&version=0.2.0
#tool nuget:?package=KiteKey.AI.Azure.VoiceLive&version=0.2.0
KiteKey.AI.Azure
Two independently packable .NET 10 libraries for Azure AI integrations, licensed under MIT:
| Package | Purpose |
|---|---|
KiteKey.AI.Azure |
Azure Speech voice discovery and credential-based HTTP bearer authentication |
KiteKey.AI.Azure.VoiceLive |
Voice Live bidirectional assistant, shared KiteKey.AI.Abstractions audio transport, injectable function handling, credential reuse/warmup, and agent or ephemeral-model sessions |
The host owns credentials and configuration; neither library reads app settings, creates credentials, nor depends on Delphinium domain entities. For example:
using Azure.Core;
using KiteKey.AI.Azure;
using KiteKey.AI.Abstractions.Voice;
using KiteKey.AI.Azure.VoiceLive;
using Microsoft.Extensions.Logging.Abstractions;
TokenCredential credential = yourHostCredential;
using var client = new HttpClient(new BearerTokenHandler(credential)
{
InnerHandler = new HttpClientHandler()
});
var endpoint = new Uri("https://YOUR_RESOURCE.services.ai.azure.com/");
var voices = new AzureVoiceListingService(client, endpoint, NullLogger<AzureVoiceListingService>.Instance);
var available = await voices.ListVoicesAsync("en-US");
var provider = new VoiceLiveCredentialProvider(credential);
using var conversation = new VoiceLiveConversationService(
endpoint, provider, NullLogger<VoiceLiveConversationService>.Instance,
new VoiceSessionSettings
{
Voice = "en-US-AriaNeural",
VadThreshold = 0.5f,
PrefixPaddingMs = 300,
SilenceDurationMs = 500
},
projectName: "YOUR_PROJECT",
defaultAgentId: "YOUR_AGENT_ID");
using var assistant = new VoiceLiveVoiceAssistant(
conversation,
NullLogger<VoiceLiveVoiceAssistant>.Instance,
async (name, arguments, conversationId, cancellation) =>
{
// Route to your own function executor. Return null only for unhandled calls.
string json = await ExecuteFunctionAsync(name, arguments, conversationId, cancellation);
return new VoiceFunctionResult(json, EndConversation: ShouldEndConversation(name));
});
// await assistant.StartConversationAsync(yourAudioClient, allowInterrupts: true, cancellationToken: cancellationToken);
yourHostCredential is an injected TokenCredential; this repository does not select or construct an application credential. yourAudioClient implements KiteKey.AI.Abstractions.Voice.IVoiceAudioClient, supplying a readable microphone stream, output audio, playback clearing, status and transcript delivery. VoiceTranscript and VoiceToolCall also come from the shared abstractions package; only VoiceFunctionHandler and VoiceFunctionResult are local to VoiceLive. The sample's ExecuteFunctionAsync and ShouldEndConversation are host-defined functions, not part of these packages. The host owns and disposes its audio transport; the assistant owns its single conversation service. The host can register VoiceLiveCredentialWarmupService after registering its VoiceLiveCredentialProvider singleton. Ephemeral sessions instead pass VoiceSessionSettings with an EphemeralAgent containing model ID, instructions and optional function tools; an agent ID/project is then unnecessary.
Run dotnet test KiteKey.AI.Azure.sln and dotnet pack KiteKey.AI.Azure.sln --configuration Release; only src/dotnet projects are packable. See architecture and extraction scope.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Azure.AI.VoiceLive (>= 1.1.0)
- KiteKey.AI.Abstractions (>= 0.1.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0 | 92 | 9/28/2026 |