Несколько вещей с этим кодом.
Во-первых, если вы посмотрите на схему для AdaptiveCards, вы увидите, что свойство Speak действительно только для элемента карты.
https://adaptivecards.io/explorer/AdaptiveCard.html
Итак, это подразумевает
card.Speak = 'Whatever'
AdaptiveCards является гибким в том смысле, что вы можете добавлять свойства, которые должны игнорироваться средством визуализации ... сбивает с толку, потому что если вы добавите свойства с такими же именами, вы не получите никаких ошибок и / или, кажется, что-то не работает когда ожидается.
Следующая проблема заключается в том, что свойство spok находится в контексте всей карты, а не просто элемента, подобного текстовому блоку. Если вы хотите создать механизм, который переводит элементы карты в речь на основе подсказок, прикрепленных к этим элементам, вам нужно написать это самостоятельно.
Наконец, добавление свойства Speak к карте будет работать только в каналах, которые поддерживают говорящие AdaptiveCards. Хотите верьте, хотите нет, но Кортана НЕ делает этого. Вам нужно будет скопировать свойство Speak с карты и затем прикрепить его к свойству Speak, чтобы Cortana мог сообщить результат. Проверить
https://docs.microsoft.com/en-us/cortana/skills/adding-speech