Node.js AWS Alexa V2中的SSML支持

Node.js AWS Alexa V2中的SSML支持,node.js,amazon-web-services,aws-lambda,ssml,Node.js,Amazon Web Services,Aws Lambda,Ssml,我正在将Alexa技能从V1升级到V2。但由于某些原因,SSML似乎无法在V2版本中工作。以下是我尝试过的几个场景 直接通过ssml绑定 const speechText = 'This <break time=\"0.3s\" /> is not working'; return handlerInput.responseBuilder .speak(speechText) .reprompt(speechText) .getResponse(

我正在将Alexa技能从V1升级到V2。但由于某些原因,SSML似乎无法在V2版本中工作。以下是我尝试过的几个场景

直接通过ssml绑定

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

return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .getResponse();
const speechText='这不起作用';
返回handlerInput.responseBuilder
.发言(演讲稿)
.reprompt(演讲稿)
.getResponse();
而且,作为一个对象来尝试

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

 return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .getResponse();
var speechText={
类型:“SSML”,
ssml:“这不起作用”,
};
返回handlerInput.responseBuilder
.发言(演讲稿)
.reprompt(演讲稿)
.getResponse();
有人知道我可能做错了什么吗?提前谢谢

试试看

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

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

正如我们在原始帖子的评论部分所确定的那样

版本之前的响应生成器v.2.5.1没有转义无效的SSML字符:
&,“,”
此问题已向Alexa团队提出,并已在版本2.5.1中修复


更新库修复了问题

SSML不应该包装在
标记中吗?我尝试添加了,但文档中说V2不需要。这就是我删除标记的原因。可能是响应生成器没有为SSML转义的问题吗?我发现它已在3天前关闭:…尝试删除这些转义字符,你是对的。更新库修复了这个问题-太好了,我将在下面添加答案让你标记为正确-这可能对更多的人有帮助!虽然作为一个例子很有趣,但这并不是问题的解决方案,因为构造字符串的OPs方法是正确的,即使在单引号字符串中转义双引号也是正确的没有必要
const lengthInSeconds = 5;
const speechText = `This <break time="${length}s" /> is not working`;