?
サポート

SpeechSynthesizer インターフェース



概要

ユーザーが製品に質問やリクエストをすると、Alexaは音声応答を返す際にSpeechSynthesizerインターフェースが使用されます。たとえば、ユーザーがAlexaに「今のシアトルの天気は?」と質問すると、Alexa Voice Serviceから、Speakディレクティブとクライアントにバイナリオーディオ添付ファイルが返されます。クライアントは、このオーディオを処理し、再生します。このページでは、SpeechSynthesizerディレクティブおよびイベントについて説明します。

状態

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

PLAYING: Alexaが話しているとき、SpeechSynthesizerは「playing」状態となります。Alexaの音声再生が完了すると、SpeechSynthesizerは「finished」状態に遷移します。

FINISHED: Alexaの音声再生が完了すると、SpeechSynthesizerはSpeechFinishedイベントに続いて「finished」状態に遷移します。

Speakディレクティブ

このディレクティブは、Alexaからの音声応答が必要なときには必ず、AVSからクライアントに送信されます。Speakディレクティブは、主にRecognizeイベントなど、ユーザーリクエストへの応答として送信されます。また、実行されるアクションの前置きとしてSpeakディレクティブがクライアントに送信される場合もあります。たとえば、ユーザーがタイマーのセットをリクエストした場合、クライアントは、アラームのセットを指示するSetAlertディレクティブに加え、ユーザーにタイマーが正常にセットされたことを通知するSpeakディレクティブも受信します。

このディレクティブは、JSON形式のディレクティブとバイナリオーディオ添付ファイルで構成される、マルチパートメッセージとしてクライアントに送信されます。

サンプルメッセージ

{
    "directive": {
        "header": {
            "namespace": "SpeechSynthesizer",
            "name": "Speak",
            "messageId": "{{STRING}}",
            "dialogRequestId": "{{STRING}}"
        },
        "payload": {
            "url": "{{STRING}}",
            "format": "{{STRING}}",
            "token": "{{STRING}}"
        }
    }
}

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

Speakディレクティブには、マルチパートメッセージの一部として、対応するバイナリオーディオ添付ファイルが存在します。バイナリオーディオ添付ファイルの前には、以下のマルチパートヘッダーが含まれます。

Content-Type: application/octet-stream
Content-ID: {{Audio Item CID}}

{{BINARY AUDIO ATTACHMENT}}

ヘッダーのパラメーター

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

注: dialogRequestIdは、音声リクエストの応答としてのみ送信されます。dialogRequestId は、ダウンチャネルストリーム上のクライアントに送信されたディレクティブには含まれません
string

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

パラメーター 説明
url オーディオコンテンツの一意の識別子です。URLは常にプレフィックス「cid:」に続いて記述されます。
例: cid:
string
format 返されたオーディオの形式を示します。
有効な値は以下のとおりです。"AUDIO_MPEG"
string
token 現在のテキスト読み上げ(TTS)オブジェクトを表す参照トークンです。 string

SpeechStartedイベント

SpeechStartedイベントは、クライアントがSpeakディレクティブを処理して合成音声の再生を開始した後、AVSに対して送信される必要があります。

サンプルメッセージ

{
    "event": {
        "header": {
            "namespace": "SpeechSynthesizer",
            "name": "SpeechStarted",
            "messageId": "{{STRING}}"
        },
        "payload": {
            "token": "{{STRING}}"
        }
    }
}

ヘッダーのパラメーター

パラメーター 説明
messageId 特定のメッセージを表すのに使用される一意のID。 string

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

パラメーター 説明
token Speakディレクティブで提供される参照トークン。 string

SpeechFinishedイベント

SpeechFinishedイベントは、クライアントがSpeakディレクティブを処理して合成音声の再生を完了した後、AVSに対して送信される必要があります。

サンプルメッセージ

{
    "event": {
        "header": {
            "namespace": "SpeechSynthesizer",
            "name": "SpeechFinished",
            "messageId": "{{STRING}}"
        },
        "payload": {
            "token": "{{STRING}}"
        }
    }
}

ヘッダーのパラメーター

パラメーター 説明
messageId 特定のメッセージを表すのに使用される一意のID。 string

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

パラメーター 説明
token Speakディレクティブで提供される参照トークン。 string

その他のインターフェース

このドキュメントの最初に戻り、右側のサイドバーから、その他のインターフェースを参照してください。

リソース