版本記錄
| 版本號 | 時間 |
|---|---|
| V1.0 | 2017.10.07 |
前言
大家都知道隨著人工智能的發(fā)展,會掀起來另外一個工業(yè)革命,而語音識別就是人工智能的初始階段,但是每個公司做的都不一樣,涉及到一系列的語音的采集和算法實現(xiàn),蘋果的Siri就是業(yè)界語音識別的代表性的產(chǎn)品。接下來的幾篇我們就詳細解析一下SiriKit這個框架。
框架基本
下面看一下該框架的基本信息。

處理來自Siri或Maps的應用程序服務的用戶請求。
SiriKit包含了Intents和Intent UI框架,您可以使用它來實現(xiàn)將服務與Siri和Maps集成在一起的應用程序擴展。 SiriKit支持兩種類型的應用程序擴展:
-
Intents應用程序擴展程序從SiriKit接收用戶請求,并將其轉換為特定于應用程序的操作。 例如,用戶可能會要求Siri發(fā)送消息,預訂或使用您的應用程序開始鍛煉。 - 在
Intents app extension完成用戶請求后,Intents UI應用程序擴展程序會在Siri或Maps界面中顯示品牌或其他自定義內(nèi)容。 創(chuàng)建此擴展是可選的。

Figure 1
Making your services available from Siri and Maps
SiriKit定義了用戶可以做出的請求類型(稱為Intents)。 相關意圖分組成域,以清楚您應用程序中可能支持哪些意圖。 例如,消息域具有發(fā)送消息,搜索消息和將消息標記為已讀或未讀的意圖。
您的應用程序擴展很少直接與用戶通信。 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
- 用于將意圖調(diào)度到處理這些意圖的自定義對象的接口。
-
Extension-Related Classes
- 了解您用來構建
Intents擴展程序的類。
- 了解您用來構建
3. Intent Domains
SiriKit根據(jù)可能支持它們的應用程序類型將意圖分組到域中。
-
VoIP Calling
- 啟動呼叫并搜索用戶的呼叫歷史記錄。
-
Messaging
- 發(fā)送消息并搜索用戶收到的消息。
-
Payments
- 在用戶之間發(fā)送付款或支付賬單。
-
Lists and Notes
- 創(chuàng)建和管理筆記和待辦事項列表項。
-
Visual Codes
- 使用快速響應(QR)代碼傳送聯(lián)系人和付款信息。
-
Photos
- 搜索并顯示照片。
-
Workouts
- 開始,結束和管理健身程序。
-
Ride Booking
- 預訂并報告其狀態(tài)。
-
Car Commands
- 管理車門鎖并獲得車輛狀態(tài)。
-
CarPlay
- 與車輛的CarPlay系統(tǒng)進行交互。
-
Restaurant Reservations
- 通過Maps應用的幫助,創(chuàng)建并管理餐廳預訂
4. Common Objects
通常的數(shù)據(jù)類型,如字符串和數(shù)字類型都在SiriKit中使用。
-
Common Data Types
- 管理常用的數(shù)據(jù)類型,如字符串,日期,貨幣,圖像和聯(lián)系人。
-
Common Resolution Results
- 將常見類型的數(shù)據(jù)(如字符串和日期)解析為應用程序識別的特定值。
-
Intent Class Identifiers
- 識別用戶通知指定的意圖。
5. Vocabulary
定義通過Siri提出請求時用戶可以說話的特定于應用的術語。
-
Registering Custom Vocabulary with SiriKit
- 注冊您的應用程序的自定義術語,并提供如何使用您的應用程序與Siri的示例短語。
-
INVocabulary
- 用于注冊可能包含在Siri請求中的用戶特定詞匯表的對象。
6. Custom UI
-
Creating an Intents UI Extension
- 創(chuàng)建
Intents UI應用程序擴展,以自定義Siri和Maps顯示的界面。
- 創(chuàng)建
-
INUIHostedViewControlling
- 在Siri和Maps界面中呈現(xiàn)自定義內(nèi)容的方法。
-
INUIHostedViewSiriProviding
- 用于隱藏Siri提供的默認接口的部分的方法。
-
INParameter
- 交互對象的參數(shù)。
后記
未完,待續(xù)~~~
