Как использовать API пакетной транскрипции через Python
Я создал службу пакетной транскрипции Azure, которая будет принимать аудиофайл из хранилища BLOB-объектов Azure в качестве входных данных и делиться со мной речью в текст.
Я могу достичь вышеизложенного, используя веб-сайт https://eastus.cris.ai/swagger/ui/index, успешно выполненная команда curl:
curl -X POST "https://eastus.cris.ai/api/speechtotext/v2.0/transcriptions" -H "accept: application/json" -H "Ocp-Apim-Subscription-Key: <my subscription key>" -H "Authorization: <my access token>" -H "Content-Type: application/json" -d "{ \"recordingsUrl\": \"<my azure blob audio file url>\", \"models\": [], \"locale\": \"en-US\", \"name\": \"<Some Name>\", \"description\": \"<Some Description>\", \"properties\": { \"ProfanityFilterMode\": \"Masked\", \"PunctuationMode\": \"DictatedAndAutomatic\" }}"
Однако, если я пытаюсь достичь того же программного с помощью Python, я получаю ошибку, как показано ниже:
Ответ [400] {"code":"InvalidPayload","message":"Не удалось найти действительный объект."}
Вот мой код:
import requests
url="https://eastus.cris.ai/api/speechtotext/v2.0/transcriptions"
headers={'accept' : 'application/json','Ocp-Apim-Subscription-Key ':'<my subscription key', 'Authorization' : '<my access token>','Content-Type': 'application/json'}
data={'recordingsUrl' : '<my azure blob audio file url>' ,"models": [], 'locale' : 'en-US', 'name' : '<Some Name>','description' : '<Some Description>','properties' : {'ProfanityFilterMode': 'Masked','PunctuationMode': 'DictatedAndAutomatic'}}
r =requests.post(url,headers=headers,data=data, verify=False)
print(r)
print(r.text)
Дайте мне знать, если в запросах я делаю какую-то ошибку
1 ответ
Для этого API требуются полезные данные типа JSON.
Ваш код не отправляет сериализованный тип JSON.
Таким образом, ответные сообщения сервера означают несоответствие типа полезных данных.
Это просто отправка полезных данных с типом словаря Python, а не JSON.
Необходимо преобразовать полезные данные в сериализованный формат JSON.
1. Импорт json модулей.
import requests, json
2.Изменение data
полезные нагрузки в json
с json.dumps(data)
,
r =requests.post(url,headers=headers,data=json.dumps(data), verify=False)