我正在尝试在 Android 中使用 Whisper API,但我遇到了请求代码始终返回 400 错误的问题。 首先,由于它在使用 Postman 时工作正常,我相信问题与密钥或内容标头值无关。 因此,根据我目前的假设,我认为使用 okhttp3 可能会出错。
下面是我的Android代码。
public void requestWhisper(String file, Callback callback) {
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("audio/mpeg");
File audioFile = new File(file);
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("model", "whisper-1")
.addFormDataPart("file", audioFile.getName(),
RequestBody.create(audioFile, mediaType))
.build();
Request request = new Request.Builder()
.url(whisper_api)
.post(requestBody)
.addHeader("Authorization", "Bearer " + key)
.addHeader("Content-Type", "multipart/form-data")
.build();
client.newCall(request).enqueue(new okhttp3.Callback() {
@Override
public void onResponse(@NonNull Call call, @NonNull okhttp3.Response response) throws IOException {
if (response.isSuccessful()) {
String result = response.body().string();
callback.onCallback(result);
} else {
callback.onCallback("Error: " + response.message());
}
}
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
callback.onCallback("Error: " + e.getMessage());
}
});
}
下面是回应。
Response{protocol=h2, code=400, message=, url=https://api.openai.com/v1/audio/transcriptions}
我目前正面临障碍。如果您能提供任何建议或意见,我将不胜感激。
除了上面提到的代码之外,这是我尝试的另一段代码。
OkHttpClient client = new OkHttpClient().newBuilder().build();
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("model","whisper-1")
.addFormDataPart("file","VOICE_FILE.mp3",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("FILE_PATH")))
.build();
Request request = new Request.Builder()
.url("https://api.openai.com/v1/audio/transcriptions")
.method("POST", body)
.addHeader("Authorization", "Bearer " + key)
.addHeader("Content-Type", "multipart/form-data")
.build();
Response response = client.newCall(request).execute();
然而,结果是一样的
欢迎来到 Stack Overflow!
尝试获取音频文件的绝对路径,并在向 Whisper API 发送 POST 请求时发送音频文件的内容
根据 python 和节点的示例请求 API Reference for Creating transcriptions 您需要获取音频文件的绝对路径,读取音频文件的内容,并将其分配给一个变量并将该变量用作
file
您对 OpenAI Whisper API 的 POST 请求的参数