2016-03-19 19 views
0

私は、プロジェクトOxford Speaker Recognition API (https://dev.projectoxford.ai/docs/services/563309b6778daf02acc0a508/operations/5645c3271984551c84ec6797)を使用することに多くの努力をしてきました。プロジェクトオックスフォードスピーカーの認識 - 無効なオーディオ形式

私のマイクに必要なWAV(PCM、16bit、16K、Mono)に変換することができました。

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

ウェブサイト(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が必要とする要件を確認しましたが、運がありません。

すべての回答とコメントをいただきありがとうございます。

+0

どのようにオーディオファイルを変換しましたか?私は変換で問題が発生しています..仕様のためにオーディオで動作することができません... –

+0

Nevermindはコンバータを見つけました(Bigasoft Total Video Convertor 5) –

答えて

2

私はこのファイルをRubyのテストプログラムでProject oxfordに送りました。これは正しく動作します。あなたが送っている他のパラメータに問題があると思います。 'Content Type'ヘッダーを 'audio/wav'に変更してみてください。 samplerate = 1600 'これは私が使ったヘッダーです。私はまた、ファイルのサイズで 'Content Length'ヘッダーを送信します。私は 'Content Length'が必要かどうかは分かりませんが、それを含めるのが良い標準です。

+0

ありがとうございました!私はそれが最終的に動作するようになった!あなたはそのヘッダーについてどのように知っていましたか?彼らのAPIドキュメントはそれを言っていません。 –

関連する問題