Для чего бы это ни стоило, я столкнулся с той же проблемой и обнаружил (трудный путь), что ответ, который я возвращал на мой вызов API, содержал текст, который был , неправильно отформатированный для SSML (в моем случае возвращаемая строка содержала '&').
Так что я нашел эту библиотеку, которая, кажется, не только помогает, но в целом будет хорошей идеей использовать, если вы не можете быть 100% уверен в вашем результате.
См .: https://www.npmjs.com/package/ssml-builder
Надеюсь, это кому-нибудь поможет.
~ Роб
Полагаю, мне лучше добавить пример кода.Это не проверено, но то, как ваш код может выглядеть, используя библиотеку, о которой я упоминал там ^^^.
const Speech = require( 'ssml-builder' );
const HelloWorldIntentHandler = {
canHandle(handlerInput) {
console.log("HelloWorldIntentHandler 1: ");
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntent';
},
handle(handlerInput) {
console.log("HelloWorldIntentHandler 2");
let speechText = 'Hello World';
Request.get(url, function(error, response, body) {
console.log("I'm here");
let data = JSON.parse(body);
let result = data.records.totalNum;
if (result > 0) {
let speech = new Speech();
speech.say(`There are ${result} matches`);
speechText = speech.ssml(true);
} else {
speechText = "ERROR";
}
return handlerInput.responseBuilder
.speak(speechText)
.withSimpleCard('Hello World', speechText)
.getResponse();
});
},
};