Я пытаюсь создать приложение на основе PHP, используя Bing Speech API.
Следуя примеру по этой ссылке (https://docs.microsoft.com/en-us/azure/cognitive-services/speech/getstarted/getstarted-curl), Я попытался адаптировать его в запросе PHP.
Получить токен доступа JWT было довольно просто, и мне удалось адаптировать необработанный запрос cURL в запрос cURL на основе PHP.
Однако распознавание аудиофайла оказывается головной болью.
Сначала я попробовал несколько способов преобразования кода в запрос cURL на основе PHP, ни один из которых не работает. Все они закончили тем, что выдавали ошибку «408 Запрос истек (> 14000 мс)». Я думал, что это как-то связано с моим сценарием PHP. Однако дальнейшие тесты с использованием примера URL (очевидно, с заменой на правильные идентификаторы и все) также дали мне ту же ошибку «408 Request timed out (> 14000 ms)».
Я пытался искать ответы в Интернете, но безуспешно. Была эта ссылка (408 Тайм-аут запроса Microsoft Speech to Text), но это, кажется, использует более старую версию API, которая, когда я пытался, приводила только к ошибке «403 Forbidden».
Прямой керл, который я пробовал, был:
curl -v -X POST «https://speech.platform.bing.com/speech/recognition/interactive/cognitiveservices/v1?language=en-US&локаль = EN-US&Формат = детальное&RequestID = d8d3c0ed-fca2-4418-B12a-9526ffefa729«-H» Авторизация: Bearer [_token_id_obscured_] ‘-H’ Тип содержимого: аудио / wav; кодек = «аудио / pcm»; частота дискретизации = 16000 ‘—data-binary @ [_ wav_filename_obscured_]
И я пробовал с несколькими файлами, каждый из которых длился менее 10 секунд. Файлы экспортируются с использованием Audacity, частота проекта установлена на 16000 Гц, формат файла — «16-битная PCM с подписью WAV (Microsoft)».
Любой вклад в это будет приветствоваться.
Чтобы избежать этой проблемы, вам также нужно добавить в команду следующий заголовок запроса:
-H 'Transfer-Encoding: chunked'
Других решений пока нет …