Ошибка при объединении простых ответов от нескольких запросов веб-перехватчика
При вызове веб-перехватчика несколько раз в одной сцене и отправке простых ответов возникает ошибка при объединении простых ответов.
приглашение от первого вызова веб-перехватчика
{
"override": false,
"firstSimple": {
"speech": "<speak><audio src=\"https://www.example.com/audio/file1.mp3\"></speak>",
"text": "Text 1"
}
}
приглашение от второго вызова веб-перехватчика
{
"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.
1 ответ
Итак, выяснилось, что ошибка слияния связана с недопустимым SSML. К сожалению, от Google нет сообщений об ошибках SSML.
И как обходной путь для проблемы, что объект речи полностью отсутствует, я изменил conv.add(new Simple('Text'))
к conv.prompt.firstSimple = new Simple('Text')
или conv.prompt.lastSimple = new Simple('Text')
.