Webhook音频响应发出错误但似乎正确

时间:2020-02-22 16:39:28

标签: dialogflow-es actions-on-google

在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"
      }
    ]
  }
}

} }

1 个答案:

答案 0 :(得分:2)

问题是您的回复中有两个public class Item { public String Name { get; set; } public Boolean Complete { get; set; } } 标签。如果将其更改为仅在整个内容中使用一个<speak>标签,则效果会更好。