Appearance
使用 Python 调用 Azure Speech to Text REST API 实现短语音转文字
解决在轻量级应用中集成语音识别的痛点:无需安装庞大的 Speech SDK,通过简单的 Python HTTP 请求即可将 60 秒以内的短音频文件转换为文本。
为什么需要这个技能
在许多自动化场景中,我们只需要处理简短的语音指令或短音频片段。安装和配置完整的 Azure Speech SDK 往往过于沉重,且增加了依赖管理的复杂性。
Azure 提供的 REST API 允许开发者直接通过标准的 HTTP 协议传输音频数据并获取转录结果。这种方式极大地简化了部署流程,尤其适用于 Serverless 函数(如 AWS Lambda, Azure Functions)或轻量级容器环境,使得语音转文字功能的集成变得像调用普通 API 一样简单。
适用场景
- 短指令识别:处理 60 秒以内的语音指令或用户短留言。
- 轻量级集成:在不希望引入复杂 SDK 的 Python 项目中实现语音转文字。
- 自动化流水线:在 CI/CD 或自动化脚本中对短音频样本进行批量转录。
- 低延迟原型开发:快速验证语音识别逻辑,无需配置复杂的开发环境。
核心工作流
- 环境准备:在 Azure Portal 中创建 Speech 资源,获取 API 密钥(Key)和区域(Region)。
- 音频预处理:确保音频文件符合要求(推荐使用 WAV 格式,PCM 编码,16kHz 采样率,单声道)。
- 构建 HTTP 请求:
- 设置
Ocp-Apim-Subscription-Key请求头进行身份验证。 - 正确配置
Content-Type(如audio/wav; codecs=audio/pcm; samplerate=16000)。 - 通过查询参数指定目标语言(如
zh-CN)和结果格式(simple或detailed)。
- 设置
- 数据传输与解析:使用
requests库发送 POST 请求,并解析返回的 JSON 数据中的DisplayText字段。
python
import os
import requests
def transcribe_audio(audio_file_path: str, language: str = "zh-CN") -> dict:
"""使用 REST API 转录短音频文件(最大 60 秒)"""
region = os.environ["AZURE_SPEECH_REGION"]
api_key = os.environ["AZURE_SPEECH_KEY"]
url = f"https://{region}.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1"
headers = {
"Ocp-Apim-Subscription-Key": api_key,
"Content-Type": "audio/wav; codecs=audio/pcm; samplerate=16000",
"Accept": "application/json"
}
params = {
"language": language,
"format": "detailed"
}
with open(audio_file_path, "rb") as audio_file:
response = requests.post(url, headers=headers, params=params, data=audio_file)
response.raise_for_status()
return response.json()
# 使用示例
result = transcribe_audio("test_audio.wav", "zh-CN")
print(result["DisplayText"])下载和安装
下载 azure-speech-to-text-rest-py 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