SiriKit框架详细解析(一)—— 基本概览(一)

版本记录

版本号 时间
V1.0 2017.10.07

前言

大家都知道随着人工智能的发展,会掀起来另外一个工业革命,而语音识别就是人工智能的初始阶段,但是每个公司做的都不一样,涉及到一系列的语音的采集和算法实现,苹果的Siri就是业界语音识别的代表性的产品。接下来的几篇我们就详细解析一下SiriKit这个框架。

框架基本

下面看一下该框架的基本信息。

SiriKit框架详细解析(一)—— 基本概览(一)_第1张图片

处理来自SiriMaps的应用程序服务的用户请求。

SiriKit包含了IntentsIntent UI框架,您可以使用它来实现将服务与Siri和Maps集成在一起的应用程序扩展。 SiriKit支持两种类型的应用程序扩展:

  • Intents应用程序扩展程序从SiriKit接收用户请求,并将其转换为特定于应用程序的操作。 例如,用户可能会要求Siri发送消息,预订或使用您的应用程序开始锻炼。
  • Intents app extension完成用户请求后,Intents UI应用程序扩展程序会在Siri或Maps界面中显示品牌或其他自定义内容。 创建此扩展是可选的。
SiriKit框架详细解析(一)—— 基本概览(一)_第2张图片
Figure 1 Making your services available from Siri and Maps

SiriKit定义了用户可以做出的请求类型(称为Intents)。 相关意图分组成域,以清楚您应用程序中可能支持哪些意图。 例如,消息域具有发送消息,搜索消息和将消息标记为已读或未读的意图。

您的应用程序扩展很少直接与用户通信。 Siri和Maps通常处理与用户的所有通信,并在需要您提供信息时呼叫您的分机。 您可以提供Intents UI应用程序扩展,以自定义Siri和Maps显示的信息,但这样做是可选的。

下面我们就看一下这个框架的基本情况。

SiriKit框架详细解析(一)—— 基本概览(一)_第3张图片
SiriKit框架详细解析(一)—— 基本概览(一)_第4张图片

框架结构

下面我们就看一下SiriKit的框架结构。

1. First Steps

  • Requesting Authorization to Use SiriKit
    • 请求用户的权限,以便Siri和地图可以与您的Intents应用程序扩展进行通信。
  • Creating an Intents App Extension
    • 在Xcode项目中添加和配置Intents应用程序扩展。

2. Intents App Extension

Intents应用程序扩展程序可以响应来自Siri和Maps的用户请求。

  • Structuring Your Code to Support App Extensions
    • 将您的后端服务移动到一个私有框架,以便您的应用程序和您的应用程序扩展使用它们。
  • Dispatching Intents to Handler Objects
    • 为SiriKit提供能够处理给定意图的对象。
  • Resolving and Handling Intents
    • 解决,确认和处理用户请求您的应用程序的服务
  • INIntentHandlerProviding
    • 用于将意图调度到处理这些意图的自定义对象的接口。
  • Extension-Related Classes
    • 了解您用来构建Intents扩展程序的类。

3. Intent Domains

SiriKit根据可能支持它们的应用程序类型将意图分组到域中。

  • VoIP Calling
    • 启动呼叫并搜索用户的呼叫历史记录。
  • Messaging
    • 发送消息并搜索用户收到的消息。
  • Payments
    • 在用户之间发送付款或支付账单。
  • Lists and Notes
    • 创建和管理笔记和待办事项列表项。
  • Visual Codes
    • 使用快速响应(QR)代码传送联系人和付款信息。
  • Photos
    • 搜索并显示照片。
  • Workouts
    • 开始,结束和管理健身程序。
  • Ride Booking
    • 预订并报告其状态。
  • Car Commands
    • 管理车门锁并获得车辆状态。
  • CarPlay
    • 与车辆的CarPlay系统进行交互。
  • Restaurant Reservations
    • 通过Maps应用的帮助,创建并管理餐厅预订

4. Common Objects

通常的数据类型,如字符串和数字类型都在SiriKit中使用。

  • Common Data Types
    • 管理常用的数据类型,如字符串,日期,货币,图像和联系人。
  • Common Resolution Results
    • 将常见类型的数据(如字符串和日期)解析为应用程序识别的特定值。
  • Intent Class Identifiers
    • 识别用户通知指定的意图。

5. Vocabulary

定义通过Siri提出请求时用户可以说话的特定于应用的术语。

  • Registering Custom Vocabulary with SiriKit
    • 注册您的应用程序的自定义术语,并提供如何使用您的应用程序与Siri的示例短语。
  • INVocabulary
    • 用于注册可能包含在Siri请求中的用户特定词汇表的对象。

6. Custom UI

  • Creating an Intents UI Extension
    • 创建Intents UI应用程序扩展,以自定义Siri和Maps显示的界面。
  • INUIHostedViewControlling
    • 在Siri和Maps界面中呈现自定义内容的方法。
  • INUIHostedViewSiriProviding
    • 用于隐藏Siri提供的默认接口的部分的方法。
  • INParameter
    • 交互对象的参数。

后记

未完,待续~~~

SiriKit框架详细解析(一)—— 基本概览(一)_第5张图片

你可能感兴趣的:(SiriKit框架详细解析(一)—— 基本概览(一))