質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

解決済

2回答

2486閲覧

Microsoft Oxfordの音声認識がうまくできない。

kuwako

総合スコア387

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

0クリップ

投稿2015/10/30 08:20

Microsoft Oxfordの音声認識APIを試してみたのですが、うまくいきませんでした。

AZUREへの初期設定等、以下を参考にさせていただきました。
Microsoft Project Oxford による音声合成・音声認識

まずは認証。

curl

1curl -X POST -H "Content-Type: application/x-www-form-urlencoded" https://oxford-speech.cloudapp.net//token/issueToken -d "grant_type=client_credentials&client_id={PrimaryKey}&client_secret={SecondaryKey}&scope=https://speech.platform.bing.com"

こうすると

curl

1{"access_token":"{access_token}","token_type":"jwt","expires_in":"600","scope":"https://speech.platform.bing.com”}

というjsonが返ってきて、access_tokenまでは取れるのですが、ここから

curl

1curl -X POST --dump-header - -H "Content-type: audio/wav; samplerate=16000" -H "Authorization: Bearer {access_token}" -H "X-Search-AppId: 07D3234E49CE426DAA29772419F436CA" -H "X-Search-ClientID: 1ECFAE91408841A480F00935DC390960" -H "User-Agent: OXFORD_TEST" "https://speech.platform.bing.com/recognize/query?Version=3.0&appID=D4D52672-91D7-4C74-8AD8-42B1D98141A5&instanceid=1ECFAE91408841A480F00935DC390960&requestid={サブスクリプションid}&format=json&locale=ja-JP&device.os=Windows7&scenarios=ulm" -d @test.wav

と投げると

HTTP/1.1 100 Continue HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/json Server: Microsoft-IIS/8.5 X-MSEdge-Ref: Ref A: 4F1FFB65AF5C48A8B32C62BA0D0A5B95 Ref B: 09059F33155EEDBE320E6C8DF24C310C Ref C: Fri Oct 30 00:50:04 2015 PST Date: Fri, 30 Oct 2015 07:50:04 GMT {"version":"3.0","header":{"status":"error","properties":{"requestid":"xxxxxxx-xxxxxx-xxxxxx-xxxxxx"}}}

のような結果が返ってきて、errorなのはわかるんですが、それ以上よくわかりません。

怪しそうなポイント
個人的に怪しいなと思っているポイントとしては、

2回目のcurlで投げている
X-Search-AppId:、X-Search-ClientID: について
冒頭で示したqiitaでは 「HTTPで使うときは双方適当なGUIDで構いません。」
らしいが、正しいのか

instanceid: についてqiitaでは「デバイス固有のID。X-Search-ClientIDと同じ意味?」とあるが正しいのか

requestid: についてqiitaでは「requestごとに単一の値」とあったが、これは「サブスクリプションid」という僕の解釈で正しいのか

公式ドキュメントももちろん調べたのですが、
例えばrequestidについてはA globally unique identifier generated by the client for this request. 程度にしか書いてないので、よくわかりませんでした。

何かご存知の方がいらっしゃったら教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Microsoftの指定GUIDフォーマットに従っていないので、怒られているだけではないでしょうか?

https://msdn.microsoft.com/ja-jp/library/97af8hh4(v=vs.110).aspx

これの、Dタイプのフォーマットにして送信してみたらどうなりますか?

投稿2015/10/30 08:48

S.Toyoda

総合スコア116

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuwako

2015/10/30 09:21

ありがとうございます。 変更してみましたが、変わりませんでした。
S.Toyoda

2015/10/31 07:23

取り急ぎ、こちらでも、やってみましたが、Oxfordで生成された音声ファイルだとダメみたいです。 こちらのURLのサンプルを利用したところ認識しました。 https://onedrive.live.com/?cid=96de2b286fec8cbd&id=96DE2B286FEC8CBD%21150 こちらで実行した内容は次の通りです。認証コードは置き換えてください。 curl -X POST --dump-header - -H "Content-type: audio/wav; samplerate=16000" -H "Authorization: Bearer 認証コード" -H "X-Search-AppId: D4D5267291D74C748AD842B1D98141A5" -H "X-Search-ClientID: 1ECFAE91408841A480F00935DC390960" -H "User-Agent: OXFORD_TEST" "https://speech.platform.bing.com/recognize/query?Version=3.0&appID=D4D52672-91D7-4C74-8AD8-42B1D98141A5&instanceid=1ECFAE91408841A480F00935DC390960&requestid=b2c95ede-97eb-4c88-81e4-80f32d6aee54&format=json&locale=en-US&device.os=Windows7&scenarios=ulm" --data-binary @helloworld.wav こんな結果が返ってきます。 HTTP/1.1 100 Continue HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/json Server: Microsoft-IIS/8.5 X-MSEdge-Ref: Ref A: A9995CD47FE540C8A55898E83CAA2759 Ref B: 21A99F572F40DA222D6F74AEB3C0B709 Ref C: Sat Oct 31 00:19:01 2015 PST Date: Sat, 31 Oct 2015 07:19:01 GMT {"version":"3.0","header":{"status":"success","scenario":"ulm","name":"hello world","lexical":"hello world","properties":{"requestid":"8594803f-ef2e-441d-b589-d4bfefe463a3","HIGHCONF":"1"}},"results":[{"scenario":"ulm","name":"hello world","lexical":"hello world","confidence":"0.9812479","properties":{"HIGHCONF":"1"}}]}
S.Toyoda

2015/10/31 07:32

もうちょっとやってみたら、Voiceファイルを生成するときにcurlを利用するなら、-oオプションでファイルに落とさないとダメみたいですね。 >(リダイレクト)を使うとダメですね。 あわせて、音声認識させるときも、--data-binary使わないと、改行コードあたりに悪さするみたいです。
kuwako

2015/11/02 12:42

ありがとうございます!実際やってみたところ、 curl: (56) SSLRead() return error -9806 curl: (6) Could not resolve host: test.wav とでました。調べてみたところ、 http://stackoverflow.com/questions/26461966/osx-10-10-curl-post-to-https-url-gives-sslread-error これと同じ症状だったので同じようにコマンドを試したのですが、同じく curl: (56) SSLRead() return error -9806 curl: (6) Could not resolve host: test_wav が表示されてしまいました。 この辺、僕のmacの問題かもしれないのですが...
guest

0

requestidについてですが、
Qiitaの記事の中でリンクが貼られているicoxfog417/pyoxfordを見てみると

python

1... 2 3params = { 4 "version": "3.0", 5 "appID": "D4D52672-91D7-4C74-8AD8-42B1D98141A5", 6 "instanceid": self.instance_id, 7 "requestid": self.__generate_id(), 8 "format": "json", 9 "locale": lang, 10 "device.os": platform.system() + " " + platform.release(), 11 "scenarios": scenarios, 12} 13 14... 15 16@classmethod 17def __generate_id(cls): 18 return str(uuid.uuid4()).replace("-", "")

上のような使われ方をしています。
リクエストごとにid単位で生成し、ハイフンをのぞいたものをセットしているようです。

投稿2015/10/30 08:49

sho_cs

総合スコア3541

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuwako

2015/10/30 09:21

ありがとうございます! 試してみたみましたが、状況は好転しませんでした...涙
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問