向用户发送响应时,如何添加几秒钟的暂停/休息,例如
回复文字:“问题的答案是< Pause for 2 seconds >答案”
我尝试了
<break = "2s" />
,但这对我不起作用。
您必须在答案中使用 SSML,为此,只需使用
<speak>
标签包装您的答案,然后添加另一个标签 <break time="2s"/>
,如下所示:
<speak>The answer to the question is <break time="2s"/> answer</speak>
有关 SSML 的更完整信息,请查看此。
对于当完整响应来自 Webhook 请求时起作用的 Dialogflow-CX。 其工作原理如下:您的 Dialogflow 代理将 WebhookRequest 发送到您的服务器。被调用的路由使用包含 FullfillmentResponse 的 WebhookResponse 对象进行响应,该对象具有相应的 ResponseMessage,该 ResponseMessage 已使用正确的 ssml 密钥设置设置了 outputAudioText 属性。 您的代理将使用该响应,例如在某个单词之后停顿。
为了澄清这一点,我将向您展示一个示例 WebhookResponse 对象及其外观:
const returnObject: WebhookResponse = {
payload: {
method: 'time-validation',
},
fullfillmentResponse: {
messages: [
{
responseType: ResponseType.RESPONSE_TYPE_UNSPECIFIED,
channel: 'default',
outputAudioText: {
allowPlaybackInterruption: false,
ssml: `<speak>Okay, vielen Dank! Wir übermitteln Ihren Namen, Rufnummer
und Ihre gewünschte Rückrufzeit an unser Vertriebsteam und versuchen Sie
am $session.params.date um $session.params.time Uhr zu erreichen <break time="1s"/>Auf wiedersehen</speak>`,
},
},
],
mergeBehavior: MergeBehavior.REPLACE,
},
sessionInfo: {
session: body.sessionInfo.session,
parameters: {
time: '12:30',
date: '11.1.2024',
},
},
}
在这里您可以看到定制的履行响应以及使用 SMLL 来进一步指示 TTS 系统如何采取行动。 此外,$session 参数是通过 sessionInfo 属性覆盖的。这些覆盖的参数也用于通过我们的 SMLL 创建的代理响应中。