Bot Connector API を使用してメッセージに音声を追加する
音声対応チャネル用のボットを構築する場合は、ボットが読み上げるテキストを指定するメッセージを作成できます。 また、入力ヒントを指定して、ボットがユーザー入力を受け入れるか、期待するか、無視するかを示し、クライアントのマイクの状態に影響を与えることを試すこともできます。
クライアント アプリケーションが Direct Line Speech チャンネルを介してボットと通信できるように、そのボットを構成できます。
ボットが読み上げるテキストを指定する
音声対応チャネル上でボットが読み上げるテキストを指定するには、メッセージを表すActivity オブジェクト内の speak
プロパティを設定します。
speak
プロパティは、プレーンテキスト文字列か、または声、速さ、音量、発音、ピッチなどのボットの音声のさまざまな特性を制御できる XML ベースのマークアップ言語である音声合成マークアップ言語 (SSML) として書式設定された文字列のどちらかに設定できます。 チャネルがサポートしていない場合、メッセージはテキストとして配信されます。
次の要求では、表示されるテキストと読み上げられるテキストを指定し、ボットがユーザー入力を想定していることを示すメッセージを送信します。
SSML 形式を使用してプロパティをspeak
指定し、単語 "sure" を適度な強調で読み上げる必要があることを示します。 この要求の例で、Direct Line はベース URI を示しています。ご利用のボットによって発行される要求に対するベース URI は、これとは異なる場合があります。 ベース URI の設定の詳細については、API リファレンスに関する記事をご覧ください。
POST https://smba.trafficmanager.net/teams/v3/conversations/abcd1234/activities/5d5cdc723
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
"type": "message",
"from": {
"id": "12345678",
"name": "sender's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "recipient's name"
},
"text": "Are you sure that you want to cancel this transaction?",
"speak": "<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" xml:lang=\"en-US\">Are you <emphasis level=\"moderate\">sure</emphasis> that you want to cancel this transaction?</speak>",
"inputHint": "expectingInput",
"replyToId": "5d5cdc723"
}
入力ヒント
音声対応チャネルでメッセージを送信する場合は、ボットがユーザー入力を受け入れるか、予期しているか、無視しているかを示す入力ヒントも含めることで、クライアントのマイクの意図された状態を表現できます。 詳細については、「メッセージへの入力ヒントの追加」を参照してください。