我正在尝试使用Twilio运行时函数中的说动词添加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的一部分编写起来会更容易。
答案 0 :(得分:0)
这里是Twilio开发人员的传播者。
say
方法(和其他TwiML方法)旨在使编写XML响应变得更容易,而不必亲自编写和编码XML。因此,这些辅助方法将转义输入。当前没有一种方法可以使库不转义输入,我建议使用SSML帮助器。
如果您真的不想使用帮助器,则也可以手动编写<Response>
和<Say>
。确保return a Twilio.Response
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);
}
答案 1 :(得分:0)
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>