私はEmotion APIサブスクリプションキーをピクチャに使用するだけですが、ビデオ用には使用しません。 API Testing Consoleを使用するのか、Pathon 2.7でEmotion APIを呼び出すのかには違いはありません。操作-場所を開くときに、私は応答ステータス202受理を取得する両方のケースでは、しかし、それはレスポンス202はAPIテストコンソールとPython 2.7でVideo用Microsoft Emotion APIを使用しているときに無効なサブスクリプションキー
サービスが受け入れられたことを意味することを言う感情APIの説明ページで
{ "error": { "code": "Unauthorized", "message": "Access denied due to invalid subscription key. Make sure you are subscribed to an API you are trying to call and provide the right key." } }
を語ります後でそのプロセスを開始します。 応答には、 "Operation-Location"ヘッダーがあります。クライアント側はさらに、このヘッダーで指定されたURLから操作ステータスを照会する必要があります。
次に、Response 401があります。これはまさに私のOperation-Locationに含まれています。私はなぜレスポンス401のようなレスポンス202が得られるのか分かりません。
私はインターネット上で見つけた少なくとも3つのコードバージョンを使ってPythonでAPIを呼び出そうとしています。 _url = 'https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognizeInVideo'
に_url = 'https://api.projectoxford.ai/emotion/v1.0/recognizeInVideo'
を変更しても解決しないことを Microsoft Emotion API for Python - upload video from memory のpython-アップロード・ビデオ・から・メモリ
import httplib
import urllib
import base64
import json
import pandas as pd
import numpy as np
import requests
_url = 'https://api.projectoxford.ai/emotion/v1.0/recognizeInVideo'
_key = '**********************'
_maxNumRetries = 10
paramsPost = urllib.urlencode({'outputStyle' : 'perFrame', \
'file':'C:/path/to/file/file.mp4'})
headersPost = dict()
headersPost['Ocp-Apim-Subscription-Key'] = _key
headersPost['content-type'] = 'application/octet-stream'
jsonGet = {}
headersGet = dict()
headersGet['Ocp-Apim-Subscription-Key'] = _key
paramsGet = urllib.urlencode({})
responsePost = requests.request('post', _url + "?" + paramsPost, \
data=open('C:/path/to/file/file.mp4','rb').read(), \
headers = headersPost)
print responsePost.status_code
videoIDLocation = responsePost.headers['Operation-Location']
print videoIDLocation
注:、私はここのコードを発見しました。
しかし、その後私は待っておきに半分の時間を実行します。
getResponse = requests.request('get', videoIDLocation, json = jsonGet,\
data = None, headers = headersGet, params = paramsGet)
print json.loads(getResponse.text)['status']
結果が時間「実行」されていて、私のビデオが長いだけで約半分の時間です。
私のテストコンソールの外観は次のとおりですTesting Console for Emotion API, Emotion Recognition in Video ここでは、インターネットで利用できる長さ約5分の別のビデオを使用しました。私は別の使用例を再び私に応答ステータス202受理を取得し、非常によく似たコードを使用しています
https://benheubl.github.io/data%20analysis/fr/
でビデオを発見し、操作-場所を開くときにサブスクリプションキーは、ここで
間違っていますコード:
import httplib
import urllib
import base64
import json
import pandas as pd
import numpy as np
import requests
# you have to sign up for an API key, which has some allowances. Check the
API documentation for further details:
_url = 'https://api.projectoxford.ai/emotion/v1.0/recognizeinvideo'
_key = '*********************' #Here you have to paste your
primary key
_maxNumRetries = 10
# URL direction: I hosted this on my domain
urlVideo = 'http://datacandy.co.uk/blog2.mp4'
# Computer Vision parameters
paramsPost = { 'outputStyle' : 'perFrame'}
headersPost = dict()
headersPost['Ocp-Apim-Subscription-Key'] = _key
headersPost['Content-Type'] = 'application/json'
jsonPost = { 'url': urlVideo }
responsePost = requests.request('post', _url, json = jsonPost, data = None,
headers = headersPost, params = paramsPost)
if responsePost.status_code == 202: # everything went well!
videoIDLocation = responsePost.headers['Operation-Location']
print videoIDLocation
は、インターネット上の別の例があり、それらはすべてが動作しますが、私のために働いたことはありませんそれらのいずれかを複製するように見えます。誰が何が間違っている可能性が考えられますか?
は「エモーションAPIのビデオ機能は、10月30日に退任するので、多分あなたはとにかくスクリーンショットにあなたの手順を変更する必要があります。」 - > これは悪いニュースです。あなたはこの情報をどこから入手したかを明確にしてください。 – trekma
これに公開情報が見つかりませんでした。 「Microsoft Cognitive Services Emotion API Preview」では、さまざまな感情を検出するために顔を分析することができます。顧客が最も価値のある機能やサービスを効率化するために、 **ビデオ内の人々の表情を認識し、その感情の要約を返すビデオ機能は、2017年10月30日に廃止される予定です** ** "もしあなたがそれに頼りすぎている場合は、直接サービスに連絡する必要があります。 – Phi89