AWS Alexa V2 中的 SSML 支持

SSML support in AWS Alexa V2

我正在努力将 Alexa 技能从 V1 更新到 V2。但由于某种原因,SSML 似乎无法在 V2 版本中运行。这些是我尝试过的几个场景。

直接通过ssml绑定,

const speechText = 'This <break time=\"0.3s\" /> is not working';

return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .getResponse();

此外,作为一个对象尝试过,

 var speechText = {
      type: "SSML",
      ssml: 'This <break time=\"0.3s\" /> is not working',
  };

 return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .getResponse();

有没有人知道我可能做错了什么?提前致谢。

尝试

const speechText = `This <break time="0.3s" /> is not working`;

return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .getResponse();

当您想向 speechText:

中提供变量时,此构造也很有用
const lengthInSeconds = 5;
const speechText = `This <break time="${length}s" /> is not working`;

正如我们在评论区建立的原文post。

Response Builder 在发布 v.2.5.1 之前没有转义无效的 SSML 字符:&, <, >, ", ' 这个问题有在 Alexa 团队 here 中提出并在版本 2.5.1

中修复

更新库修复了问题