認識結果を取得できるタイミング
ある音声データを例にクライアントアプリケーションが音声認識の結果を取得できるタイミングを説明します。ここに、50 秒の音声データがあり、この音声の中で実際に発話があるのは、「10 ~ 20 秒」と「30 ~ 40 秒」だけだとします。この場合、この音声データの中には「2 個の発話区間」があると言います。
0 10 20 30 40 50
| | | | | |
|-----------|#######|-----------|#######|-----------|
| | | | | |
- は無音を表し、# は発話を表すとします。
HTTP 音声認識 API の場合
50 秒すべての音声データの送信を完了させない限り、確定した認識結果を得ることができません。最後にまとめて、2 個の発話区間の認識結果を得ることになります。
注記
受け取る JSON の中では、各発話区間の認識結果の区別はありません。各単語の時間情報は含まれています。
WebSocket 音声認識 API の場合
50 秒すべての音声データの送信を完了させなくても、1 個目の発話区間の最後である 20 秒までの音声データの送信が終われば、1 個目の発話区間の認識結果が得られることになります。また、2 個目の発話区間の最後である 40 秒までの音声データの送信が終われば、2 個目の発話区間の認識結果が返されてくることになります。
認識途中結果の通知について
WebSocket 音声認識 API の場合
発話区間のデータ送信途中でも、認識途中結果が次々と通知されてきます。認識途中結果の通知を何度か受け取ってから認識確定結果を受け取る、という流れが、発話区間の数だけ繰り返されます。尚、認識途中結果はあくまでも未確定の途中情報であり、認識確定結果では内容が変化している場合があります。
HTTP 音声認識 API の場合
認識途中結果を受け取ることはできません。1 回の音声データのアップロードについての結果通知はあくまでも 1 回です。