關於語音互動

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,即可識別這類應用程式。系統中一次只能選取一個應用程式做為預設應用程式。只有預設應用程式會維持運作 (由系統服務繫結),並且會接收 Push-To-Talk (PTT)Tap-To-Talk (TTT) 事件。

職責

下表說明各方的責任。

汽車製造商 (OEM) Android 開放原始碼計劃 應用程式開發人員
  • 使用 AAOS 建構相容的資訊娛樂系統。
  • 實作音訊輸入和輸出,可視需要加入 DSP 熱字詞偵測支援功能。
  • 為語音互動服務授予系統特權權限。
  • 請遵守 VoiceInteractionService 規定,以便存取應用程式的設定畫面。
  • 定義並改進 VoiceInteractionService 和相關 API。
  • 為 VIA 開發人員提供 API 說明文件、程式碼範例和其他支援資料。
  • 提供使用者體驗指南,說明相關規定和建議。
  • 實作 VoiceInteractionService API、RecognitionService API 和 NotificationListenerService API (詳情請參閱「應用程式開發」一文)。
  • 提供可自訂的 UI,讓原始設備製造商 (OEM) 調整以配合每個汽車設計系統。

使用者體驗規定

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、Notifications、Media、Telephony、ContactsProvider 等等。 VoiceInteractionSession 用來執行使用者指令的服務和應用程式。

汽車專屬概念

AAOS 與 Android 的差異如下:

  • 除了一般 Google 助理功能之外,AAOS VIA 還可控制車輛功能,例如空調、座椅和車內燈光。只要原始設備製造商 (OEM) 正確設定存取權,即可使用 CarPropertyManager API 整合這些功能 (詳情請參閱「讀取車輛屬性」),如需瞭解如何設定存取權,請參閱「特權權限許可清單」。
  • 在汽車應用程式中,自訂和一致性比其他板型規格更為重要。如要進一步瞭解如何實施這些規範,請參閱「自訂化」。