开发者控制台

Fire TV的视频技能工具包(VSK)概览

Fire TV的视频技能工具包(VSK)概览

借助Fire TV的视频技能工具包(VSK),客户可以使用自然语言命令搜索和播放应用内容、控制媒体播放等等。例如,在应用中实现VSK后,客户可以说出“从应用名称播放《博斯》”或是“播放《博斯》之类的短语,然后您的应用就会播放相应的媒体内容。VSK与目录集成配合使用,可在Fire TV上以多种方式显示您的内容。

视频教程

以下视频教程从大体上介绍了如何采用仅限应用的集成,将VSK集成到Fire TV应用中:

语音功能与目录集成

将您的应用与VSK集成的先决条件是首先引入您的目录,然后与Fire TV的通用搜索和浏览集成(也称为“启动器集成”)。完成这一目录集成后,您的客户将获得应用启动功能和隐式快速播放。例如,客户可以说出以下表述:

  • 应用启动: “打开应用名称
  • 隐式快速播放: “观看视频名称

隐式表示请求中未指定该应用,因此Fire TV会在所有目录中查找匹配的视频。如果客户在某个应用已(在前台)打开的情况下说出请求,则Fire TV会先在该应用的目录中查找。

语音功能与VSK集成

通过将VSK与您的应用集成,您可以为客户提供更丰富的语音功能,让客户能够更轻松地发现、查找应用中的内容并与之互动(无需依靠遥控器)。与VSK集成后,Alexa会将请求直接传送到您的应用(采用基于JSON的信息块的形式,称为“指令”),因此您可以使用自己应用的逻辑来处理请求。这样一来,在如何与客户的请求(称为“表述”)进行交互方面,您的控制权和能力会得到增强。

与VSK集成后,您可以与两个主要的VSK接口进行交互: SearchAndPlay(包括“观看/播放……”请求)和SearchAndDisplayResults(包括“搜索/查找……”请求)API参考描述了这两个接口支持的表述的完整列表,以及这两个接口发送至您的应用的指令。除了应用启动和隐式快速播放(已通过目录集成提供)之外,客户在您集成VSK后可以说出的请求还包括以下示例。

功能 表述或示例
观看标题(显式) “在应用名称上观看视频名称
按类型搜索 “查找类型名称
按演员搜索 “搜索演员名字的电影”
按系列片观看 “在应用名称上观看系列片
按制作公司搜索(显式) “在应用名称上搜索制作公司
按体育运动类型观看 “观看体育运动类型
按季和剧集观看 “观看电视节目第2季第3集
应用前台/后台状态上下文搜索消除歧义 用户: “观看喜剧
应用在前台: (Alexa)“这里为您提供了一些喜剧”
应用在后台: (Alexa)“我可以在应用1应用2上执行这个任务,您想要哪一种方式?”
多轮对话能力 (消除歧义后)(用户)“应用2
(Alexa多轮对话)“好的,这是应用2上的流派名称
按用户状态划分的功能门 根据用户或应用状态的变化添加或移除应用功能

上表仅提供了一些受支持表述的示例。如需查看更完整的表述列表和发送的指令,请参阅SearchAndPlaySearchAndDisplayResults。或者,如果您只想按指令浏览表述,请参阅表述参考

对指令处理的期望

将应用与VSK集成时,您应该了解自己的Fire TV应用将会接收到哪些指令,以及您应该如何处理这些指令。指令是从Alexa发送至您的应用的一组数据和指示,以JSON表示。例如,指令可能会是搜索电视节目或播放电影。如果用户说出“观看蝙蝠侠”,则Alexa会向您的应用发送一个SearchAndPlay指令,其中包含以下有效负载

{
  "searchText": {
    "transcribed": "batman"
  },
  "entities": [
    {
      "externalIds": {
        "ENTITY_ID": "123"
      },
      "type": "Franchise",
      "uri": "entity://avers/franchise/Batman",
      "value": "Batman"
    }
  ]
}

transcribed是客户在请求中所使用短语的精简版。uri是您目录中媒体的标识符。type表示该媒体属于一个系列片(系列片是指有续集的电影)。关于有效负载对象,相应的API参考中给出了详细定义。

