A イベントパケット
認識処理が完了し、認識結果が受容されたときに、サーバからクライアントに送信されます。
形式
タイプ JSON
A <result>
<result>には、以下のJSONが格納されています。
キー | キー | キー | 説明 |
results | 「発話区間の認識結果」の配列 | ||
confidence | 信頼度(0~1の値。 0:信頼度低, 1:信頼度高) | ||
starttime | 発話開始時間 (音声データの先頭が0) | ||
endtime | 発話終了時間 (音声データの先頭が0) | ||
tags | 未使用(空配列) | ||
rulename | 未使用(空文字) | ||
text | 認識結果テキスト | ||
tokens | 認識結果テキストの形態素の配列 | ||
written | 形態素(単語)の表記 | ||
confidence | 形態素の信頼度(認識結果の尤度) | ||
starttime | 形態素の開始時間 (音声データの先頭が0) | ||
endtime | 形態素の終了時間(音声データの先頭が0) | ||
spoken | 形態素の読み | ||
utteranceid | 認識結果情報ID *1 | ||
text | 「発話区間の認識結果」の全てを結合した全体の認識結果テキスト | ||
code | 結果を表す1文字のコード *2 JSONに含まれるcodeとmessage一覧を参照のこと。 | ||
message | エラー内容を表す文字列 *2 JSONに含まれるcodeとmessage一覧を参照のこと。 |
*1
認識結果情報IDは、WebSocket音声認識プロトコルの場合は、発話区間毎の認識結果情報に付与されたIDとなります。HTTP音声認識プロトコルの場合は、1セッションでアップロードされた(複数の発話区間を含む可能性のある)音声データ全体の認識結果情報に付与されたIDとなります。
*2
認識成功時は
body.code == “” かつ body.message == “” かつ body.text != “”
認識失敗時は
body.code != “” かつ body.message != “” かつ body.text == “”
となります。
JSONに含まれるcodeとmessage一覧
code | message | 説明 |
“+” | “received unsupported audio format” | サポート対象外の音声データ形式の音声データを受信 |
“-“ | “received illegal service authorization” | 不正なサービス認証キー文字列を受信 |
“!” | “failed to connect to recognizer server” | 音声認識サーバ内での通信に失敗(DSRM または DSRS への接続に失敗) |
“>” | “failed to send audio data to recognizer server” | 音声認識サーバ内での通信に失敗(DSRS への音声データの送信に失敗) |
“<“ | “failed to receive recognition result from recognizer server” | 音声認識サーバ内での通信に失敗(DSRS からの認識結果の受信に失敗) |
“#” | “received invalid recognition result from recognizer server” | 音声認識サーバ内での通信に失敗(DSRS から受信した認識結果の形式が不正) |
“$” | “timeout occurred while receiving audio data from client” | クライアントからの音声データ受信中に無通信タイムアウトが発生した |
“%” | “received too large audio data from client” | クライアントから受信した音声データバイト数が大きすぎる(WebSocket音声認識APIでは発生しない) |
“o” | “recognition result is rejected because confidence is below the threshold” | 認識結果全体の信頼度が信頼度しきい値を下回ったために認識に失敗 |
“b” | “recognition result is rejected because recognizer server is busy” | 音声認識サーバが混んでいるために認識に失敗 |
“x” | “recognition result is rejected because grammar files are not loaded” | 辞書が読み込まれていないために認識に失敗 |
“c” | “recognition result is rejected because the recognition process is cancelled” | 認識処理中断要求がなされたために認識に失敗 |
“t” | “recognition result is rejected because timeout occurred during recognition process” | 認識処理がタイムアウトするなどして認識処理が中断されたために認識に失敗 |
“?” | “recognition result is rejected because fatal error occurred in recognizer server” | 音声認識サーバで認識中に致命的エラーが発生したために認識に失敗 |
“s” | “recognition result is rejected because recognition process was not started before timeout occurred” | クライアントから受信した音声データが音声データキューに入れられてからある一定時間以内に認識処理が開始しなかったために認識失敗 |
“e” | “recognition result is rejected because recognition process was not finished before timeout occurred” | クライアントから受信した音声データが音声データキューに入れられてからある一定時間以内に認識処理が完了しなかったために認識失敗 |
“” | “” | 認識成功 |
レスポンス例
{ "results":[ {"tokens":[ {"written":"www", "confidence":1.00, "starttime":16020, "endtime":16916, "spoken":"\u3068\u308a\u3077\u308b\u3060\u3076\u308b" } ], "confidence":0.997, "starttime":15700, "endtime":17188, "tags":[], "rulename":"", "text":"www" } ], "utteranceid":"20191127/ja_ja-amivoicecloud-16k-user@016ead249db00a3011a68536-1127_225504", "text":"www", "code":"", "message":"" }