合并来自多个 webhook 请求的简单响应时的错误
Bug at merging Simple Responses from multiple webhook requests
在一个场景中多次调用 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 issue。
所以发现合并Bug与无效的SSML有关。遗憾的是,Google 没有针对 SSML 错误的错误消息。
为了解决语音对象完全丢失的问题,我将 conv.add(new Simple('Text'))
更改为 conv.prompt.firstSimple = new Simple('Text')
或 conv.prompt.lastSimple = new Simple('Text')
。
在一个场景中多次调用 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 issue。
所以发现合并Bug与无效的SSML有关。遗憾的是,Google 没有针对 SSML 错误的错误消息。
为了解决语音对象完全丢失的问题,我将 conv.add(new Simple('Text'))
更改为 conv.prompt.firstSimple = new Simple('Text')
或 conv.prompt.lastSimple = new Simple('Text')
。