Webhook 音频响应出现错误但似乎正确
Webhook audio response coming out wrong but seems correct
在 DialogFlow 中试验 webhook 响应时,我 return 混合了音频和语音响应。 Actions Test Console 会乱读(即所有 xml 标签都被大声读出 e.t.c。)但是当我单击同一个测试控制台中的 Audio 选项卡以找出问题所在时XML 测试控制台reads/plays 声音和文字正确,好像没有任何问题。
这可能是什么原因造成的?
附录:
这是我在 Javascript:
中生成的响应
conv.ask(`<speak>Här kommer ljudet.</speak>` +
`<speak><par><media xml:id="environment" end="effect.end"fadeOutDur="3.0s"><audio src="${ljud3}" /></media>` +
`<media xml:id="effect"><audio src="${ljud1}" begin="2.0s" /> </media></par></speak>`);}
在 Actions Console 的音频选项卡中,当我按下 "Update and listen":
时,它看起来像这样并且按预期工作
<speak>Här kommer ljudet.</speak><speak><par><media xml:id="environment" end="effect.end" fadeOutDur="3.0s"><audio src="https://www.sigvardson.se/public/running_on_gravel.ogg" /></media><media xml:id="effect"><audio src="https://actions.google.com/sounds/v1/cartoon/clang_and_wobble.ogg" begin="2.0s" /> </media></par></speak>
控制台中的响应选项卡如下所示:
{"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "<speak>Här kommer ljudet.</speak><speak><par><media xml:id=\"environment\" end=\"effect.end\" fadeOutDur=\"3.0s\"><audio src=\"https://www.sigvardson.se/public/running_on_gravel.ogg\" /></media><media xml:id=\"effect\"><audio src=\"https://actions.google.com/sounds/v1/cartoon/clang_and_wobble.ogg\" begin=\"2.0s\" /> </media></par></speak>"
}
},
{
"simpleResponse": {
"textToSpeech": "<speak>Vill du höra <break time=\"500ms\"/> mer?</speak>"
}
}
],
"suggestions": [
{
"title": "ja"
},
{
"title": "nej"
}
]
}
}
}
}
问题是您的回复中有两个 <speak>
标签。如果您将其更改为仅在整个事物周围使用一个 <speak>
标记,它应该会更好。
在 DialogFlow 中试验 webhook 响应时,我 return 混合了音频和语音响应。 Actions Test Console 会乱读(即所有 xml 标签都被大声读出 e.t.c。)但是当我单击同一个测试控制台中的 Audio 选项卡以找出问题所在时XML 测试控制台reads/plays 声音和文字正确,好像没有任何问题。
这可能是什么原因造成的?
附录: 这是我在 Javascript:
中生成的响应 conv.ask(`<speak>Här kommer ljudet.</speak>` +
`<speak><par><media xml:id="environment" end="effect.end"fadeOutDur="3.0s"><audio src="${ljud3}" /></media>` +
`<media xml:id="effect"><audio src="${ljud1}" begin="2.0s" /> </media></par></speak>`);}
在 Actions Console 的音频选项卡中,当我按下 "Update and listen":
时,它看起来像这样并且按预期工作 <speak>Här kommer ljudet.</speak><speak><par><media xml:id="environment" end="effect.end" fadeOutDur="3.0s"><audio src="https://www.sigvardson.se/public/running_on_gravel.ogg" /></media><media xml:id="effect"><audio src="https://actions.google.com/sounds/v1/cartoon/clang_and_wobble.ogg" begin="2.0s" /> </media></par></speak>
控制台中的响应选项卡如下所示:
{"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "<speak>Här kommer ljudet.</speak><speak><par><media xml:id=\"environment\" end=\"effect.end\" fadeOutDur=\"3.0s\"><audio src=\"https://www.sigvardson.se/public/running_on_gravel.ogg\" /></media><media xml:id=\"effect\"><audio src=\"https://actions.google.com/sounds/v1/cartoon/clang_and_wobble.ogg\" begin=\"2.0s\" /> </media></par></speak>"
}
},
{
"simpleResponse": {
"textToSpeech": "<speak>Vill du höra <break time=\"500ms\"/> mer?</speak>"
}
}
],
"suggestions": [
{
"title": "ja"
},
{
"title": "nej"
}
]
}
}
} }
问题是您的回复中有两个 <speak>
标签。如果您将其更改为仅在整个事物周围使用一个 <speak>
标记,它应该会更好。