SpeechRecognizer インターフェース

    ユーザーの発話はすべてSpeechRecognizerを利用します。これは、Alexa Voice Service (AVS)のコアインターフェースです。Alexaがユーザーの発話をキャプチャしたり、追加の情報が必要な場合にユーザーに質問したりするためのディレクティブやイベントを提供します。

    また、クライアントは、このインターフェースを使ってAVSにAlexaとの対話がどのように開始されたか(ボタンの長押し、タップしてリリース、音声/ウェイクワードによる起動など)を伝え、製品に適した自動音声認識(ASR)プロファイルを選択することでAlexaが正確にユーザーの発話を理解して応答できるようにすることができます。

    バージョンによる変更点

    • ExpectSpeechinitiatorの型が、不透明な文字列からオブジェクトに変更されました。詳細は、ExpectSpeechを参照してください。この変更には下位互換性がありません。

    状態ダイアグラム

    以下のダイアグラムは、SpeechRecognizerコンポーネントによって制御される状態の変化を表しています。ボックスはSpeechRecognizerの状態、コネクターは状態の遷移を表します。

    SpeechRecognizerには以下の状態があります。

    IDLE:ユーザー発話のキャプチャを行う前、SpeechRecognizerはidle状態です。また、AVSとの音声対話が完了した後も、SpeechRecognizerはidle状態に戻る必要があります。これは、音声リクエストが正常に処理されたとき、またはExpectSpeechTimedOutイベントに指定された時間を過ぎたときに発生する可能性があります。

    さらに、SpeechRecognizerは、マルチターンの対話中にidle状態に戻ることもあります。その時点で、ユーザーからの追加の発話が必要な場合は、ユーザーが新規で対話を開始しなくてもidle状態からexpecting speech状態に戻ります。

    RECOGNIZING:ユーザーがクライアントとの対話を開始するとき、具体的には、キャプチャされたオーディオがAVSにストリーミングされたとき、SpeechRecognizerはidle状態からrecognizing stateに遷移する必要があります。SpeechRecognizerコンポーネントは、クライアントが音声の録音を停止する(またはストリーミングが完了する)までrecognizing状態を保ち、その時点でrecognizing状態からbusy状態に遷移します。

    BUSY:音声リクエストの処理中、SpeechRecognizerはbusy状態になります。コンポーネントがbusy状態を抜けるまで、別の音声リクエストを開始することはできません。busy状態からは、リクエストが正常に処理(完了)した場合にidle状態、Alexaがユーザーから追加の発話を必要とする場合はexpecting speech状態に、それぞれ遷移します。

    EXPECTING SPEECH:SpeechRecognizerは、ユーザーからの追加のオーディオ入力が必要な場合にexpecting speech状態になります。expecting speech状態からは、ユーザーの対話が発生するか、ユーザーに代わって対話が自動的に開始されたときにrecognizing state状態に遷移します。ユーザーの発話が指定したタイムアウト期間内に検出されなかった場合、idle状態に遷移する必要があります。

    SpeechRecognizerの状態ダイアグラム
    クリックして拡大

    機能API

    SpeechRecognizerインターフェースのバージョン2.0を使用するには、機能APIの呼び出し内で宣言する必要があります。詳細については、機能APIを参照してください。

    オブジェクトのサンプル

    {
        "type": "AlexaInterface",
        "interface": "SpeechRecognizer",
        "version": "2.0"
    }

    SpeechRecognizerのコンテキスト

    ウェイクワードが有効な場合、Alexaはすべてのクライアントから現在設定されているウェイクワードについてレポートされることを想定しています。

    コンテキストのレポートの詳細については、コンテキストの概要を参照してください。

    サンプルメッセージ

    
    {
        "header": {
            "namespace": "SpeechRecognizer",
            "name": "RecognizerState"
        },
        "payload": {
            "wakeword": "ALEXA"
        }
    }
    
    

    ペイロードのパラメーター

    パラメーター 説明
    wakeword 現在のウェイクワードを識別します。
    有効な値:"ALEXA"
    文字列

    Recognizeイベント

    Recognizeイベントは、ユーザー音声をAVSに送信し、その音声を1つ以上のディレクティブに翻訳するために使用します。このイベントは、マルチパートのメッセージとして送信する必要があります。このマルチパートのメッセージは、最初のパートにJSON形式のオブジェクト、2番目のパートに製品のマイクでキャプチャされたオーディオが格納されます。レイテンシーを低減するにはキャプチャしたオーディオをAVSにストリーミング(チャンクに分割して送信)することをお勧めします。この場合、ストリームにはチャンクあたり10ミリ秒のキャプチャオーディオ(320バイト)を含める必要があります。

    Alexaとの対話が開始されると、マイクは以下の条件に当てはまるまでオープンのままになります。

    • StopCaptureディレクティブを受信した
    • Alexaサービスによってストリームがクローズされた
    • ユーザーが手動でマイクをクローズした(ボタンの長押しなど)

    profileパラメーターとinitiatorオブジェクトは、AlexaにどのASRプロファイルを使うとキャプチャされたオーディオを最もよく理解できるか、およびAlexaとの対話がどのように開始されたかを伝えます。

    音声によって起動する製品の場合、クラウドベースのウェイクワード検証の要件に従う必要があります。

    AVSに送信されるすべてのキャプチャされたオーディオは、以下の仕様でエンコードする必要があります。

    • 16ビットのリニアPCM (LPCM16)
    • 16kHzのサンプルレート
    • シングルチャンネル
    • リトルエンディアンのバイトオーダー

    プロトコル固有の例については、HTTP/2リクエストの構成を参照してください。

    サンプルメッセージ

    {
        "context": [
            // This is an array of context objects that are used to communicate the
            // state of all client components to Alexa.See Context for details.
        ],
        "event": {
            "header": {
                "namespace": "SpeechRecognizer",
                "name": "Recognize",
                "messageId": "{{STRING}}",
                "dialogRequestId": "{{STRING}}"
            },
            "payload": {
                "profile": "{{STRING}}",
                "format": "{{STRING}}",
                "initiator": {
                    "type": "{{STRING}}",
                    "payload": {
                        "wakeWordIndices": {
                            "startIndexInSamples": {{LONG}},
                            "endIndexInSamples": {{LONG}}
                        },
                        "token": "{{STRING}}"
                    }
                }
            }
        }
    }
    

    バイナリオーディオ添付ファイル

    Recognizeイベントには、マルチパートメッセージの一部として対応するバイナリオーディオ添付ファイルが必要です。以下のヘッダーは、各バイナリオーディオ添付ファイルに必須です。

    Content-Disposition: form-data; name="audio"
    Content-Type: application/octet-stream
    
    {{BINARY AUDIO ATTACHMENT}}
    

    コンテキスト

    このイベントでは、製品がAlexaに対して、すべてのクライアントコンポーネントのステータスをコンテキストオブジェクトに格納して報告しなければならない。その他の情報については、コンテキストを参照してください。

    ヘッダーのパラメーター

    パラメーター 説明
    messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列
    dialogRequestId Alexaに送信されるRecognizeイベントに対して、クライアントが作成する必要のある一意のIDです。このパラメーターは、特定のRecognizeイベントへの応答として送信されるディレクティブの関連付けに使用する一意のIDです。 文字列

    ペイロードのパラメーター

    パラメーター 説明
    profile 製品に関連付けられた自動音声認識(ASR)プロファイルを識別します。AVSは、それぞれ異なる距離からのユーザー音声に最適化された3つのASRプロファイルをサポートしています。
    有効な値:CLOSE_TALKNEAR_FIELDFAR_FIELDです。
    文字列
    format キャプチャされたオーディオのフォーマットを識別します。
    有効な値:AUDIO_L16_RATE_16000_CHANNELS_1
    文字列
    initiator Alexaに対話がどのように開始されたかを伝えます。

    このオブジェクトは、対話がエンドユーザーによって開始された(ウェイクワード、タップ、長押し)場合に必須です。

    initiatorExpectSpeechディレクティブに存在する場合、後続のRecognizeイベントで返される必要があります。initiatorExpectSpeechディレクティブにない場合、後続のRecognizeイベントに含めるべきではありません
    オブジェクト
    initiator.type Alexaとの対話を開始するためにユーザーが行ったアクションを表します。
    有効な値:PRESS_AND_HOLDTAPWAKEWORDinitiator.typeExpectSpeechディレクティブで提供され、その文字列が後続のRecognizeイベントでinitiator.typeとして返される必要があります。
    文字列
    initiator.payload initiatorに関する情報を含みます。 オブジェクト
    initiator.payload.wakeWordIndices このオブジェクトは、initiator.typeWAKEWORDに設定されている場合には必須です。
    wakeWordIndices には、startIndexInSamplesendIndexInSamplesを含みます。その他の詳細については、クラウドベースのウェイクワード検証の要件を参照してください。
    オブジェクト
    initiator.payload.wakeWordIndices.startIndexInSamples オーディオストリーム内のウェイクワードが開始するインデックスを表します(サンプル数)。開始インデックスのウェイクワード検出との誤差は、50ミリ秒以内である必要があります。 long
    initiator.payload.wakeWordIndices.endIndexInSamples オーディオストリーム内のウェイクワードが終了するインデックスを表します(サンプル数)。終了インデックスと検出されたウェイクワード終了との誤差は、150ミリ秒以内である必要があります。 long
    initiator.payload.token 不透明な文字列です。この値は、先行するExpectSpeechディレクティブのペイロードに存在する場合にのみ必須です。 文字列

    プロファイル

    ASRプロファイルは、異なる製品、フォームファクター、音響環境、利用用途に合わせて調整されます。profileパラメーターの有効な値についての詳細を、以下の表に示します。

    最適な聞き取り距離
    CLOSE_TALK 0~2.5フィート(0~0.76m)
    NEAR_FIELD 0~5フィート(0~1.5m)
    FAR_FIELD 0~20+フィート(0~6.1m以上)

    initiator

    initiatorパラメーターはAVSにAlexaとの対話がどのように開始されたかを伝え、以下の2つのことを決定します。

    1. クラウドで発話の終了が検出されたときにStopCaptureをクライアントに送信するかどうか
    2. ストリームでクラウドベースのウェイクワード検証を実施するかどうか

    initiator は、各SpeechRecognizer.Recognizeイベントのペイロードに含まれる必要があります。有効な値は以下のとおりです。

    説明 サポートされるプロファイル(複数可) StopCaptureは有効か ウェイクワード検証は有効か ウェイクワードのインデックスは必要か
    PRESS_AND_HOLD ボタン(物理またはGUI)を押すことで開始し、離すことで終了するオーディオストリームです。 CLOSE_TALK N N N
    TAP ボタン(物理またはGUI)をタップして離すことで開始し、StopCaptureディレクティブを受信したときに終了するオーディオストリームです。 NEAR_FIELDFAR_FIELD Y N N
    WAKEWORD ウェイクワードの使用により開始し、StopCaptureディレクティブを受信したときに終了するオーディオストリームです。 NEAR_FIELDFAR_FIELD Y Y Y

    StopCaptureディレクティブ

    このディレクティブは、AVSがユーザーのインテントを特定したとき、または発話の終了が検出されたときにキャプチャを停止するようクライアントに指示します。このディレクティブを受信すると、クライアントは直ちにマイクをクローズし、ユーザー発話の聞き取りを停止する必要があります。

    サンプルメッセージ

    {
        "directive": {
            "header": {
                "namespace": "SpeechRecognizer",
                "name": "StopCapture",
                "messageId": "{{STRING}}",
                "dialogRequestId": "{{STRING}}"
            },
            "payload": {
            }
        }
    }
    

    ヘッダーのパラメーター

    パラメーター 説明
    messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列
    dialogRequestId 特定のRecognizeイベントの応答として送信されるディレクティブの関連付けに使用する一意のID 文字列

    ExpectSpeechディレクティブ

    ExpectSpeech は、Alexaがユーザーリクエストを満たすために追加の情報を必要としているときに送信されます。このディレクティブは、マイクをオープンしてユーザー発話のストリーミングを開始するようクライアントに指示します。指定したタイムアウト期間内にマイクがオープンされない場合、ExpectSpeechTimedOutイベントをクライアントからAVSに送信する必要があります。

    Alexaとのマルチターンの対話中、デバイスは、クライアントにユーザー発話の聞き取りを開始するよう指示するExpectSpeechディレクティブを少なくとも1つ受信します。ExpectSpeechディレクティブのペイロードにinitiatorオブジェクトが存在する場合、後続のRecognizeイベントでinitiatorオブジェクトとして返す必要があります。ペイロードにinitiatorがない場合、後続のRecognizeイベントにinitiatorを含めるべきではありません

    オーディオの優先順位付けを管理するルールの詳細は、対話モデルをご確認ください。

    サンプルメッセージ

    {
        "directive": {
            "header": {
                "namespace": "SpeechRecognizer",
                "name": "ExpectSpeech",
                "messageId": "{{STRING}}",
                "dialogRequestId": "{{STRING}}"
            },
            "payload": {
                "timeoutInMilliseconds": {{LONG}},
                "initiator": {
                    "type": "{{STRING}}",
                    "payload": {
                        "token": "{{STRING}}"
                    }
                }
            }
        }
    }
    

    ヘッダーのパラメーター

    パラメーター 説明
    messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列
    dialogRequestId 特定のRecognizeイベントの応答として送信されるディレクティブの関連付けに使用する一意のID 文字列

    ペイロードのパラメーター

    パラメーター 説明
    timeoutInMilliseconds クライアントがマイクのオープンとAVSへのユーザー発話のストリーミング開始をどのくらい待機するべきかをミリ秒で指定します。指定したタイムアウト期間内にマイクがオープンされない場合、ExpectSpeechTimedOutイベントを送信する必要があります。この動作の主な利用用途は、PRESS_AND_HOLDの実装環境です。 long
    initiator 対話に関する情報を含みます。このパラメーターが存在する場合、後続のRecognizeイベントでAlexaに返す必要があります。 オブジェクト
    initiator.type 不透明な文字列です。このパラメーターが存在する場合、後続のRecognizeイベントでAlexaに返す必要があります。 文字列
    initiator.payload initiatorに関する情報を含みます。 オブジェクト
    initiator.payload.token 不透明な文字列です。このパラメーターが存在する場合、後続のRecognizeイベントでAlexaに返す必要があります。 文字列

    ExpectSpeechTimedOutイベント

    このイベントは、ExpectSpeechディレクティブを受信したが、指定したタイムアウト期間内にユーザー発話を聞き取れなかった場合、AVSに送信する必要があります。

    サンプルメッセージ

    {
        "event": {
            "header": {
                "namespace": "SpeechRecognizer",
                "name": "ExpectSpeechTimedOut",
                "messageId": "{{STRING}}",
            },
            "payload": {
            }
        }
    }
    

    ヘッダーのパラメーター

    パラメーター 説明
    messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列

    ペイロードのパラメーター

    空のペイロードを送信する必要があります。

      ユーザーの発話はすべてSpeechRecognizerを利用します。これは、Alexa Voice Service (AVS)のコアインターフェースです。Alexaがユーザーの発話をキャプチャしたり、追加の情報が必要な場合にユーザーに質問したりするためのディレクティブやイベントを提供します。

      また、クライアントは、このインターフェースを使ってAVSにAlexaとの対話がどのように開始されたか(ボタンの長押し、タップしてリリース、音声/ウェイクワードによる起動など)を伝え、製品に適した自動音声認識(ASR)プロファイルを選択することでAlexaが正確にユーザーの発話を理解して応答できるようにすることができます。

      状態ダイアグラム

      以下のダイアグラムは、SpeechRecognizerコンポーネントによって制御される状態の変化を表しています。ボックスはSpeechRecognizerの状態、コネクターは状態の遷移を表します。

      SpeechRecognizerには以下の状態があります。

      IDLE:ユーザー発話のキャプチャを行う前、SpeechRecognizerはidle状態です。また、AVSとの音声対話が完了した後も、SpeechRecognizerはidle状態に戻る必要があります。これは、音声リクエストが正常に処理されたとき、またはExpectSpeechTimedOutイベントに指定された時間を過ぎたときに発生する可能性があります。

      さらに、SpeechRecognizerは、マルチターンの対話中にidle状態に戻ることもあります。その時点で、ユーザーからの追加の発話が必要な場合は、ユーザーが新規で対話を開始しなくてもidle状態からexpecting speech状態に戻ります。

      RECOGNIZING:ユーザーがクライアントとの対話を開始するとき、具体的には、キャプチャされたオーディオがAVSにストリーミングされたとき、SpeechRecognizerはidle状態からrecognizing stateに遷移する必要があります。SpeechRecognizerコンポーネントは、クライアントが音声の録音を停止する(またはストリーミングが完了する)までrecognizing状態を保ち、その時点でrecognizing状態からbusy状態に遷移します。

      BUSY:音声リクエストの処理中、SpeechRecognizerはbusy状態になります。コンポーネントがbusy状態を抜けるまで、別の音声リクエストを開始することはできません。busy状態からは、リクエストが正常に処理(完了)した場合にidle状態、Alexaがユーザーから追加の発話を必要とする場合はexpecting speech状態に、それぞれ遷移します。

      EXPECTING SPEECH:SpeechRecognizerは、ユーザーからの追加のオーディオ入力が必要な場合にexpecting speech状態になります。expecting speech状態からは、ユーザーの対話が発生するか、ユーザーに代わって対話が自動的に開始されたときにrecognizing state状態に遷移します。ユーザーの発話が指定したタイムアウト期間内に検出されなかった場合、idle状態に遷移する必要があります。

      SpeechRecognizerの状態ダイアグラム
      クリックして拡大

      機能API

      SpeechRecognizerインターフェースのバージョン1.0を使用するには、機能APIの呼び出し内で宣言する必要があります。詳細については、機能APIを参照してください。

      オブジェクトのサンプル

      {
          "type": "AlexaInterface",
          "interface": "SpeechRecognizer",
          "version": "1.0"
      }

      SpeechRecognizerのコンテキスト

      ウェイクワードが有効な場合、Alexaはすべてのクライアントから現在設定されているウェイクワードについてレポートされることを想定しています。

      コンテキストのレポートの詳細については、コンテキストの概要を参照してください。

      サンプルメッセージ

      
      {
          "header": {
              "namespace": "SpeechRecognizer",
              "name": "RecognizerState"
          },
          "payload": {
              "wakeword": "ALEXA"
          }
      }
      
      

      ペイロードのパラメーター

      パラメーター 説明
      wakeword 現在のウェイクワードを識別します。
      有効な値:"ALEXA"
      文字列

      Recognizeイベント

      Recognizeイベントは、ユーザー音声をAVSに送信し、その音声を1つ以上のディレクティブに翻訳するために使用します。このイベントは、マルチパートのメッセージとして送信する必要があります。このマルチパートのメッセージは、最初のパートにJSON形式のオブジェクト、2番めのパートに製品のマイクでキャプチャされたオーディオが格納されます。レイテンシーを低減するにはキャプチャしたオーディオをAVSにストリーミング(チャンクに分割して送信)することをお勧めします。この場合、ストリームにはチャンクあたり10ミリ秒のキャプチャオーディオ(320バイト)を含める必要があります。

      Alexaとの対話が開始されると、マイクは以下の条件に当てはまるまでオープンのままになります。

      • StopCaptureディレクティブを受信した
      • Alexaサービスによってストリームがクローズされた
      • ユーザーが手動でマイクをクローズした(ボタンの長押しなど)

      profileパラメーターとinitiatorオブジェクトは、AlexaにどのASRプロファイルを使うとキャプチャされたオーディオを最もよく理解できるか、およびAlexaとの対話がどのように開始されたかを伝えます。

      音声によって起動する製品の場合、クラウドベースのウェイクワード検証の要件に従う必要があります。

      AVSに送信されるすべてのキャプチャされたオーディオは、以下の仕様でエンコードする必要があります。

      • 16ビットのリニアPCM (LPCM16)
      • 16kHzのサンプルレート
      • シングルチャンネル
      • リトルエンディアンのバイトオーダー

      プロトコル固有の例については、HTTP/2リクエストの構成を参照してください。

      サンプルメッセージ

      {
          "context": [
              // This is an array of context objects that are used to communicate the
              // state of all client components to Alexa.See Context for details.
          ],
          "event": {
              "header": {
                  "namespace": "SpeechRecognizer",
                  "name": "Recognize",
                  "messageId": "{{STRING}}",
                  "dialogRequestId": "{{STRING}}"
              },
              "payload": {
                  "profile": "{{STRING}}",
                  "format": "{{STRING}}",
                  "initiator": {
                      "type": "{{STRING}}",
                      "payload": {
                          "wakeWordIndices": {
                              "startIndexInSamples": {{LONG}},
                              "endIndexInSamples": {{LONG}}
                          },
                          "token": "{{STRING}}"
                      }
                  }
              }
          }
      }
      

      バイナリオーディオ添付ファイル

      Recognizeイベントには、マルチパートメッセージの一部として対応するバイナリオーディオ添付ファイルが必要です。以下のヘッダーは、各バイナリオーディオ添付ファイルに必須です。

      Content-Disposition: form-data; name="audio"
      Content-Type: application/octet-stream
      
      {{BINARY AUDIO ATTACHMENT}}
      

      コンテキスト

      このイベントでは、製品がAlexaに対して、すべてのクライアントコンポーネントのステータスをコンテキストオブジェクトに格納して報告しなければならない。その他の情報については、コンテキストを参照してください。

      ヘッダーのパラメーター

      パラメーター 説明
      messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列
      dialogRequestId Alexaに送信されるRecognizeイベントに対して、クライアントが作成する必要のある一意のIDです。このパラメーターは、特定のRecognizeイベントへの応答として送信されるディレクティブの関連付けに使用する一意のIDです。 文字列

      ペイロードのパラメーター

      パラメーター 説明
      profile 製品に関連付けられた自動音声認識(ASR)プロファイルを識別します。AVSは、それぞれ異なる距離からのユーザー音声に最適化された3つのASRプロファイルをサポートしています。
      有効な値:CLOSE_TALKNEAR_FIELDFAR_FIELDです。
      文字列
      format キャプチャされたオーディオのフォーマットを識別します。
      有効な値:AUDIO_L16_RATE_16000_CHANNELS_1
      文字列
      initiator Alexaに対話がどのように開始されたかを伝えます。

      このオブジェクトは、対話がエンドユーザーによって開始された(ウェイクワード、タップ、長押し)場合に必須です。

      initiatorExpectSpeechディレクティブに存在する場合、後続のRecognizeイベントで返される必要があります。initiatorExpectSpeechディレクティブにない場合、後続のRecognizeイベントに含めるべきではありません
      オブジェクト
      initiator.type Alexaとの対話を開始するためにユーザーが行ったアクションを表します。
      有効な値:PRESS_AND_HOLDTAPWAKEWORDinitiator.typeExpectSpeechディレクティブで提供され、その文字列が後続のRecognizeイベントでinitiator.typeとして返される必要があります。
      文字列
      initiator.payload initiatorに関する情報を含みます。 オブジェクト
      initiator.payload.wakeWordIndices このオブジェクトは、initiator.typeWAKEWORDに設定されている場合には必須です。
      wakeWordIndices には、startIndexInSamplesendIndexInSamplesを含みます。その他の詳細については、クラウドベースのウェイクワード検証の要件を参照してください。
      オブジェクト
      initiator.payload.wakeWordIndices.startIndexInSamples オーディオストリーム内のウェイクワードが開始するインデックスを表します(サンプル数)。開始インデックスのウェイクワード検出との誤差は、50ミリ秒以内である必要があります。 long
      initiator.payload.wakeWordIndices.endIndexInSamples オーディオストリーム内のウェイクワードが終了するインデックスを表します(サンプル数)。終了インデックスと検出されたウェイクワード終了との誤差は、150ミリ秒以内である必要があります。 long
      initiator.payload.token 不透明な文字列です。この値は、先行するExpectSpeechディレクティブのペイロードに存在する場合にのみ必須です。 文字列

      プロファイル

      ASRプロファイルは、異なる製品、フォームファクター、音響環境、利用用途に合わせて調整されます。profileパラメーターの有効な値についての詳細を、以下の表に示します。

      最適な聞き取り距離
      CLOSE_TALK 0~2.5フィート(0~0.76m)
      NEAR_FIELD 0~5フィート(0~1.5m)
      FAR_FIELD 0~20+フィート(0~6.1m以上)

      initiator

      initiatorパラメーターはAVSにAlexaとの対話がどのように開始されたかを伝え、以下の2つのことを決定します。

      1. クラウドで発話の終了が検出されたときにStopCaptureをクライアントに送信するかどうか
      2. ストリームでクラウドベースのウェイクワード検証を実施するかどうか

      initiator は、各SpeechRecognizer.Recognizeイベントのペイロードに含まれる必要があります。有効な値は以下のとおりです。

      説明 サポートされるプロファイル(複数可) StopCaptureは有効か ウェイクワード検証は有効か ウェイクワードのインデックスは必要か
      PRESS_AND_HOLD ボタン(物理またはGUI)を押すことで開始し、離すことで終了するオーディオストリームです。 CLOSE_TALK N N N
      TAP ボタン(物理またはGUI)をタップして離すことで開始し、StopCaptureディレクティブを受信したときに終了するオーディオストリームです。 NEAR_FIELDFAR_FIELD Y N N
      WAKEWORD ウェイクワードの使用により開始し、StopCaptureディレクティブを受信したときに終了するオーディオストリーム NEAR_FIELDFAR_FIELD Y Y Y

      StopCaptureディレクティブ

      このディレクティブは、AVSがユーザーのインテントを特定したとき、または発話の終了が検出されたときにキャプチャを停止するようクライアントに指示します。このディレクティブを受信すると、クライアントは直ちにマイクをクローズし、ユーザー発話の聞き取りを停止する必要があります。

      サンプルメッセージ

      {
          "directive": {
              "header": {
                  "namespace": "SpeechRecognizer",
                  "name": "StopCapture",
                  "messageId": "{{STRING}}",
                  "dialogRequestId": "{{STRING}}"
              },
              "payload": {
              }
          }
      }
      

      ヘッダーのパラメーター

      パラメーター 説明
      messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列
      dialogRequestId 特定のRecognizeイベントの応答として送信されるディレクティブの関連付けに使用する一意のID 文字列

      ExpectSpeechディレクティブ

      ExpectSpeech は、Alexaがユーザーリクエストを満たすために追加の情報を必要としているときに送信されます。このディレクティブは、マイクをオープンしてユーザー発話のストリーミングを開始するようクライアントに指示します。指定したタイムアウト期間内にマイクがオープンされない場合、ExpectSpeechTimedOutイベントをクライアントからAVSに送信する必要があります。

      Alexaとのマルチターンの対話中、デバイスは、クライアントにユーザー発話の聞き取りを開始するよう指示するExpectSpeechディレクティブを少なくとも1つ受信します。ExpectSpeechディレクティブのペイロードにinitiatorオブジェクトが存在する場合、後続のRecognizeイベントでinitiatorオブジェクトとして返す必要があります。ペイロードにinitiatorがない場合、後続のRecognizeイベントにinitiatorを含めるべきではありません

      オーディオの優先順位付けを管理するルールの詳細は、対話モデルをご確認ください。

      サンプルメッセージ

      {
          "directive": {
              "header": {
                  "namespace": "SpeechRecognizer",
                  "name": "ExpectSpeech",
                  "messageId": "{{STRING}}",
                  "dialogRequestId": "{{STRING}}"
              },
              "payload": {
                  "timeoutInMilliseconds": {{LONG}},
                  "initiator": {{STRING}}
              }
          }
      }
      

      ヘッダーのパラメーター

      パラメーター 説明
      messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列
      dialogRequestId 特定のRecognizeイベントの応答として送信されるディレクティブの関連付けに使用する一意のID 文字列

      ペイロードのパラメーター

      パラメーター 説明
      timeoutInMilliseconds クライアントがマイクのオープンとAVSへのユーザー発話のストリーミング開始をどのくらい待機するべきかをミリ秒で指定します。指定したタイムアウト期間内にマイクがオープンされない場合、ExpectSpeechTimedOutイベントを送信する必要があります。この動作の主な利用用途は、PRESS_AND_HOLDの実装環境です。 long
      initiator 不透明な文字列です。このパラメーターが存在する場合、後続のRecognizeイベントでAlexaに返す必要があります。 文字列

      ExpectSpeechTimedOutイベント

      このイベントは、ExpectSpeechディレクティブを受信したが、指定したタイムアウト期間内にユーザー発話を聞き取れなかった場合、AVSに送信する必要があります。

      サンプルメッセージ

      {
          "event": {
              "header": {
                  "namespace": "SpeechRecognizer",
                  "name": "ExpectSpeechTimedOut",
                  "messageId": "{{STRING}}",
              },
              "payload": {
              }
          }
      }
      

      ヘッダーのパラメーター

      パラメーター 説明
      messageId 特定のメッセージを表すのに使用する一意のIDです。 文字列

      ペイロードのパラメーター

      空のペイロードを送信する必要があります。