【问题标题】:Alexa skill Python Flask ask and SocketIO with UnityAlexa 技能 Python Flask ask 和 SocketIO with Unity
【发布时间】:2018-07-18 09:28:31
【问题描述】:

我创建了一个自定义 Alexa 技能,它将根据用户输入统一播放动画。

我的 Alexa 技能使用 ngrok 服务进行隧道传输,该服务为我提供 https 链接,该链接用于将技能与统一连接。

现在我想配置我的技能,比如在动画统一完成后,我想在 python 中调用方法,如果用户不说什么,就会触发一些意图。

我能够在 python 文件中调用用户定义的方法,并能够在控制台上打印文本,但是 Speech_text 或 reprompt_text 不能在相同的方法中工作。

即使我没有得到任何 python 代码,它会在 python 文件中调用特定意图,而不是基于用户输入,而是基于动画条件。

那么我如何从 python 代码中调用 Intent。

例子:

以人类统一行走、说话、跳跃、奔跑动画为例。 假设我打开了我的技能并说要播放行走动画....行走动画为 6 秒....动画完成后....如果用户不说任何话,那么 Alexa 应该需要调用另一个意图,该意图将调用另一个动画...动画是,人类说我有另一个动画也喜欢说话等等。

我不希望 python 中的 reprompt_text 提供此 reprompt 功能,因为我每次播放 1 分钟的空白音频文件在后台保持 echo dot session 为 ON。

【问题讨论】:

    标签: python unity3d socket.io alexa alexa-skills-kit


    【解决方案1】:

    在没有用户交互的情况下,您无法从 Alexa 触发意图。一个会话将只打开 8 秒,然后再次提示,再过 8 秒,会话将结束。不幸的是,我们无法修改此会话超时。因此,如果用户没有响应,无论如何都会在响应播放后结束,您的服务将收到SessionEndedRequest。因此,在您的情况下,您可以使用此SessionEndedRequest 一次,但不建议这样做。您始终可以包含一些后端逻辑来检查您是否收到了意图请求,如果没有则播放下一个动画。但是,你永远不会知道用户是否在听。

    另一种选择是在动画播放后询问用户自己

    例如:

    (播放动画6秒)

    [休息 6 秒] 我要播放下一个视频吗?

    (您也可以包含重新提示)

    通过这种方式,您可以保持用户的参与度,如果用户没有响应,您可以优雅地退出。

    更多关于SessionEndedRequesthere

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-03
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      相关资源
      最近更新 更多