Flask-ask не распознает SSML в файле YAML и не выводит текстовый ответ

Ниже приведен шаблон ответа в моем файле templates.yaml:

entity_paused: <speak>I paused {{ entity }} <say-as interpret-as="digits">{{ id }}</say-as></speak>.

Согласно документам колбы-запроса, они автоматически обнаруживают SSML на основе корневого элемента "говорить". Тем не менее, когда я тестирую свое приложение, Alexa готовит шаблон varbatim, и я вижу, что ответ, отправленный обратно в сервис Alexa, имеет открытый текст. Я считаю, что SSML является правильным в соответствии с документацией Amazon

Я вызываю шаблон через:

return statement(render_template('paused_entity', entity='SomeEntity', id=123456))

Заранее извиняюсь, если это что-то основное, так как я кодирую только 7 месяцев. Спасибо!

3 ответа

Для меня проблема была в файле.../flask_ask/models.py. Прокрутите вниз, чтобы определить _output_speech(речь): функция и заменить:

xmldoc = ElementTree.fromstring(speech)
    if xmldoc.tag == 'speak':

с:

if '<speak' in speech:

Легко и работает...

В случае, если кто-нибудь найдет это в будущем, изначально предоставленный шаблон будет правильным. Не уверен, почему мне пришлось скопировать и заново вставить его, но произошла странная ошибка.

У меня тоже были проблемы с этим, и я обнаружил, что мне нужно перезапустить экземпляр FlaskAsk, прежде чем он обнаружит изменения в моем файле templates.yaml.

В моем случае строка yaml была загружена как unicode.

- <speak> Schön dich zu sehen! </speak> 

Я исправил это, закодировав юникод в обычную строку.

alexa_speaks.encode('utf-8')

Теперь Amazon правильно распознает предложения в моем файле yaml как ssml.

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