0

Project Oxford Speaker Recognition API ( https://dev.projectoxford.ai/docs/services/563309b6778daf02acc0a508/operations/5645c3271984551c84ec6797 )を使用するために多くのことを試みてきました。

マイクで音声を録音して、必要な WAV (PCM、16bit、16K、Mono) に変換することに成功しました。

問題は、このファイルをバイナリ ストリームとして API に送信しようとすると、無効なオーディオ形式のエラー メッセージが返されることです。

同じファイルが Web サイト ( 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 に必要な要件を確認しましたが、うまくいきませんでした。

すべての回答とコメントをお待ちしております。

4

1 に答える 1

2

このファイルを Ruby で作成したテスト プログラムとともに Project oxford に送信したところ、正しく動作しました。問題は、送信している他のパラメーターにある可能性があると思います。「Content Type」ヘッダーを「audio/wav;」に変更してみてください。samplerate=1600' これは私が使用したヘッダーです。また、ファイルのサイズとともに「Content Length」ヘッダーも送信します。「コンテンツの長さ」が必要かどうかはわかりませんが、含めるのは良い基準です。

于 2016-03-27T18:19:10.320 に答える