我如何向 Twilio studio Say/Play 小部件添加暂停

How can i add pause to Twilio studio Say/Play widget

我有发言权

> "Hello ... Thanks"

我试过像这样向该元素添加一个像 twilML 这样的暂停字符串

> "Hello  <Pause length="10"/> ... Thanks"

但它只是说出了 Pause length="10" 部分

如何向 Say/Play 小部件添加暂停?

Twilio 确实有人应该为 Studio 创建一个 PAUSE 小部件。

在那之前,如果你喜欢使用丑陋的 hack...这里是:

既然你可以在流程中添加一个功能小部件,那么创建一个Twilio "Runtime Function"(我称之为"Pause")


    exports.handler = function(context, event, callback) {

        const duration = event.duration || 1500; 

        setTimeout(
            function() {
                // console.log(duration);
                callback();          
            } , duration);

    };

然后,将一个 "Say" 小部件替换为 "Say" 小部件 + "Pause" 功能小部件 + "Say" 小部件。

添加"Pause"widget配置参数时,添加一个duration参数,参数值不超过3000到4000左右(我不知道具体怎么解释为什么,但是如果函数执行时间超过 5 秒,函数将 'runtime timeout'。

添加参数时,请确保它们确实已添加...,我遇到了一些麻烦,直到我发现您需要在填写 "Add Parameter" link 后单击=40=]、"Value" 字段,而不是我单击大 "Save" 按钮。

由于您正在寻找 10 秒的暂停,您可以尝试在 "Say" 小部件之间级联 3 个 "Pause" 带有持续时间参数(3000、3000、4000)的小部件。

I've tested this and I was able to make a pause between 2 "Say" widgets of 7 seconds by inserting one 3000 pause and one 4000 pause functions.

希望对您有所帮助。

根据 Twilio documentation on widgets,可以通过放置 space 个分隔句点来添加暂停,其中 15 个相当于 1 秒延迟。

因此,下面的要说的文字将在句子之间有 1 秒的延迟:

Hello, John!
 . . . . . . . . . . . . . . .
Today is a very nice day.

编辑:这仅适用于非 [Polly] 声音(爱丽丝、男人、女人 - 小部件配置中“消息声音”字段中的选项)。

另一种替代方法是使用 Twilio Functions 并向 Flow 添加一个 运行 Function 小部件。有关更多说明,请遵循 Twilio's instructions for "Add Delay"(特别提及在 Studio Flow 中使用。

// Description
// Add a delay, useful for using with Twilio Studio Run Function Widget

exports.handler = function (context, event, callback) {
  // Function can run up to 10 seconds (value of delay is milliseconds)

  // Pass in delay as a URL query parameter
  // Example: https://x.x.x.x/<path>?delay=5000
  let delayInMs = event.delay || 5000;

  let timerUp = () => {
    return callback(null, `Timer Up: ${delayInMs}ms`);
  };

  setTimeout(timerUp, delayInMs);
};

从 Twilio 支持那里得到这个

间隔句点仅适用于传统声音(男人、女人、爱丽丝)。

如果您使用的是新的 Polly 语音,您需要在 Say 文本区域嵌入 SSML,例如:

<speak>Hello. <break time="5s"/> Goodbye.</speak>

对我来说很好。

作为 Alex's 的后续行动,对于现在正在查看此内容的任何人,Twilio(截至 2019 年 9 月)的超时时间已从 5 秒增加到 10 秒:

https://www.twilio.com/changelog/twilio-functions-increased-timeout