Azure Voice Live TypeScript 技能
帮助开发者用 Azure 构建实时双向语音助手。
文档推荐 Entra 身份、生产环境托管身份并避免硬编码密钥,且说明了 WebSocket、麦克风和函数调用的数据流;但 API key、麦克风权限、语音数据留存/隐私、第三方函数副作用、用户确认、权限最小化与回滚机制未充分规定,因此扣分。
主文档和两个参考文件覆盖安装、会话、事件、音频、工具调用和错误处理,正常路径看起来较完整;但未提供该技能专属测试或可复现实例,存在版本/模型/API 兼容性不确定、浏览器音频实现边界及部分并发处理假设,因此按静态证据限制扣分。
名称、受众、Node.js/浏览器场景和触发词较明确,并覆盖实时语音、转写、工具调用等需求;但未明确不适用范围、中文语音能力、地区可用性或中国大陆网络可达性,且浏览器需要额外打包和权限配置,因此扣分。
采用主 SKILL.md 加 audio-streaming 和 function-calling 参考文件的渐进式结构,包含安装、环境变量、示例、错误处理、版本、MIT 许可和官方参考链接;但没有变更记录、明确维护责任/更新流程、已知限制清单或系统化 FAQ,且 beta 版本稳定性说明不足,因此扣分。
内容直接提供客户端初始化、事件订阅、音频转换、播放、函数调用和清理模式,理论上可减少手工查阅成本;但示例依赖未给出的实现、服务端部署与模型/区域配置,且静态审查无法确认代码可直接运行,仍可能需要较多适配,因此扣分。
包含包名、版本、类型名和官方资源链接,具备一定审计线索;但选定技能目录没有提交的测试、CI 覆盖或第三方执行结果,仓库级测试材料未证明该技能关键路径,因此只能给有限分数。
- 这是静态审查,未执行安装、编译、浏览器音频或 Azure 连接验证。
- 函数调用示例可触发天气查询、商品搜索或预约等外部副作用;应在应用层实施参数校验、权限控制、超时、审计和高影响操作的明确用户确认。
- 文档标注 beta 版本,模型、事件名、语音类型和区域可用性应在目标 SDK/服务版本中再次核对。
- 未说明中文语音质量、数据处理策略及中国大陆网络可达性,不能据此假设适合生产部署。
它能做什么 & 适用场景
该技能面向 Node.js 和现代浏览器中的 JavaScript/TypeScript 开发,指导使用 @azure/ai-voicelive 构建实时语音应用。它覆盖 WebSocket 会话、音频流、文本与音频事件、语音活动检测和函数调用。技能还说明 Microsoft Entra 凭据与 API 密钥认证、浏览器麦克风接入、错误处理及日志配置。适合需要语音对话体验的 Azure SDK 项目,但源材料未提供完整示例项目或费用信息。
指导代理安装 @azure/ai-voicelive 与认证依赖,配置 Azure Voice Live 端点和凭据,创建 VoiceLiveClient 与 VoiceLiveSession,建立双向 WebSocket 通信,发送音频,订阅连接、转写、文本、音频和函数调用事件,并生成响应处理代码。它还覆盖语音选择、模型、音频格式、VAD、错误类型、日志和浏览器麦克风权限。
- 使用 TypeScript 的 Node.js 开发者需要构建实时语音助手,并从麦克风发送音频、接收流式语音响应。
- 浏览器应用开发者需要通过麦克风实现语音聊天,并使用 InteractiveBrowserCredential 连接 Azure。
- 客服应用开发者需要配置文本和音频双模态、语音活动检测及自然语言指令。
- 需要让语音助手调用天气等业务函数的开发者,可使用工具定义和函数调用事件处理。
优缺点一览
- 覆盖 Node.js 和现代浏览器环境。
- 提供从安装、认证、会话配置到事件处理的完整 SDK 使用路径。
- 包含流式文本、流式音频、转写、VAD、函数调用和错误处理示例。
- 支持 Microsoft Entra 身份验证,也说明 API 密钥方式。
- 依赖当前标注为 `1.0.0-beta.3` 的预发布 SDK。
- 源材料没有提供完整的浏览器音频处理实现,只说明需要打包工具并留出实现位置。
- 需要 Azure Voice Live 端点和相应凭据;源材料未说明服务费用、配额或权限配置。
- 没有证据表明该专属技能拥有独立测试场景或测试覆盖。
如何安装
先将整个技能集合安装到代理目录:npx skills add microsoft/skills,在向导中选择所需技能。集合会安装到所选代理的目录,例如 GitHub Copilot 使用 .github/skills/。在项目依赖中运行:npm install @azure/ai-voicelive @azure/identity;TypeScript 用户另运行 npm install @types/node。
如何使用
在编码代理中提出类似“请用 VoiceLiveClient 在 Node.js 中构建一个实时双向语音助手,使用 DefaultAzureCredential、PCM16 音频和流式事件处理”的请求。生成的应用需要设置 AZURE_VOICELIVE_ENDPOINT,并按需设置 AZURE_VOICELIVE_API_KEY、AZURE_LOG_LEVEL 或 AZURE_TOKEN_CREDENTIALS。代码通常创建客户端和会话,调用 updateSession(),通过 subscribe() 处理事件,再用 sendAudio() 发送音频。
对比同类
认证方式可在推荐的 Microsoft Entra Token Credential 与 API Key 之间选择;服务端语音检测可选择基础 server_vad 或 Azure Semantic VAD 变体;部署环境可选择 Node.js 或现代浏览器。