使用 Bot Connector API 向消息中添加语音
如果要为支持语音的通道构建机器人,则可以构建消息,指定机器人要说的文本。 还可以通过指定输入提示来尝试影响客户端麦克风的状态,以指示机器人是在接受、期望还是忽略用户输入。
若要在支持语音的通道上指定机器人要朗读的文本,请在代表消息的 Activity 对象内设置 speak
属性。 可以将 speak
属性设置为纯文本字符串或格式化为语音合成标记语言 (SSML) 的字符串,后者是一种基于 XML 的标记语言,可用于控制机器人语音的各种特性(如声音、语速、音量、发音和音调等)。 如果通道不支持,则消息将以文本形式传递。
以下请求发送一条消息,指定要显示的文本和要朗读的文本,并指示机器人期望用户输入。 它使用 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"
}
在支持语音的频道上发送消息时,可以通过同时包含输入提示来表达客户端麦克风的预期状态,以指示机器人是接受、预期还是忽略用户输入。 有关详细信息,请参阅向消息添加输入提示。