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

调用OpenAI Whisper模型POST请求报错:已传model仍提示需提供该参数

解决OpenAI Whisper转录请求中"必须提供model参数"的错误

问题原因

你的请求存在两个关键问题:

  1. 直接用普通JavaScript对象作为请求体,浏览器无法正确编码成multipart/form-data格式,导致接口无法识别model参数
  2. 手动设置了Content-Type: audio/webm,这会告诉接口请求体只是单一音频文件,而非包含表单字段的multipart请求

解决步骤

  • 改用原生FormData对象构建请求体,它会自动处理multipart格式的编码
  • 移除手动设置的Content-Type头,浏览器会自动生成带boundary的正确Content-Type
  • 确保API密钥有调用Whisper模型的权限

修正后的代码

const handleUpload = async () => {
    const audioBlob = new Blob(audioChunks, { type: "audio/webm" });
    // 初始化FormData对象
    const formData = new FormData();
    // 添加音频文件,第三个参数可选,是文件名
    formData.append("file", audioBlob, "recording.webm");
    // 添加model参数
    formData.append("model", "whisper-1");

    fetch("https://api.openai.com/v1/audio/transcriptions", {
        method: "POST",
        headers: {
            Authorization: `Bearer REDACTED_OPENAIKEY`,
            // 不要手动设置Content-Type,浏览器会自动处理
        },
        body: formData,
    })
    .then((response) => response.json())
    .then((data) => console.log(data))
    .catch((error) => console.error(error));
};

额外说明

OpenAI的音频转录接口要求必须用multipart/form-data格式提交,同时包含file(音频文件)和model(指定模型)两个字段。用普通对象作为请求体时,接口无法解析出model参数,所以才会报错提示缺少该参数。

内容的提问来源于stack exchange,提问作者manik-sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:37:26