我使用botframework和Azure创建了一个聊天机器人。我希望能够使用cortana与机器人交谈,所以我将机器人连接到Azure中的cortana通道。这有效,我可以调用技能并发送短信。出于测试目的,机器人可以接收消息并且仅将预定义消息发送回用户。
根据this,我应该能够通过设置消息的Speak属性将语音消息发送回用户。我用纯文本和SSML尝试了它:
/** BotFramework SDK v3 **/
var message = context.MakeMessage();
message.Speak = "Hello";
await context.PostAsync(msg);
/** BotFramework SDK v4 **/
var msg = turnContext.Activity.CreateReply();
msg.Speak = "Hello";
await turnContext.SendActivityAsync(msg);
两种变体都不起作用。当我调用技能并输入内容时,我没有音频输出但文本输出。
将Speak属性设置为SSML字符串也不起作用:
<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice languages='en-US' gender='female'>Hello</voice></speak>
我来自德国。我知道仅在美国支持第三方技能。我将我的地区和语言设置为美国,以便能够使用该技能。
机器人有什么问题吗?
我是否必须使用像MS CognitiveServices那样的文字转语音系统?
提前致谢。
如上所述,如果用语音调用或查询,Cortana将以语音回应。这在文档上并不清楚(我们将解决这个问题)。但是,如果输入文本,您目前无法使用合成语音进行响应 - 我们假设以他们提出请求的形式响应用户。丰富的卡片例外。如果您单击一个按钮,并且之前的输入是通过语音进行的,则下一个响应将通过语音进行。
请将反馈作为功能请求提交。