Project Oxford 说话人识别 - 无效的音频格式
Project Oxford Speaker Recognition- Invalid Audio Format
我一直在尝试使用 Project Oxford Speaker Recognition API
(https://dev.projectoxford.ai/docs/services/563309b6778daf02acc0a508/operations/5645c3271984551c84ec6797).
我已经成功地在我的麦克风上录制了声音并将其转换为所需的 WAV(PCM,16bit,16K,Mono)。
问题是当我尝试 post 此文件作为二进制流传输到 API 时 returns 出现无效音频格式错误消息。
网站上的演示接受了相同的文件(https://www.projectoxford.ai/demo/SPID)。
我正在使用 python 2.7 和此代码。
import httplib
import urllib
import base64
import json
import codecs
headers = {
# Request headers
'Content-Type': 'application/octet-stream',
'Ocp-Apim-Subscription-Key': '{KEY}',
}
params = urllib.urlencode({
})
def enroll(audioId):
conn = httplib.HTTPSConnection('api.projectoxford.ai')
file = open('test.wav','rb')
body = file.read()
conn.request("POST", "/spid/v1.0/verificationProfiles/" + audioId +"/enroll?%s" % params, str(body), headers)
response = conn.getresponse()
data = response.read()
print data
conn.close()
return data
这是我得到的回复。
{
"error": {
"code": "BadRequest",
"message": "Invalid Audio Format"
}
}
如果有人可以指导我了解我所缺少的东西,请多多指教。我已经验证了音频文件的所有属性和 API 所需的要求,但没有成功。
感谢所有回答和评论。
我将此文件连同我在 ruby 中的测试程序一起发送到 Project oxford,它工作正常。我认为问题可能出在您发送的其他参数中。尝试将 'Content Type' header 更改为 'audio/wav; samplerate=1600' 这是我使用的 header。我还发送了一个 'Content Length' header 和文件的大小。我不确定是否需要 'Content Length',但包含它是一个很好的标准。
我一直在尝试使用 Project Oxford Speaker Recognition API (https://dev.projectoxford.ai/docs/services/563309b6778daf02acc0a508/operations/5645c3271984551c84ec6797).
我已经成功地在我的麦克风上录制了声音并将其转换为所需的 WAV(PCM,16bit,16K,Mono)。
问题是当我尝试 post 此文件作为二进制流传输到 API 时 returns 出现无效音频格式错误消息。
网站上的演示接受了相同的文件(https://www.projectoxford.ai/demo/SPID)。
我正在使用 python 2.7 和此代码。
import httplib
import urllib
import base64
import json
import codecs
headers = {
# Request headers
'Content-Type': 'application/octet-stream',
'Ocp-Apim-Subscription-Key': '{KEY}',
}
params = urllib.urlencode({
})
def enroll(audioId):
conn = httplib.HTTPSConnection('api.projectoxford.ai')
file = open('test.wav','rb')
body = file.read()
conn.request("POST", "/spid/v1.0/verificationProfiles/" + audioId +"/enroll?%s" % params, str(body), headers)
response = conn.getresponse()
data = response.read()
print data
conn.close()
return data
这是我得到的回复。
{
"error": {
"code": "BadRequest",
"message": "Invalid Audio Format"
}
}
如果有人可以指导我了解我所缺少的东西,请多多指教。我已经验证了音频文件的所有属性和 API 所需的要求,但没有成功。
感谢所有回答和评论。
我将此文件连同我在 ruby 中的测试程序一起发送到 Project oxford,它工作正常。我认为问题可能出在您发送的其他参数中。尝试将 'Content Type' header 更改为 'audio/wav; samplerate=1600' 这是我使用的 header。我还发送了一个 'Content Length' header 和文件的大小。我不确定是否需要 'Content Length',但包含它是一个很好的标准。