在DialogFlow中尝试Webhook响应时,我返回了混合的音频和语音响应。 Actions Test Console会乱码读出(即所有xml标签都被大声读出等),但是当我单击同一测试控制台中的Audio选项卡以找出XML的错误时,Test Console会读取/播放声音和正确的单词,好像没有什么错。
是什么原因造成的?
附录: 这是我用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控制台的“音频”标签中,它看起来像这样,并且在按“更新并收听” 时可以按预期工作:
<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"
}
]
}
}
} }
答案 0 :(得分:2)
问题是您的回复中有两个public class Item
{
public String Name { get; set; }
public Boolean Complete { get; set; }
}
标签。如果将其更改为仅在整个内容中使用一个<speak>
标签,则效果会更好。