Alexa会将这些指令发送至您的应用,而您应该对指令做出反应(例如显示请求的结果或播放请求的视频)。本文档将描述相关指令,但不会提供有关如何在应用中处理指令的详细说明——这方面逻辑需要您自行开发。

VSK实现选项: 仅限应用或云端

您可以通过两种不同的方式在Fire TV应用中实现VSK:

  • 仅限应用的集成 接收直接传送到您应用中的指令。Fire TV上一项名为VSK Agent的服务通过广播意图将指令从Alexa路由到您的应用。您应用中的BroadcastReceiver会处理这些意图。(此实现使用了意图和BroadcastReceiver,遵循与目录集成相似的模式。)
  • 云端集成: 将接收的指令传送到AWS中的Lambda函数,然后通过消息服务(通常是Amazon Device Messaging)将指令(或是处理指令后的结果)发送至您的应用。然后,应用对传入消息进行授权并处理请求。

云端集成是集成VSK的原始方式。但是,云端集成涉及许多AWS组件(Lambda、IAM、ADM、CloudWatch等),并且需要很长时间来进行开发。仅限应用的实现(新近发布)所需的开发时间大大减少,并且不涉及任何AWS组件。所有集成都在Android系统中以原生方式完成。

此外,仅限应用的实现可以显著提升性能,因为发送至Lambda和ADM的消息没有中间步骤。一切都直接发生在您的应用和Fire TV上的VSK Agent中。由于实现起来快速又轻松,仅限应用的集成现在已成为默认向合作伙伴推荐的途径。

云端集成仍将受到支持,并且可供已经以这种方式实现VSK的合作伙伴或是更喜欢云端方法的合作伙伴使用。对于拥有复杂逻辑或是需要进行复杂处理和查找的合作伙伴来说,云端实现可能仍然是一个很好的选择,但最好使用外部Lambda函数进行处理,而不是直接在您的Android应用中编写代码。对于那些希望在应用之外将其处理逻辑外部化,以便与在Fire TV上访问受到限制的服务或系统集成的合作伙伴来说,云端实施可能也是更可取的方法。

示例应用

针对仅限应用的集成和云端集成,亚马逊都提供了示例应用(基于Android TV Leanback库)来演示集成方式(请参阅仅限应用的示例应用云端示例应用)。鉴于VSK的实现可能需要很长时间,许多合作伙伴希望立即探索VSK的工作方式(并查看应用或Lambda收到的指令),以更好地了解相关预期。示例应用提供了一种方法来快速探索集成VSK的应用,也可以作为集成的参考。在本文档中,与示例应用相关的说明通常出现在标注中,如下所示:

示例应用注意事项

这是关于示例应用程序的注释。通常,此注释会指出当前步骤中是否需要编写一些编码,或者示例应用中是否已完成相关代码的编写。

您需要具备的条件

要完成VSK集成,您需要具备以下条件:

  • Fire TV设备。您可以使用任何Fire TV设备对集成进行测试。您可以使用Fire TV设备遥控器上的麦克风按钮向电视机发出语音请求。(如果您的遥控器没有麦克风,则可以将Echo与Fire TV配对。) 推荐使用的Fire TV设备是Fire TV Stick 4K,但是可以使用任何Fire TV设备。
  • Android应用。您需要一款可以播放流媒体的原生Android应用。如果您没有应用,或者想要通过示例应用探索VSK,则可以使用示例应用
  • 目录集成。需要先集成您的目录,然后才能完成VSK集成。如果您尚未开始这一操作,则可以在开发过程中使用示例应用的目录。
  • 亚马逊开发者账户。您需要一个亚马逊开发者账户(免费使用)。如果您还没有账户,请前往developer.amazon.com,单击右上角的登录,然后单击创建您的Amazon Developer账户

受支持的国家/地区

VSK支持因国家/地区而异。如果某个国家/地区支持VSK,则意味着Alexa可以理解用户使用该国家/地区的语言提出的请求,包括许多本地实体(例如该国家/地区的运动队或电影片名)。有关更多详细信息,请参阅设备上视频技能支持的国家/地区

术语表

Alexa引入了许多您可能不熟悉的新术语。您可以在词汇表中找到术语的定义。

后续步骤

在执行下一步操作之前,请先阅读对仅限应用的集成(也是推荐的VSK集成)的大体描述。


Last updated: 2021年3月5日