Alexa.Gadget.SpeechDataインターフェース



Alexa.Gadget.SpeechDataインターフェース

このインターフェースは、ガジェットのスピーチマークデータを送信します。スピーチマークは、ガジェットがスピーチと視覚エクスペリエンスを同期できるようにするメタデータです。このデータに基づいてガジェットが実行できるアクションの1例として、Alexaの読み上げ機能(TTS)のリップシンクがあります。

このインターフェースのサポート

このインターフェースをサポートするには、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 開始オフセットの(ミリ秒単位)です。

スピーチマークデータをAlexaのスピーチに同期させる手がかりとして、startOffsetInMilliSecondsの値からplayerOffsetInMillisecondsの値を引いた数値を使用できます。

たとえば、playerOffsetInMilliseconds7000で、以下のビゼームのスピーチマークデータをガジェットが受信しているとします。

value: "t", startOffsetInMilliSeconds: 3000
value: "a", startOffsetInMilliSeconds: 5000
value: "p", startOffsetInMilliSeconds: 9000
value: "e", startOffsetInMilliSeconds: 11000

playerOffsetInMillisecondsの値が7000のため、ガジェットは"p"の値から処理を開始し、それより前の値は無視する必要があります。


playerOffsetInMillisecondsstartOffsetInMilliSecondsの値が両方とも0の場合は、ガジェットはデータをすぐに処理する必要があります。
int32