Bot Connector API を使用してメッセージに音声を追加するAdd speech to messages with the Bot Connector API

音声対応チャネル用のボットを構築する場合は、ボットによって読み上げされるテキストを指定するメッセージを作成できます。If you are building a bot for a speech-enabled channel, you can construct messages that specify the text to be spoken by your bot. また、入力ヒントを指定して、ボットがユーザー入力を受け入れるか、期待するか、無視するかを示し、クライアントのマイクの状態に影響を与えることを試すこともできます。You can also attempt to influence the state of the client's microphone by specifying an input hint to indicate whether your bot is accepting, expecting, or ignoring user input.

クライアント アプリケーションが Direct Line Speech チャンネルを介してボットと通信できるように、そのボットを構成できます。You can configure your bot to allow client applications to communicate with it through Direct Line Speech channel.

ボットが読み上げるテキストを指定するSpecify text to be spoken by your bot

音声対応チャネル上でボットが読み上げるテキストを指定するには、メッセージを表すActivity オブジェクト内の speak プロパティを設定します。To specify text to be spoken by your bot on a speech-enabled channel, set the speak property within the Activity object that represents your message. speak プロパティは、プレーンテキスト文字列か、または声、速さ、音量、発音、ピッチなどのボットの音声のさまざまな特性を制御できる XML ベースのマークアップ言語である音声合成マークアップ言語 (SSML) として書式設定された文字列のどちらかに設定できます。You can set the speak property to either a plain text string or a string that is formatted as Speech Synthesis Markup Language (SSML), an XML-based markup language that enables you to control various characteristics of your bot's speech such as voice, rate, volume, pronunciation, pitch, and more. チャンネルがサポートされていない場合、メッセージはテキストとして配信されます。If the channel does not support, the message is delivered as text.

次の要求では、表示されるテキストと読み上げられるテキストを指定し、ボットがユーザー入力を想定していることを示すメッセージを送信します。The following request sends a message that specifies text to be displayed and text to be spoken and indicates that the bot is expecting user input. ここでは、SSML 形式を使用した speak プロパティを指定して、単語 "sure" を適度な強調の量で読み上げる必要があることを示しています。It specifies the speak property using SSML format to indicate that the word "sure" should be spoken with a moderate amount of emphasis. この要求の例で、Direct Line はベース URI を示しています。ご利用のボットによって発行される要求に対するベース URI は、これとは異なる場合があります。In this example request, Direct Line represents the base URI; the base URI for requests that your bot issues may be different. ベース URI の設定の詳細については、API リファレンスに関する記事をご覧ください。For details about setting the base URI, see API Reference.

POST https://smba.trafficmanager.net/apis/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"
}

入力ヒントInput hints

音声対応チャネルでメッセージを送信する場合は、ボットがユーザー入力を受け入れるか、期待しているか、無視しているか示す入力ヒントも含めて、クライアントのマイクの意図した状態を表現できます。When you send a message on a speech-enabled channel, you can express the intended state of the client's microphone by also including an input hint to indicate whether your bot is accepting, expecting, or ignoring user input. 詳細については、「メッセージへの入力ヒントの追加」を参照してください。For more information, see Add input hints to messages.

その他のリソースAdditional resources