0

在一个场景中多次调用 webhook 并发送简单响应时,合并简单响应时会出现错误。

来自第一个 webhook 调用的提示

{
    "override": false,
    "firstSimple": {
        "speech": "<speak><audio src=\"https://www.example.com/audio/file1.mp3\"></speak>",
        "text": "Text 1"
    }
}

来自第二个 webhook 调用的提示

{
    "override": false,
    "firstSimple": {
        "speech": "<speak><audio src=\"https://www.example.com/audio/file2.mp3\"></audio> <audio src=\"https://www.example.com/audio/file3.mp3\"></audio></speak>",
        "text": " Text 2"
    }
}

响应中的合并提示发送给用户

{
    "firstSimple": {
        "speech": "<speak><speak><audio src=\"https://www.example.com/audio/file1.mp3\"></speak> <audio src=\"https://www.example.com/audio/file2.mp3\"/> <audio src=\"https://www.example.com/audio/file3.mp3\"/></speak>",
        "text": "Text 1 Text2"
    }
}

因此,使用这两个speak标签,SSML 是无效的并且不会被说出来。有时语音对象完全丢失。

我已经为此创建了一个 Github问题

4

1 回答 1

1

所以发现合并的Bug与无效的SSML有关。不幸的是,谷歌没有关于 SSML 错误的错误消息。

作为语音对象完全丢失的问题的解决方法,我更改conv.add(new Simple('Text'))conv.prompt.firstSimple = new Simple('Text')or conv.prompt.lastSimple = new Simple('Text')

于 2020-08-18T13:23:22.093 回答