我试图在Twilio运行时函数中使用Say-谓词添加SSML文本。
let twiml = new Twilio.twiml.VoiceResponse();
twiml.say('<prosody rate="-15%">Hello World</prosody>');以上代码在呈现时生成编码文本。有没有办法让Twilio不加编码地接受文本?
<prosody rate='-15%'>Hello World</prosody>我知道Say对象中的ssml方法,但是它们相当繁琐,只编写标记作为Say-String的一部分就更容易了。
发布于 2018-10-29 01:15:49
两位开发人员在这里传道。
say方法(和其他TwiML方法)旨在使编写XML响应变得更容易,而不必亲自编写和编码XML。因此,这些助手方法将转义输入。目前没有一种方法可以让库不转义输入,我建议使用SSML帮助程序。
如果您真的不想使用帮助器,那么您也可以手工编写<Response>和<Say>。但是,请确保设置了正确的标题后的 object。
exports.handler = function(context, event, callback) {
const twiml = `
<Response>
<Say>
<prosody rate="-15%">Hello World</prosody>
</Say>
</Response>
`;
const response = new Twilio.Response();
response.setBody(twiml);
response.appendHeader('Content-Type', 'application/xml');
callback(null, response);
}发布于 2018-11-08 00:53:26
Javascript
const Twilio = require('twilio');
const response = new Twilio.twiml.VoiceResponse();
const say = response.say();
say.ssmlProsody({ rate: '15%' }, 'Hello World');
console.log(response.toString());XML
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>
<prosody rate="15%">Hello World</prosody>
</Say>
</Response>https://stackoverflow.com/questions/53014290
复制相似问题