使用 Bot 連接器 API 將語音新增至訊息

如果您要為已啟用語音的通道建置 Bot,您可以建構訊息,以指定要由 Bot 說出的文字。 您也可以指定輸入提示,藉由指出您的 Bot 要接受、需要或忽略使用者輸入,來嘗試影響用戶端的麥克風狀態。

您可以設定 Bot,允許用戶端應用程式透過 Direct Line Speech 通道與其通訊。

指定要由 Bot 讀出的文字

若要指定將由 Bot 在啟用語音通道上讀出的文字,請在代表您訊息的 Activity 物件中設定 speak 屬性。 您可以將 speak 屬性設定為純文字字串或格式化為語音合成標記語言 (SSML) 的字串,SSML 是一種以 XML 為基礎的標記語言,可讓您控制 Bot 語音的各種特性,例如聲音、速率、音量、發音、音調等等。 如果通道不支援,訊息會以文字的形式傳遞。

下列要求會傳送一則訊息,其中指定要顯示的文字和要讀出的文字,並指出 Bot 需要使用者輸入。 它會使用SSML格式指定 speak 屬性,以指出「確定」這個字應該以中等程度的強調來說出。 在此範例要求中,Direct Line 表示基底 URI,您的 Bot 所發出要求的基底 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"
}

輸入提示

當您在已啟用語音的通道上傳送訊息時,也可以包含輸入提示來表示用戶端麥克風的預期狀態,以指出 Bot 是否接受、預期或忽略使用者輸入。 如需詳細資訊,請參閱將輸入提示新增至訊息

其他資源