You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

微控制器调用Whisper API遇Socket限制及请求错误排查

问题解决:Socket通信调用OpenAI Whisper API的参数适配与错误修复

问题背景

微控制器上运行Whisper本地模型速度过慢,计划改用OpenAI Whisper API,但现有SDK仅支持Socket通信,调用时返回「缺少file字段」的验证错误,而GPT-3.5-turbo API可正常调用。需解决两个核心问题:

  • 适配Socket通信调用Whisper API
  • 修复Whisper API请求参数错误

错误原因分析

Whisper音频转录/翻译API与GPT类API的请求规则存在本质差异:

  1. 请求格式要求不同:Whisper API必须使用multipart/form-data格式上传音频文件,而非GPT API的application/json格式
  2. 参数错误:
    • 错误使用audio字段传递音频,API必填字段为file
    • 额外添加了无效的type参数,该参数不属于Whisper API的合法参数
    • API URL存在多余斜杠(https://api.openai.com//v1/...),虽多数场景可自动兼容,但需修正为规范格式
    • 若需求是语音转录(同语言转文字),应使用/v1/audio/transcriptions接口而非translations(翻译接口)

解决方案与修正代码

适配后的Socket版本代码

## Socket版本(适配Whisper API)############################################################
import requests
import json
import os

#### API密钥
with open('OPENAI_API_KEY', 'rb') as f:
    OPENAI_API_KEY = json.load(f)['key'][0]

# 修正API URL:去掉多余斜杠,根据需求选择接口
# 转录(同语言转文字)用transcriptions,翻译(其他语言转英文)用translations
url = "https://api.openai.com/v1/audio/transcriptions"

# 代理
proxy = os.environ.get("HTTPS_PROXY")

# 请求头:无需指定Content-Type,requests会自动处理multipart/form-data格式
headers = {
    "Authorization": f"Bearer {OPENAI_API_KEY}"
}

# 构造multipart/form-data格式的请求体
files = {
    "file": ("sample.mp3", open("sample.mp3", "rb"), "audio/mpeg"),
    "model": (None, "whisper-1")
}

# 发送请求
response = requests.post(
    url=url,
    headers=headers,
    files=files,
    proxies={'https': proxy}
)

# 输出结果
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))

关键改动说明

  • 请求格式切换:放弃JSON格式,改用multipart/form-data通过files参数直接上传音频字节流,无需base64编码
  • 参数修正:
    • 用file字段传递音频文件,替换原错误的audio字段
    • 移除无效的type参数
    • 将model参数作为form-data的一部分传递
  • URL修正:去掉URL中的多余斜杠,确保接口地址规范
  • 请求头简化:无需手动指定Content-Type,requests库会自动生成正确的multipart/form-data头信息

验证说明

运行修正后的代码后,Whisper API将正常处理音频文件并返回结果,格式示例如下:

{
  "text": "这是音频中的文字内容示例"
}

内容的提问来源于stack exchange,提问作者mogmol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 03:05:49