cortana 频道无法说出自适应卡片内容
Unable to speak out the adaptive card content in cortana channel
我已经将我的机器人与 cortana 通道集成,并且可以成功查看自适应卡片。我需要的是把自适应卡的内容说出来。使用时的 speak 属性 表明它已被弃用。有没有办法说出我的卡片内容?
var contentCard = AdaptiveCard(qnaAnswer.title);
Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = contentCard
};
reply.Attachments = new List<Attachment> { attachment };
await turnContext.SendActivityAsync(reply);
public static AdaptiveCard AdaptiveCard(string subtitle)
{
AdaptiveCard card = new AdaptiveCard();
card.Body.Add(new AdaptiveTextBlock()
{
Text = string.IsNullOrEmpty(subtitle) ? string.Empty : subtitle,
Speak =text ,
});
return card;
}
这段代码的一些事情。
首先,如果您查看 AdaptiveCards 的架构,您会发现 speak 属性 仅在卡片元素下有效。
https://adaptivecards.io/explorer/AdaptiveCard.html
所以这意味着
card.Speak = 'Whatever'
AdaptiveCards 是灵活的,因为您可以添加应该被渲染器忽略的属性...令人困惑,因为如果您输入具有相同名称的属性,您将不会得到任何错误 and/or 它看起来有些东西没有按预期工作。
下一个问题是说话 属性 在整个卡片的上下文中,而不仅仅是像文本块这样的元素。如果您想创建一种机制,根据附加到这些元素的提示将卡片元素转换为语音,您需要自己编写。
最后,向卡片添加 Speak 属性 仅适用于支持 Speak AdaptiveCards 的频道。信不信由你,Cortana 不会这样做。您需要从卡片上复制 Speak 属性,然后将其附加到 activity 的 speak 属性,以便 Cortana 说出结果。查看
https://docs.microsoft.com/en-us/cortana/skills/adding-speech
我已经将我的机器人与 cortana 通道集成,并且可以成功查看自适应卡片。我需要的是把自适应卡的内容说出来。使用时的 speak 属性 表明它已被弃用。有没有办法说出我的卡片内容?
var contentCard = AdaptiveCard(qnaAnswer.title);
Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = contentCard
};
reply.Attachments = new List<Attachment> { attachment };
await turnContext.SendActivityAsync(reply);
public static AdaptiveCard AdaptiveCard(string subtitle)
{
AdaptiveCard card = new AdaptiveCard();
card.Body.Add(new AdaptiveTextBlock()
{
Text = string.IsNullOrEmpty(subtitle) ? string.Empty : subtitle,
Speak =text ,
});
return card;
}
这段代码的一些事情。
首先,如果您查看 AdaptiveCards 的架构,您会发现 speak 属性 仅在卡片元素下有效。
https://adaptivecards.io/explorer/AdaptiveCard.html
所以这意味着
card.Speak = 'Whatever'
AdaptiveCards 是灵活的,因为您可以添加应该被渲染器忽略的属性...令人困惑,因为如果您输入具有相同名称的属性,您将不会得到任何错误 and/or 它看起来有些东西没有按预期工作。
下一个问题是说话 属性 在整个卡片的上下文中,而不仅仅是像文本块这样的元素。如果您想创建一种机制,根据附加到这些元素的提示将卡片元素转换为语音,您需要自己编写。
最后,向卡片添加 Speak 属性 仅适用于支持 Speak AdaptiveCards 的频道。信不信由你,Cortana 不会这样做。您需要从卡片上复制 Speak 属性,然后将其附加到 activity 的 speak 属性,以便 Cortana 说出结果。查看
https://docs.microsoft.com/en-us/cortana/skills/adding-speech