Azure Voice Live for .NET
Build real-time, bidirectional voice AI applications with the Azure .NET SDK.
The document presents Entra, managed identity, and API-key authentication and advises against hardcoded keys. However, it does not disclose the flow or retention of audio, text, and function-call data, sensitive-data handling, least-privilege details, user confirmation, external-effect controls, or rollback. The function-calling example invokes an external-service pattern without validation, so points are deducted.
Core session, event-loop, audio, and function-calling paths are illustrated, and an error event is handled. However, there are no skill-specific tests, reproducible builds, or robust abnormal-input strategies; model and version statements may be inconsistent, and resource disposal, cancellation, reconnect, and complete event handling are underspecified. Static-review calibration limits this dimension to 10 or less.
Triggers, audience, and real-time voice scenarios are reasonably clear, covering .NET, WebSockets, VAD, function calling, and audio configuration. Non-fit boundaries, input/output contracts, and platform limitations are not declared, and Chinese-language voice support or mainland-China network reachability is not addressed. The core function depends on Azure services whose regional availability is unverified, so points are deducted.
The skill includes installation, environment variables, authentication, workflow, type reference, best practices, error handling, audio configuration, and references. MIT licensing, author, and version metadata are clear. Changelog, maintenance ownership and update path, compatibility matrix, FAQ, troubleshooting, version pinning, and known limitations are incomplete; the current-version claim is not evidenced in the supplied files.
The material can guide a basic Voice Live .NET session and includes reusable code examples. It does not provide a complete runnable application, and audio I/O, validation, reconnection, cancellation, concurrency, function-argument validation, and production deployment require substantial follow-up. SDK compatibility is not confirmed by execution evidence in the supplied files. Static-review calibration limits this dimension to 7 or less.
The skill lists NuGet, API, GitHub, and Quickstart references, while the repository supplies general CI, evaluation workflows, and harness tests. The supplied material contains no skill-specific test suite, successful run output, or third-party execution evidence, so key SDK claims cannot be independently reproduced from static reading. Static-review calibration limits this dimension to 5 or less.
- Do not treat the snippets as verified production-compilable code; pin and confirm the Azure.AI.VoiceLive version, deployment name, endpoint format, and API types.
- Before enabling function calls or external services, add argument validation, authorization, user confirmation, timeouts, auditing, and recovery, and avoid logging raw audio, credentials, or sensitive conversations.
- Verify service reachability, compliance, and data-residency requirements for the target region and mainland-China network environment before adoption.
What it does & when to use it
This skill is for .NET developers using the Azure.AI.VoiceLive SDK. It explains how to create VoiceLiveSession WebSocket connections and configure voices, audio formats, turn detection, and text/audio modalities. It covers Microsoft Entra credentials and API-key authentication, event streaming, user messages, audio transmission, and function calling. It fits voice assistants, real-time speech-to-speech experiences, and voice chatbots, provided you have an Azure Voice Live endpoint, a model deployment, and the required Azure role.
Provides installation commands for Azure.AI.VoiceLive, Azure.Identity, and NAudio; documents endpoint, model, voice, and authentication environment variables; shows how to create VoiceLiveClient, start and configure VoiceLiveSession, process audio deltas, text deltas, function calls, errors, and completed responses; and demonstrates sending user messages, starting responses, transmitting audio, and returning function-call output.
- An Azure .NET developer building a real-time voice assistant can use it to configure a bidirectional WebSocket session and spoken responses.
- A team implementing speech-to-speech conversation can use its PCM16 audio, text streaming, and response-event patterns.
- A developer adding external actions such as weather lookup can follow its function-definition, argument-parsing, and result-return workflow.
- A .NET developer implementing natural turn-taking can configure AzureSemanticVadTurnDetection with thresholds, prefix padding, and silence duration.
Pros & cons
- Provides a focused end-to-end foundation for the Azure.AI.VoiceLive .NET SDK, from installation and authentication through the event loop.
- Covers bidirectional WebSocket sessions, real-time audio, text streaming, and function calling.
- Includes examples for DefaultAzureCredential, voice selection, turn detection, and error handling.
- Identifies stable v1.0.0 and preview v1.1.0-beta.1 versions.
- It targets .NET only and does not apply to the repository’s Python, TypeScript, Java, or Rust skills.
- It requires an Azure Voice Live endpoint and model deployment; pricing and quota information are not provided.
- Audio capture and playback depend on NAudio or another audio library, but no complete device implementation is included.
- The source does not show independent test results for this individual skill.
How to install
Run npx skills add microsoft/skills and select azure-ai-voicelive-dotnet in the installation wizard. The skill is installed in the selected agent directory, such as .github/skills/ for GitHub Copilot. In the .NET project, run dotnet add package Azure.AI.VoiceLive and dotnet add package Azure.Identity; install dotnet add package NAudio when audio capture or playback is needed.
How to use
In an Agent Skills-compatible coding agent, make a .NET request containing a trigger such as “voice live” or “real-time voice.” Follow the skill’s examples to create VoiceLiveClient, start a VoiceLiveSession, configure the model, voice, modalities, and audio formats, then process audio, text, function-call, and error events through GetUpdatesAsync(). For Entra authentication, assign the Cognitive Services User role; for API-key authentication, configure the documented key variable.
Compared to similar skills
Compared with Microsoft.CognitiveServices.Speech, this skill focuses on Azure.AI.VoiceLive real-time bidirectional voice and speech-to-speech interaction; the source lists Speech SDK for speech-to-text and text-to-speech. NAudio is an auxiliary audio capture/playback library rather than a comparable voice AI SDK.