将分块音频发送到 Wit.ai
Sending Chunked Audio to Wit.ai
我正在尝试使用 Wit.ai 语音识别。我已经成功地将一个 wave 文件发送到网站以转换为文本,但现在我试图以块的形式发送它以减少延迟,但每当我尝试这样做时它都会给我错误
"content-type-mismatch"
尽管我仍在发送 wav 文件,就像我说的那样我在 headers。有人可以看看我的代码并告诉我我做错了什么吗?我很感激。我正在使用 python 请求库
commandPath = "Command.wav"
#Headers for http request
headers = {"authorization": "Bearer " + TOKEN,
"Content-Type": "audio/wav",
"Transfer-encoding": "chunked"}
#open Audio file to send
audioFile = open(commandPath, "rb")
def gen():
#Keep getting audio until it has all been read
while audioFile.read(2048) != "":
yield audioFile.read(2048)
print("Finished")
r = requests.post(ENDPOINT, headers=headers, data=gen())
print(r.text)
我想问题是您在每个循环中调用 audioFile.read(2048)
两次,忽略(并丢弃)第一次调用的结果。
第一个块(您丢弃的)包含 header 信息,因此永远不会到达服务器,服务器理所当然地抱怨。
我正在尝试使用 Wit.ai 语音识别。我已经成功地将一个 wave 文件发送到网站以转换为文本,但现在我试图以块的形式发送它以减少延迟,但每当我尝试这样做时它都会给我错误
"content-type-mismatch"
尽管我仍在发送 wav 文件,就像我说的那样我在 headers。有人可以看看我的代码并告诉我我做错了什么吗?我很感激。我正在使用 python 请求库
commandPath = "Command.wav"
#Headers for http request
headers = {"authorization": "Bearer " + TOKEN,
"Content-Type": "audio/wav",
"Transfer-encoding": "chunked"}
#open Audio file to send
audioFile = open(commandPath, "rb")
def gen():
#Keep getting audio until it has all been read
while audioFile.read(2048) != "":
yield audioFile.read(2048)
print("Finished")
r = requests.post(ENDPOINT, headers=headers, data=gen())
print(r.text)
我想问题是您在每个循环中调用 audioFile.read(2048)
两次,忽略(并丢弃)第一次调用的结果。
第一个块(您丢弃的)包含 header 信息,因此永远不会到达服务器,服务器理所当然地抱怨。