Alexa.Gadget.SpeechDataインターフェース
Alexa.Gadget.SpeechDataインターフェース
このインターフェースは、ガジェットのスピーチマークデータを送信します。スピーチマークは、ガジェットがスピーチと視覚エクスペリエンスを同期できるようにするメタデータです。このデータに基づいてガジェットが実行できるアクションの1例として、Alexaの読み上げ機能(TTS)のリップシンクがあります。
注: 各ディレクティブとイベントは、3つの個別の.protoファイル(ヘッダー、ペイロード、およびこの2つが結合されたファイル)がコンパイルされたものです。.protoファイルは、Alexa GadgetsサンプルコードGitHubリポジトリからダウンロードできます。このトピックでは、各.protoファイルのすべてのフィールドをまとめて説明します。
このインターフェースのサポート
このインターフェースをサポートするには、Capabilities
の配列に以下のエントリを含むDiscover.Response
イベントを使用して、EchoデバイスのDiscover
ディレクティブにガジェットから応答を返す必要があります。
{
"type": "AlexaInterface",
"interface": "Alexa.Gadget.SpeechData",
"version": "1.0",
"configurations": {
"supportedTypes": [
{
"name":"viseme"
}
]
}
}
ディレクティブ
このインターフェースには、以下に説明する1つのディレクティブ (Speechmarks
)が含まれます。
Speechmarksディレクティブ
このディレクティブは、ガジェットにスピーチマークデータを提供します。.protoファイルの記述は次のとおりです。
message SpeechmarksDirectiveProto {
Directive directive = 1;
message Directive {
alexaGadgetSpeechData.SpeechmarksDirectivePayloadProto payload = 2;
header.DirectiveHeaderProto header = 1;
}
}
message DirectiveHeaderProto {
string namespace = 1;
string name = 2;
string messageId = 3;
string dialogRequestId = 4;
}
message SpeechmarksDirectivePayloadProto {
repeated SpeechmarksData speechmarksData = 2;
message SpeechmarksData {
int32 startOffsetInMilliSeconds = 3;
string type = 2;
string value = 1;
}
int32 playerOffsetInMilliseconds = 1;
}
SpeechmarksDirectiveProto
このメッセージのフィールドは次のとおりです。
フィールド | 説明 | 型 |
---|---|---|
directive |
Speechmarks ディレクティブの全文が含まれます。 |
Directive |
Directive
このメッセージのフィールドは次のとおりです。
フィールド | 説明 | 型 |
---|---|---|
header |
このディレクティブのヘッダーが含まれます。 | DirectiveHeaderProto |
payload |
このディレクティブのペイロードが含まれます。 | SpeechmarksDirectivePayloadProto |
DirectiveHeaderProto
このメッセージのフィールドは次のとおりです。
フィールド | 説明 | 型 |
---|---|---|
namespace |
このディレクティブの名前空間で、Alexa.Gadget.SpeechData が入ります。 |
文字列 |
name |
このディレクティブの名前で、Speechmarks が入ります。 |
文字列 |
messageId |
このディレクティブのインスタンスを一意に定義するIDです。文字列は空の場合があります。 | 文字列 |
dialogRequestId |
このディレクティブをユーザーからの特定の音声対話に関連付ける一意のIDです。このフィールドは省略可能です。 | 文字列 |
SpeechmarksDirectivePayloadProto
このメッセージのフィールドは次のとおりです。
フィールド | 説明 | 型 |
---|---|---|
speechmarksData |
スピーチマークデータを表すオブジェクトです。データ型、値、オフセットを指定できます。 | SpeechmarksData |
playerOffsetInMilliseconds |
スピーチが現在ストリーミングされている位置(ミリ秒単位)です。 | int32 |
SpeechmarksData
このメッセージのフィールドは次のとおりです。
フィールド | 説明 | 型 |
---|---|---|
type |
このディレクティブに含まれるスピーチマークデータの型です。現在、利用可能な値は"VISEME" のみです。ビゼームは、発声に対応するの口の形です。 |
文字列 |
value |
スピーチマークの値です。 | 文字列 |
startOffsetInMilliseconds |
開始オフセットのvalue (ミリ秒単位)です。スピーチマークデータをAlexaのスピーチに同期させる手がかりとして、 startOffsetInMilliSeconds の値からplayerOffsetInMilliseconds の値を引いた数値を使用できます。
たとえば、 playerOffsetInMilliseconds が7000 で、以下のビゼームのスピーチマークデータをガジェットが受信しているとします。value : "t" , startOffsetInMilliSeconds : 3000 value : "a" , startOffsetInMilliSeconds : 5000 value : "p" , startOffsetInMilliSeconds : 9000 value : "e" , startOffsetInMilliSeconds : 11000 playerOffsetInMilliseconds の値が7000 のため、ガジェットは"p" の値から処理を開始し、それより前の値は無視する必要があります。playerOffsetInMilliseconds とstartOffsetInMilliSeconds の値が両方とも0の場合は、ガジェットはデータをすぐに処理する必要があります。
|
int32 |