Azure 短音频语音转文字 REST 技能
用 Python 和 HTTP 请求转写 60 秒以内的短音频。
文档要求通过环境变量读取密钥、避免硬编码,并说明订阅密钥与令牌认证;音频会发送到 Azure 端点这一数据流可从示例推断。但未说明音频隐私、用户确认、日志脱敏、最小权限、超时重试或失败后的恢复,因此扣分。
短音频同步、分块和异步路径均有示例,文件资源使用上下文管理器,且提供部分 HTTP 状态和 RecognitionStatus 处理。未见输入校验、请求超时、重试、统一异常策略或目标技能专属测试;认证说明还提到 DefaultAzureCredential,但没有对应实现,因此仅给静态可支持的中低分。
触发词、短音频上限及不适用场景定义清楚,并覆盖普通转写和发音评估;列出 zh-CN 等语言。未说明中国大陆网络可达性、区域限制、音频格式转换、输入输出契约或更多边界条件,因此扣分。
结构按前置条件、安装、认证、示例、限制、错误处理和参考资料组织,含 MIT、作者和版本元数据。缺少 changelog、维护责任和明确更新路径,也缺少依赖版本锁定、FAQ、测试说明及 endpoint/key 选择的完整配置说明,因此扣分。
提供可直接改用的 requests/aiohttp 转写和发音评估代码,覆盖简单及详细响应。代码仍需用户补充资源、凭据、格式处理和生产级网络控制;没有该技能专属的可验证输出或对替代方案成本收益的证据,因此未超过静态上限并扣分。
示例、响应 JSON、参数表和官方文档链接使关键主张具备一定可审计性;但提交材料未提供该技能专属测试、CI 覆盖或第三方执行结果,仓库测试与评估基础设施不能证明此路径已复现,因此只给有限分数。
- 示例将音频上传到 Azure 服务,未给出隐私、数据保留、用户确认或敏感语音处理指引。
- 示例未设置 requests/aiohttp 超时、重试或网络故障恢复;生产环境需补充这些控制。
- 文档声称支持 DefaultAzureCredential,但认证示例实际使用订阅密钥换取令牌,存在实现与说明不完全一致。
- 未验证中国大陆网络对 Azure Speech 区域端点的可达性,使用前应确认区域和网络条件。
- 分块传输被标为推荐方案,但未提供服务兼容性、代理行为或性能验证证据。
它能做什么 & 适用场景
该技能指导 Python 开发者通过 Azure Speech to Text REST API 转写最长 60 秒的短音频,无需 Speech SDK。内容涵盖 WAV PCM 和 OGG OPUS 音频、简单或详细响应、分块传输、订阅密钥与令牌认证,以及同步和异步请求。它适合一次性最终结果,不适合实时流式、长音频、批量转写、语音翻译或自定义语音模型。该技能属于 Microsoft/skills 仓库的 Python 技能集合,该集合包含 190 个技能并处于持续开发状态。
读取本地音频文件,通过 requests 或 aiohttp 向 Azure Speech REST 端点发送 HTTP 请求,使用语言、响应格式和 profanity 参数控制识别,并返回 JSON 转写结果。它展示简单格式的 DisplayText,以及详细格式中的置信度、显示文本、词法文本和 ITN 字段;也提供分块上传、订阅密钥认证和 Bearer 令牌认证示例。
- Python 开发者需要把不超过 60 秒的 WAV 录音转成最终文本,并希望直接使用 HTTP 请求。
- 应用需要处理 16 kHz 单声道 WAV 或 OGG OPUS 短音频,而不想引入 Speech SDK。
- 开发者需要详细识别结果,包括候选文本和置信度分数。
- 异步 Python 服务需要通过 aiohttp 转写上传的短音频。
- 开发者希望使用分块传输降低短音频请求的延迟。
优缺点一览
- 不需要 Speech SDK,直接使用 HTTP 请求。
- 同时提供同步、异步、分块传输和两种认证方式。
- 覆盖音频格式、响应格式、语言参数、亵渎内容处理和错误状态。
- 明确规定文件和 HTTP 资源使用上下文管理器。
- 音频通常最多 60 秒;发音评估最多 30 秒。
- 只返回最终结果,不提供部分或中间结果。
- 不适用于实时流式、批量转写、语音翻译或自定义语音模型。
- 需要 Azure Speech 资源和凭据;源材料未提供价格、配额或测试套件证据。
- 示例未说明完整的 aiohttp 安装命令。
如何安装
安装整个技能集合:运行 npx skills add microsoft/skills,然后在向导中选择所需技能。手动安装方式是克隆 https://github.com/microsoft/skills 后复制 .github/plugins/azure-sdk-python/skills/azure-speech-to-text-rest-py/。技能没有提供独立安装命令;Python 示例依赖 requests,异步示例还使用 aiohttp。
如何使用
先准备 Azure 订阅和 Speech 资源,并设置 AZURE_SPEECH_KEY、AZURE_SPEECH_REGION,或使用 AZURE_SPEECH_ENDPOINT。然后向编码代理提出例如“使用 azure-speech-to-text-rest-py,通过 REST API 转写这个不超过 60 秒的 WAV 文件,并返回详细结果”的请求。代码应读取本地音频、发送带有正确 Content-Type 和 language 参数的请求,并处理 HTTP 状态和 RecognitionStatus。
对比同类
如果需要超过 60 秒的音频、实时流式转写、部分结果、批量转写、语音翻译或自定义语音模型,源材料建议改用 Speech SDK 或 Batch Transcription API。对于本技能覆盖的短音频 REST 场景,Speech SDK 并非必需。