Я создал QNA (qnamaker.ai) и чат-бота в Azure. Они подключились и делают то, что должны делать. Я активировал канал Cortana на Azure, и если я использую правильный метод вызова, он дает правильную обратную связь, просто он вообще не говорит. Я видел, что Кортана будет отвечать устно, если вы вызываете или запрашиваете речь, но, похоже, это не работает.
Я попытался воссоздать все приложение, но это не решает мою проблему. Я создал базовое приложение C# UWP с базовым вопросом и с ним говорит Cortana.
Код теперь является кодом чат-бота по умолчанию от Microsoft.
Я хотел бы спросить вашего совета, если я пропущу какую-то настройку или мне просто нужно изменить код?
Спасибо за вашу помощь.
Габор
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);
}
public async Task PostAsync() { // Делегирование обработки HTTP POST адаптеру. // Адаптер вызовет бота. await _adapter.ProcessAsync (запрос, ответ, _bot); }
Я имел в виду, где вы устанавливаете возможность говорить при отправке запроса Cortana.
Добавил код. Это должно. (Я использую шаблон бота Microsoft)
Образцы ботов не вызывают соответствующий API для озвучивания результатов. Вам нужно добавить параметры для речи и подсказок ввода. Пожалуйста, посмотри
Это показывает изменение, чтобы сделать это
await turnContext.SendActivityAsync(msg, speak: msg, inputHint: InputHints.AcceptingInput, cancellationToken: cancellationToken);
Почтовый индекс, где вы вызываете Cortana.