牛津项目扬声器识别无效音频表单

2024-09-29 23:31:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试使用ProjectOxford Speaker Recognition API (https://dev.projectoxford.ai/docs/services/563309b6778daf02acc0a508/operations/5645c3271984551c84ec6797)。在

我已经成功地在我的麦克风上录制了声音,并将其转换为所需的WAV(PCM,16bit,16K,Mono)。在

问题是当我试图将这个文件作为二进制流发布到API时,它返回一个无效的音频格式错误消息。在

网站上的演示程序接受相同的文件(https://www.projectoxford.ai/demo/SPID)。在

我将python2.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

这就是我得到的回应。在

^{pr2}$

如果有人能告诉我我缺少什么。我已经验证了音频文件的所有属性和API所需的要求,但没有运气。在

感谢所有的回答和意见。在


Tags: 文件httpsimportapidataparamsurllibconn
1条回答
网友
1楼 · 发布于 2024-09-29 23:31:40

我把这个文件和我用ruby编写的测试程序一起发送给了projectoxford,它可以正常工作。我想问题可能出在你发送的其他参数中。试着把你的“内容类型”标题改为“audio/wav;samplerate=1600”这是我使用的标题。我还发送了一个带有文件大小的“Content-Length”头。我不确定是否需要“内容长度”,但包含它是一个很好的标准。在

相关问题 更多 >

    热门问题