Ошибка при объединении простых ответов от нескольких запросов веб-перехватчика

При вызове веб-перехватчика несколько раз в одной сцене и отправке простых ответов возникает ошибка при объединении простых ответов.

приглашение от первого вызова веб-перехватчика

{
    "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').

Другие вопросы по тегам