Flask-要求不识别YAML文件中的SSML并输出纯文本响应

时间:2017-01-07 07:29:01

标签: python flask alexa ssml

以下是templates.yaml文件中的响应模板:

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

根据烧瓶问documents,他们会根据根元素'speak'自动检测SSML。然而,当我测试我的应用程序时,Alexa准备了模板varbatim,我可以看到发送回Alexa服务的响应是纯文本类型。 我相信根据亚马逊documentation

,SSML是正确的

我通过以下方式调用模板:

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

如果这是基本的事情,请提前道歉,因为我只编写了7个月。谢谢!

4 个答案:

答案 0 :(得分:1)

对我来说,问题出在 ... / flask_ask / models.py 文件中。 向下滚动到 def _output_speech(语音):功能并替换:

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

使用:

if '<speak' in speech:

简单易行......

答案 1 :(得分:0)

如果将来有人发现这个,原来提供的模板是正确的。不知道为什么我必须复制并重新粘贴它,但有一些奇怪的unindent错误。

答案 2 :(得分:0)

我也遇到了这个问题,发现我需要重新启动FlaskAsk实例才能检测到templates.yaml文件的更改。

答案 3 :(得分:0)

在我的情况下,yaml的字符串已作为Unicode加载。

get dashboard_site_attendance_summer_city_camp_integrativ_path

我通过将unicode编码为普通字符串来修复它。

get attendance_summer_city_camp_integrativ

现在,亚马逊将我yaml文件中的句子正确识别为ssml。