我在Azure中创建了一个QNA(qnamaker.ai)和一个聊天机器人。他们建立联系并做应做的事情。我以天蓝色激活了Cortana频道,如果我使用正确的调用方法,它会给出正确的反馈,只是根本不说话。我看到,如果您用语音调用或查询语音,Cortana会口头回答,但似乎不起作用。
我试图重新创建整个应用程序,但无法解决我的问题。 我已经创建了一个基本的C#UWP应用,其中包含基本问题并与Cortana进行了交谈。
该代码现在是Microsoft的默认聊天机器人代码。
我想问你一个建议,如果我错过了某些设置还是只需要修改代码?
感谢您的帮助。
Gabor
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
var httpClient = _httpClientFactory.CreateClient();
var qnaMaker = new QnAMaker(new QnAMakerEndpoint
{
KnowledgeBaseId = _configuration["QnAKnowledgebaseId"],
EndpointKey = _configuration["QnAAuthKey"],
Host = GetHostname()
},
null,
httpClient);
_logger.LogInformation("Calling QnA Maker");
// The actual call to the QnA Maker service.
var response = await qnaMaker.GetAnswersAsync(turnContext);
if (response != null && response.Length > 0)
{
await turnContext.SendActivityAsync(MessageFactory.Text(response[0].Answer), cancellationToken);
}
else
{
await turnContext.SendActivityAsync(MessageFactory.Text("No QnA Maker answers were found."), cancellationToken);
}
答案 0 :(得分:0)
批处理样本不会调用适当的API来说出结果。您需要为语音和输入提示添加参数。请看
这表明对此进行了更改
await turnContext.SendActivityAsync(msg, speak: msg, inputHint: InputHints.AcceptingInput, cancellationToken: cancellationToken);