【发布时间】:2019-02-27 12:42:57
【问题描述】:
我使用 botframework 和 Azure 创建了一个聊天机器人。我希望能够使用 Cortana 与机器人对话,因此我将机器人连接到 Azure 中的 Cortana 通道。这有效,我可以调用该技能并发送短信。出于测试目的,机器人可以接收消息,并且只将预定义的消息发送回用户。
根据this,我应该能够通过设置消息的 Speak-property 将语音消息发送回用户。我用纯文本和 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-property 设置为 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>
我来自德国。我知道只有美国支持第 3 方技能。我将我的地区和语言设置为美国,以便能够使用该技能。
机器人有什么问题吗?
我必须使用像 MS CognitiveServices 那样的文本转语音系统吗?
提前致谢。
【问题讨论】:
-
好的。我发现,当您输入文本时,cortana 不会输出语音。它在您输入语音时起作用。有没有办法在文本输入时输出语音?
-
这与网络聊天频道中的行为相同:仅当用户的初始消息通过语音时才会说出语音字段。
标签: botframework cortana cortana-skills-kit