0

在我的 python webhook 中,我将 JSON 响应返回为-

   {
     "speech":"Speak this",
     "ssml": <speak><audio src="[link to a mp3 file]"></audio></speak>,
     "displayText": "Expected text",
     "contextOut": [],
     "source": ""
   }

但是,我从“显示 JSON”在 DialogFlow 中得到的是 -

  "fulfillment": {
      "speech": "Speak this",
      "source": "",
      "displayText": "Expected text",
      "messages": [
        {
          "type": 0,
          "speech": "Speak this"
        }
      ]
    }

在这里,响应没有 SSML 密钥。此外,如果我从程序中删除“语音”键,我会在 Google 助手测试应用程序中收到此错误,MalformedResponse expected_inputs[0].input_prompt.rich_initial_prompt.items[0].simple_response: 'text_to_speech' or 'ssml' must be放。

请帮忙!

回答

"speech":'<speak><audio src="[link to a mp3 file]"></audio></speak>'

做到了

4

1 回答 1

0

正如我认为您可能已经在回答中意识到的那样,有两个问题

  1. 字段名称是“speech”,而不是“ssml”。
  2. 您没有在回复中提供 JSON 字符串。

真正的 JSON 要求字符串是双引号,而不是单引号(尽管看起来 Dialogflow 的解析器很宽松),所以它应该是:

   {
     "speech": "<speak><audio src='[link to a mp3 file]'></audio></speak>",
     "displayText": "Expected text",
     "contextOut": [],
     "source": ""
   }
于 2018-03-10T23:31:08.773 回答