Я изо всех сил пытаюсь отправить аудиофайл для шепота для транскрипции. Моя среда - Expo (React Native) с бэкэнд PHP (я готов использовать другой бэкэнд, если это необходимо). Я получаю следующую ошибку от Whisper. < /P>
{“error”: {“code”: null, “message”: “Invalid file format. Supported formats: [‘flac’, ‘m4a’, ‘mp3’, ‘mp4’, ‘mpeg’, ‘mpga’, ‘oga’, ‘ogg’, ‘wav’, ‘webm’]”, “param”: null, “type”: “invalid_request_error”}, “usage”: {“seconds”: 0, “type”: “duration”}}
< /code>
Я пробовал 2 разных подхода и получаю одинаковую ошибку.const sendAudioToWhisper = async (uri: string) => {
try{
const response = await FileSystem.uploadAsync(
"https://api.openai.com/v1/audio/transcriptions",
uri,
{
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "multipart/form-data",
},
httpMethod: "POST",
uploadType: FileSystem.FileSystemUploadType.MULTIPART,
fieldName: "file",
mimeType: "audio/wav",
parameters: {
model: "whisper-1",
},
}
);
const parsedResponse = JSON.parse(response.body);
const transcribedText = parsedResponse.text;
console.log('response.body', response.body)
} catch (error) {
console.error("Whisper API Error:", error);
}
};
< /code>
с php и curl с использованием этого кода: < /p>
// Path to the audio file to transcribe
$audioFile = $upload_file; // Replace with the actual path to your audio file
// Create a CURL file object for the audio file
$cFile = curl_file_create($audioFile, mime_content_type($audioFile), basename($audioFile));
// OpenAI API endpoint for transcriptions
$apiEndpoint = 'https://api.openai.com/v1/audio/transcriptions';
// Initialize cURL session
$ch = curl_init();
// Set cURL options
curl_setopt($ch, CURLOPT_URL, $apiEndpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiKey,
'Content-Type: multipart/form-data',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'model' => 'whisper-1',
'file' => $cFile,
]);
// Execute cURL request
$response = curl_exec($ch);
// Check for cURL errors
if (curl_errno($ch)) {
echo json_encode(['cURL error:' => curl_error($ch)]);
} else {
// Process the API response
echo $response; // Assuming response is JSON with 'text' field
}
// Close cURL session
curl_close($ch);
< /code>
Аудио создается с помощью EXPO-AV с использованием этой конфигурации: < /p>
const recordingOptions: any = {
android: {
extension: ".wav",
outPutFormat: Audio.RecordingOptionsPresets.HIGH,
androidEncoder: Audio.AndroidAudioEncoder.AAC,
sampleRate: 44100,
numberOfChannels: 2,
bitRate: 128000,
},
ios: {
extension: ".wav",
audioQuality: Audio.IOSAudioQuality.HIGH,
sampleRate: 44100,
numberOfChannels: 2,
bitRate: 128000,
linearPCMBitDepth: 16,
linearPCMIsBigEndian: false,
linearPCMIsFloat: false,
},
};
< /code>
и этот код: < /p>
const { recording } = await Audio.Recording.createAsync(recordingOptions);
< /code>
Тестирование было только на Android. Я пробовал разные форматы звука (WAV, M4A и MP3). Я подтвердил, что файл WAV работает, то есть я могу воспроизвести его обратно. Я подтвердил, что аудиофайл правильно загружен в бэкэнд PHP. Может быть, это связано с параметрами, с которыми создается аудиофайл? < /P>
Любые предложения приветствуются.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... php-curl-b
Отправка аудиофайла непосредственно для шепота с помощью React Native или с помощью PHP/Curl Backend приводит к ошибке « ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Получение ошибки CORS при отправке запроса в Backend API. (TSX Frontend) (JS Backend)
Anonymous » » в форуме Javascript - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-