關於語音互動

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 開放原始碼計劃 應用程式開發人員
  • 使用 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、Notification、Media、Telephony、ContactProvider 等。VoiceInteractionSession 用來執行使用者指令的服務和應用程式。

汽車專屬概念

AAOS 與 Android 的差異如下:

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