Azure Voice Live .NET 技能
帮助 .NET 开发者构建实时双向语音 AI 应用。
文档提供 Entra、托管身份和 API key 两种认证方式,并建议避免硬编码密钥;但未说明音频、文本、函数调用数据的流向、留存、敏感数据处理、最小权限细节、用户确认、外部副作用控制或回滚方案。函数调用示例直接构造外部天气结果且没有安全校验,因此扣分。
核心会话、事件循环、音频和函数调用路径有示例,错误事件也有处理;但未提供该技能专属测试、可复现构建或异常输入策略,模型和版本信息可能不一致,示例还缺少明确的资源、取消、重连和完整事件处理说明。静态审查限制分数不超过10。
触发词、目标用户和实时语音场景定义较清楚,覆盖 .NET、WebSocket、VAD、函数调用和音频配置;但未声明不适用边界、输入输出契约或浏览器/平台限制,也没有中文语音和中国大陆网络可达性说明。核心服务依赖 Azure 外部服务,区域可用性未验证,因此扣分。
结构包含安装、环境变量、认证、工作流、类型参考、最佳实践、错误处理、音频配置和参考链接;MIT、作者和版本元数据清晰。但缺少变更记录、维护责任与更新路径、兼容性矩阵、FAQ、故障排查、版本锁定和已知限制,且“当前版本”没有附证据。
文档可帮助用户搭建基本 Voice Live .NET 会话,并包含可直接改造的代码片段;但示例未形成完整可运行应用,音频采集播放、配置验证、重连、取消、并发、函数参数校验和生产部署仍需较多补充,实际 SDK 兼容性也未由文件内执行证据确认。静态审查限制分数不超过7。
技能列出 NuGet、API、GitHub 和 Quickstart 参考,并且仓库提供通用 CI、评估工作流和测试代码;但给定材料没有该技能专属测试套件、成功运行结果或第三方执行证据,关键 SDK 断言无法在静态阅读中独立复现。静态审查限制分数不超过5。
- 不要将示例直接视为已验证可编译的生产代码;应锁定并核对 Azure.AI.VoiceLive 版本、模型部署名、端点格式和 API 类型。
- 在启用函数调用或外部服务前,应增加参数校验、权限控制、用户确认、超时、审计和失败恢复,并避免记录原始音频、密钥或敏感对话。
- 使用前应验证 Azure Voice Live 在目标区域及中国大陆网络环境中的服务可达性、合规性和数据驻留要求。
它能做什么 & 适用场景
该技能面向使用 Azure.AI.VoiceLive SDK 的 .NET 开发者。它指导你通过 WebSocket 创建 VoiceLiveSession,配置语音、音频格式、语音活动检测和文本/音频模态。内容涵盖 Microsoft Entra 凭据与 API 密钥认证、事件流处理、用户消息、音频发送和函数调用。适合构建语音助手、实时语音对话和语音聊天机器人,但需要 Azure Voice Live 端点、模型部署以及相应的 Azure 权限。
提供 Azure.AI.VoiceLive、Azure.Identity 和 NAudio 的安装命令;说明如何配置端点、模型、语音和认证环境变量;展示如何创建 VoiceLiveClient、启动并配置 VoiceLiveSession;处理音频增量、文本增量、函数调用、错误和响应完成事件;发送用户消息、启动响应、传输音频,并返回函数调用结果。
- 需要在 .NET 中构建实时语音助手的 Azure 开发者,可用它配置双向 WebSocket 会话和语音回复。
- 开发语音到语音对话应用的团队,可用它处理 PCM16 音频、文本与音频响应流。
- 需要让语音助手调用天气等外部服务的开发者,可参考函数定义、参数解析和函数结果回传流程。
- 正在实现自然轮次检测的 .NET 开发者,可使用 AzureSemanticVadTurnDetection 配置阈值、前置填充和静默时长。
优缺点一览
- 针对 Azure.AI.VoiceLive .NET SDK,提供从安装、认证到事件循环的完整基础流程。
- 覆盖双向 WebSocket 会话、实时音频、文本流和函数调用。
- 包含 DefaultAzureCredential、语音选择、语音活动检测和错误处理示例。
- 明确列出稳定版 v1.0.0 与预览版 v1.1.0-beta.1。
- 仅覆盖 .NET,不适用于 Python、TypeScript、Java 或 Rust 项目。
- 需要 Azure Voice Live 端点和模型部署;成本与配额信息未在源材料中说明。
- 音频采集和播放依赖 NAudio 或其他音频库,但未提供完整音频设备实现。
- 源材料未展示该单项技能的独立测试结果。
如何安装
运行 npx skills add microsoft/skills,在安装向导中选择 azure-ai-voicelive-dotnet。该技能安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。在 .NET 项目中安装依赖:dotnet add package Azure.AI.VoiceLive、dotnet add package Azure.Identity,如需音频采集或播放,再安装 dotnet add package NAudio。
如何使用
在支持 Agent Skills 的编码 Agent 中提出包含 “voice live” 或 “real-time voice” 的 .NET 开发请求。按技能示例创建 VoiceLiveClient,启动 VoiceLiveSession,配置模型、语音、模态和音频格式,然后通过 GetUpdatesAsync() 处理音频、文本、函数调用和错误事件。使用 Entra 认证时为资源分配 Cognitive Services User 角色;使用 API 密钥时设置相应密钥。
对比同类
与 Microsoft.CognitiveServices.Speech 相比,该技能聚焦 Azure.AI.VoiceLive 的实时双向语音和语音到语音交互;Speech SDK 在源材料中被列为语音转文本和文本转语音用途。NAudio 是用于音频采集与播放的辅助库,不是同类语音 AI SDK。