版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.10.07 |
前言
大家都知道随着人工智能的发展,会掀起来另外一个工业革命,而语音识别就是人工智能的初始阶段,但是每个公司做的都不一样,涉及到一系列的语音的采集和算法实现,苹果的Siri就是业界语音识别的代表性的产品。接下来的几篇我们就详细解析一下SiriKit这个框架。
框架基本
下面看一下该框架的基本信息。
处理来自Siri
或Maps
的应用程序服务的用户请求。
SiriKit
包含了Intents
和Intent UI
框架,您可以使用它来实现将服务与Siri和Maps集成在一起的应用程序扩展。 SiriKit支持两种类型的应用程序扩展:
-
Intents
应用程序扩展程序从SiriKit接收用户请求,并将其转换为特定于应用程序的操作。 例如,用户可能会要求Siri发送消息,预订或使用您的应用程序开始锻炼。 - 在
Intents app extension
完成用户请求后,Intents UI
应用程序扩展程序会在Siri或Maps界面中显示品牌或其他自定义内容。 创建此扩展是可选的。
SiriKit定义了用户可以做出的请求类型(称为Intents
)。 相关意图分组成域,以清楚您应用程序中可能支持哪些意图。 例如,消息域具有发送消息,搜索消息和将消息标记为已读或未读的意图。
您的应用程序扩展很少直接与用户通信。 Siri和Maps通常处理与用户的所有通信,并在需要您提供信息时呼叫您的分机。 您可以提供Intents UI应用程序扩展,以自定义Siri和Maps显示的信息,但这样做是可选的。
下面我们就看一下这个框架的基本情况。
框架结构
下面我们就看一下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
- 交互对象的参数。
后记
未完,待续~~~