我使用botframework和Azure创建了一个聊天机器人。我希望能够使用Cortana与该机器人对话,因此我将该机器人连接到Azure中的Cortana通道。这有效,我可以调用该技能并发送短信。出于测试目的,机器人可以接收消息,并且仅将预定义的消息发送回用户。
根据this,通过设置消息的语音属性,我应该能够向用户发送语音消息。我用纯文本和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);
两个变体都不起作用。当我调用该技能并键入一些内容时,我没有音频输出,但有文本输出。
将语音属性设置为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那样的文本语音转换系统?
谢谢。
答案 0 :(得分:0)
如前所述,Cortana如果通过语音调用或查询,将以语音回应。在文档上尚不清楚(我们将对此进行修复)。但是,如果输入了文本,您目前无法用合成语音做出回应-我们假设以用户提出请求的形式回应用户。富卡除外。如果您单击一个按钮,并且上一个输入是通过语音,则下一个响应将是通过语音。
请作为功能请求提出反馈。