面向 Amazon Echo Show 的 Skills 开发

  • Sergio De Simone
  • 谢丽

2017 年 7 月 9 日

话题:移动语言 & 开发

最近推出的 Amazon Echo Show 为开发人员提供了开发 Skills 集成语音控制、可视化反馈和触摸输入的新机会。Amazon Alexa 首席宣传官 David Isbitski 对开发面向 Echo Show 的 Alexa Skills 的要点进行了汇总

面向 Echo Show 的自定义 Skills 可以用于以下四种交互类型:

  • 语音,这一直是交互的主要手段;
  • Alexa 应用,用于在移动或 Web 应用的 Cards 中显示额外的信息;
  • 屏幕显示,允许显示自定义内容,发送给 Alexa 应用的 Cards 会默认显示在屏幕上;
  • 触屏,让响应触摸动作成为可能。

要支持多模式界面,第一步是启用 Skill 的 Render Templates 选项,这可以在 Skill Information 页面实现。有两种模板可以使用:

  • 一个body模板,显示图片和文本;
  • 一个list模板,显示可滚动的项目列表。

为了在 Skill 实现中对所有可用的 Alexa 设备提供恰当的支持,你应该检查设备支持的接口。这可以通过检查随 Alexa 请求一起提供的event.context.System.device.supportedInterfaces来实现。例如,下面是一个 Alexa 请求,提供了DisplayAudioPlayerVideoApp接口:

{
   "context":{
           "device":{
              "supportedInterfaces":{
                 "Display":{},
                 "AudioPlayer": {},
                 "VideoApp":{}
              }
           }
      }
}

一旦你知道你将在上面运行 Skill 的设备支持显示,你就可以把要显示的内容放入响应的Display.RenderTemplate指令中显示出来。例如,你可以使用一个名为BodyTemplate1body模板显示一段文本和一张图片,如下所示:

{
  "directives": [
    {
      "type": "Display.RenderTemplate",
      "template": {
        "type": "BodyTemplate1",
        "token": "CheeseFactView",
        "backButton": "HIDDEN",
        "backgroundImage": ImageURL,
        "title": "Did You Know?",
        "textContent": {
          "primaryText": {
              "type": "RichText",
              "text": "The world’s stinkiest cheese is from Northern France" 
          }
        }
      }
    }
  ]
}

Echo Show 支持的另外一项新特性是视频回放,该功能可以通过 Skill Information 页面上相应的选项来启用。要开始视频回放,你需要在响应中包含指令VideoApp.Launch,如下所示:

"response": {
    "outputSpeech": null,
    "card": null,
    "directives": [
     {
         "type": "VideoApp.Launch",
         "videoItem":
         {
             "source": "https://www.example.com/video/sample-video-1.mp4",
            "metadata": {
                 "title": "Title for Sample Video",
                 "subtitle": "Secondary Title for Sample Video"              
            }
         }
    }    
     ],
     "reprompt": null
    }

最后,触摸输入可以通过若干预定义的 intents 来处理,比如,AMAZON.ScrollUpIntent 、AMAZON.ScrollLeftIntent等,它们会触发执行与之相关的自定义代码。

想要全面地了解 Echo Show 为开发人员提供的所有可能,请查阅Isbitski 的博文

查看英文原文Developing Skills for Amazon Echo Show

移动语言 & 开发