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上的流派名称” |
按用户状态划分的功能门 | 根据用户或应用状态的变化添加或移除应用功能 |
上表仅提供了一些受支持表述的示例。如需查看更完整的表述列表和发送的指令,请参阅SearchAndPlay
和SearchAndDisplayResults
。或者,如果您只想按指令浏览表述,请参阅表述参考。
对指令处理的期望
将应用与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日