1

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

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

根据 flask-ask文档,他们根据根元素“speak”自动检测 SSML。然而,当我测试我的应用程序时,Alexa 准备好模板 varbatim,我可以看到发送回 Alexa 服务的响应是纯文本类型。根据亚马逊文档,我相信 SSML 是正确的

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

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

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

4

4 回答 4

1

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

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

和:

if '<speak' in speech:

简单且有效...

于 2018-04-28T22:57:35.023 回答
0

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

于 2018-02-13T18:52:49.233 回答
0

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

于 2017-01-10T02:53:56.690 回答
0

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

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

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

alexa_speaks.encode('utf-8')

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

于 2019-06-28T16:39:48.237 回答