【问题标题】:Microsoft Speech API with Python requests?带有 Python 请求的 Microsoft Speech API?
【发布时间】:2017-09-29 04:05:20
【问题描述】:

我正在尝试使用 Python 中的 requests 包来调用 Microsoft Bing 语音转录 API。当我使用Postman 时,我可以进行调用,但这需要手动选择要上传的文件(Postman 提供了一个 GUI 来选择文件),但我不确定这个文件选择如何映射到实际的 HTTP 请求(以及 Python requests 请求的扩展)。 Postman 可以将其内部查询转换为代码,根据 Postman 的说法,它发出的 http 请求是:

POST /recognize?scenarios=smd&appid=[REDACTED]&locale=en-US&device.os=wp7&version=3.0&format=json&form=BCSSTT&instanceid=[REDACTED]&requestid=[REDACTED] HTTP/1.1
Host: speech.platform.bing.com
Authorization: [REDACTED]
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: [REDACTED]

undefined

如果通过 Python requests 库发出的等效请求将是:

import requests

url = "https://speech.platform.bing.com/recognize"

querystring = {"scenarios":"smd","appid":[REDACTED],"locale":"en-US","device.os":"wp7","version":"3.0","format":"json","form":"BCSSTT","instanceid":[REDACTED],"requestid":[REDACTED]}

headers = {
'authorization': [REDACTED],
'content-type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
'postman-token': [REDACTED]
}

response = requests.request("POST", url, headers=headers, params=querystring)

print(response.text)

但是请注意,在这两种情况下,生成的代码都不会真正传递要转录的音频文件(显然 Postman 不知道如何显示原始音频数据),所以我不确定如何将这些关键信息添加到请求。我假设在 HTTP 请求代码的情况下,音频流进入显示为“未定义”的位置。在 Python 请求命令中,从读取 documentation 看来,response = requests.request(...) 行应该替换为:

response = requests.request("POST", url, headers=headers, params=querystring, files={'file': open('PATH/TO/AUDIO/FILE', 'rb')})

但是当我运行这个查询时,我得到“请求超时(> 14000 毫秒)”。关于如何通过 Python 成功调用 Microsoft Speech API 的任何想法?任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: http-post python-requests postman microsoft-speech-api


    【解决方案1】:

    将此行设为您的发帖请求:

    r = requests.post(url, headers=headers, params=querystring, data=open('PATH/TO/WAV/FILE', 'rb').read())
    

    这应该可以解决问题。

    Microsoft Documentation中,音频文件二进制数据是POST请求的主体,必须使用请求库的data参数发送。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 2012-10-04
      • 2017-03-04
      • 2018-12-02
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      相关资源
      最近更新 更多