如何通过Python使用批转录API

如何通过Python使用批转录API,python,azure,azure-speech,Python,Azure,Azure Speech,我已经创建了一个Azure批量转录服务,它将从Azure blob存储中获取音频文件作为输入,并与我共享语音到文本 我能够通过网站实现上述功能,成功运行的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>"

我已经创建了一个Azure批量转录服务,它将从Azure blob存储中获取音频文件作为输入,并与我共享语音到文本

我能够通过网站实现上述功能,成功运行的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\" }}"
curl-X POST”https://eastus.cris.ai/api/speechtotext/v2.0/transcriptions“-H”接受:应用程序/json“-H”Ocp Apim订阅密钥:“-H”授权:“-H”内容类型:应用程序/json“-d”{“recordingsUrl\”:\”,\“models\:[],\“locale\”:\“en US\”,“name\”:\“\”,“description\”:\“\”,“properties\:{”亵渎过滤模式\“:\“蒙面\”,“标点模式\:\“指示自动\”}”
但是,如果我试图通过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)
导入请求
url=”https://eastus.cris.ai/api/speechtotext/v2.0/transcriptions"

headers={'accept':'application/json','Ocp-Apim-Subscription-Key':'此API需要json类型的有效负载

您的代码未发送序列化JSON类型

所以服务器响应消息意味着有效负载类型不匹配

它只发送python字典类型的有效负载,而不是JSON

它需要将数据有效负载转换为序列化JSON格式

1.导入json模块

import requests, json
2.使用
json.dumps(data)
data
有效负载更改为
json

r =requests.post(url,headers=headers,data=json.dumps(data), verify=False)