Я изо всех сил пытаюсь отправить аудиофайл для шепота для транскрипции. Моя среда - 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
Кемеровские программисты php общаются здесь
1750886955
Anonymous
Я изо всех сил пытаюсь отправить аудиофайл для шепота для транскрипции. Моя среда - 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>
Любые предложения приветствуются.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79679690/sending-an-audio-file-directly-to-whisper-with-react-native-or-a-with-php-curl-b[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия