【问题标题】:Twilio SSML Using Runtime Functions使用运行时函数的 Twilio SSML
【发布时间】:2019-03-31 13:01:27
【问题描述】:

我正在尝试在 Twilio 运行时函数中使用 Say-verbs 添加 SSML 文本。

let twiml = new Twilio.twiml.VoiceResponse();
twiml.say('<prosody rate="-15%">Hello World</prosody>');

上面的代码在渲染时会产生编码的文本。有没有办法让 Twilio 接受没有编码的文本?

&lt;prosody rate='-15%'&gt;Hello World&lt;/prosody&gt;

我知道 Say 对象中的 ssml 方法,但是它们相当麻烦,并且将标签作为 Say-String 的一部分编写会更容易。

【问题讨论】:

    标签: node.js twilio ssml


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    say 方法(和其他 TwiML 方法)旨在使编写 XML 响应变得更容易,而无需自己手写和编码 XML。因此,这些辅助方法将转义输入。目前没有办法让库不转义输入,我建议使用 SSML 帮助器。

    如果你真的不想使用助手,那么你也可以手写&lt;Response&gt;&lt;Say&gt;。确保你 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);
    }
    

    【讨论】:

      【解决方案2】:

      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://www.twilio.com/docs/voice/twiml/say/text-speech

      【讨论】:

        猜你喜欢
        • 2019-12-14
        • 1970-01-01
        • 2018-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        相关资源
        最近更新 更多