Voice Interaction Service API 為不同的語音控制應用程式提供抽象化機制。您可以按照「應用程式開發」一文所述的規範開發實作項目。本整合指南的內容說明如何將這些應用程式整合到特定的 Android Automotive OS (AAOS) 系統映像檔中。
術語
本指南中使用的術語如下:
- 輔助資料。啟動語音互動工作階段時,系統可以擷取檢視畫面和螢幕截圖,並將這些資訊傳遞至工作階段。應用程式可以實作
Activity#onProvideAssistData()
和Activity#onProvideAssistContent()
以公開其他資訊。 - 按下通話 (PTT)。實體語音控制按鈕,通常位於方向盤上。
- RecognitionService (RS)。應用程式透過
SpeechRecognizer
API 使用的語音辨識服務。VIA 必須同時包含VoiceInteractionService
和RecognitionService
。 - 輕觸通話 (TTT):軟體語音控制按鈕,通常隨附於系統 UI 中。在 Android 中,這也稱為「輔助手勢」。
VoiceInteractionService
:由 VIA 開發人員實作的輕量系統服務。系統會在開機時將所選服務與系統服務繫結,並持續執行。- VoiceInteractionSession (VIS)。這個類別會封裝使用者互動商業邏輯。負責向使用者顯示語音互動狀態、處理 VoiceInteractor 要求,以及接收 Assist 和螢幕截圖資料。
- VoiceInteractionSessionService (VSS)。服務 (屬於 VIA),負責處理語音互動工作階段。當使用者透過語音互動時,這項服務會由 Android 系統服務繫結。這個工作階段的所有商業邏輯都已在
VoiceSession
類別中實作。這項服務只保證在單一使用者語音工作階段中有效。 - 語音互動應用程式 (VIA)。可做為語音控制功能的 Android 應用程式 (稱為「助理」)。在資訊清單中加入
VoiceInteractionService
,即可識別這些應用程式。系統中一次只能選取一個應用程式做為預設應用程式。只有預設應用程式會維持運作 (由系統服務繫結),並做為推送對講 (PTT) 或輕觸對講 (TTT) 事件的接收器。
責任
下表說明各方的責任。
汽車製造商 (OEM) | Android 開放原始碼計劃 | 應用程式開發人員 |
---|---|---|
|
|
|
使用者體驗規定
OEM 廠商應負最終責任,為客戶提供良好的使用者體驗。原始設備製造商 (OEM) 必須確保所有預先安裝的語音互動服務都符合「預先載入的助理:使用者體驗指南」一文所述的規定。
核心助理服務體驗
汽車語音互動應用程式 (VIA) 會執行下列操作:
- [必須] 回應系統處理的語音互動觸發事件 (PTT、TTT)。
- [必備] 以圖像化方式顯示進度 (例如聆聽、處理和執行)。
- [必須] 使用語音或聲音來表示理解及完成使用者要求。
- [必須] 做為其他應用程式的語音辨識器 (請參閱 SpeechRecognizer API)。
- [SHOULD] 回應啟動字詞觸發事件。
- [MAY] 顯示設定活動,讓使用者可以進行這項 VIA (例如權限、啟動字詞設定和登入)。
- [MAY] 處理輔助資料 (
Intent#ACTION_ASSIST
) - [MAY] 支援透過螢幕鎖定畫面 (Keyguard) 進行語音互動。
元件
大致上來說,語音互動應用程式會與以下發動者互動:
圖 1. 語音互動動作
詳細資料:
VoiceInteractionManagerService
。這個系統服務負責管理預設 VIA,並將其功能公開給系統的其他部分。RecognitionService
。這項服務會將語音辨識功能公開給系統中的其他應用程式。SoundTrigger
:實作啟動字詞管理功能,並且可透過 AlwaysOnHotwordDetector 使用 VIA。MediaRecorder
:提供對啟動字詞偵測 (使用 CPU) 和語音辨識功能的音訊輸入存取權。PhoneWindowManager
/CarInputService
。這些服務負責處理關鍵事件,並透過VoiceInteractionManagerService
將 PTT 路由至 VIA。User
:使用者透過觸發條件 (PTT、TTT、熱字) 或 Voice Plate UI 與 VIA 互動。- CarService、Notification、Media、Telephony、ContactProvider 等。VoiceInteractionSession 用來執行使用者指令的服務和應用程式。
汽車專屬概念
AAOS 與 Android 的差異如下:
- 除了一般 Google 助理功能之外,AAOS VIA 還可控制車輛功能,例如空調、座椅和車內燈光。只要原始設備製造商 (OEM) 正確設定存取權,即可使用 CarPropertyManager API 整合這些功能 (詳情請參閱「讀取車輛屬性」),如需瞭解如何設定存取權,請參閱「特權權限許可清單」。
- 與其他板型規格相比,自訂和一致性在 Automotive 中更相關。如要進一步瞭解如何實施這些規範,請參閱「自訂化」。