Чатбот с помощью Cortana не говорит - PullRequest
0 голосов
/ 27 февраля 2019

Я создал чат-бота, используя botframework и Azure.Я хочу иметь возможность общаться с ботом с помощью cortana, поэтому я подключил бота к каналу cortana в Azure.Это работает, и я могу вызвать навык и отправлять текстовые сообщения.В тестовых целях бот может получать сообщения и отправляет пользователю только предварительно определенное сообщение.

Согласно это я должен иметь возможность отправлять голосовое сообщение обратно пользователю, просто установив свойство 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>

I 'м из германии.Я знаю, что сторонние навыки поддерживаются только в США.Я установил свой регион и язык для США, чтобы можно было использовать этот навык.

Что-то не так с ботом?

Должен ли я использовать систему преобразования текста в речь, подобную системе MS CognitiveServices?

Заранее спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019

Как уже упоминалось, Кортана ответит речью, если будет вызван или запрошен речью.Это не ясно в документации (и мы это исправим).Тем не менее, в настоящее время вы не можете ответить синтезированной речью, если текст был введен - мы предполагаем ответить пользователю в той форме, в которой он сделал запрос.Исключение составляют богатые карты.Если вы нажмете кнопку, и предыдущий ввод был с помощью речи, следующий ответ будет с помощью речи.

Пожалуйста, отправьте отзыв как запрос функции.

...