我正在将我录制的音频文件转换为一个blob对象,然后使用文件读取器阅读它,以发出打开ai whisper模型的帖子请求。它需要一个音频文件和模型名称,即whisper-1
我得到的错误是1 validation error for Request\nbody -> file\n field required (type=value_error.missing)
代码在下面
const handleUpload = () => {
const audioBlob = new Blob(audioChunks, { type: "audio/webm" });
const reader = new FileReader();
reader.readAsDataURL(audioBlob);
reader.onload = async () => {
const audioBase64 = await reader.result.split(",")[1];
const payload = {
audio: audioBase64,
model: "whisper-1",
};
const payloadString = JSON.stringify(payload);
fetch("https://api.openai.com/v1/audio/transcriptions", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${key}`,
},
body: payloadString,
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error(error));
};
};
2条答案
按热度按时间jogvjijk1#
一旦你得到
audio file
,把它传递给下面的函数,你就会得到转录。它使用
openai's transcription api
。我觉得你现在的问题是:
将
audio
替换为file
,作为payload object
中的key
。像这样:7gs2gvoe2#
https://api.openai.com/v1/audio/transcriptions- create transcription API采用multipart/form-data。
你可以使用fs模块或者使用form-data发送数据作为表单类型