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 リクエストを処理するとともに、アシストとスクリーンショットのデータを取得します。
- VoiceInteractionSessionService(VSS)。音声操作セッションを処理する VIA の一部であるサービス。このサービスは、ユーザーの音声操作時に Android のシステム サービスからバインドされます。このセッションのすべてのビジネス ロジックは、
VoiceSession
クラスに実装されています。このサービスの存続が保証されているのは、単一ユーザーの音声セッションの間のみです。 - 音声操作アプリ(VIA)。音声操作を提供するよう設計された Android アプリ(アシスタントと呼ばれます)。このようなアプリは、マニフェストに
VoiceInteractionService
を含めることで識別できます。 デフォルトとして選択できるのは、システム内で同時に 1 つのアプリのみです。 デフォルトのアプリのみが存続し(システム サービスからバインドされます)、プッシュツートーク(PTT)またはタップツートーク(TTT)イベントのレシーバーとなります。
責任
次の表は、各当事者の責任について説明しています。
自動車メーカー(OEM) | AOSP | アプリ デベロッパー |
---|---|---|
|
|
|
UX の要件
OEM は、優れたユーザー エクスペリエンスを提供する最終責任を負っています。 OEM は、プリインストールされたすべての音声操作サービスがプリロード アシスタント: UX ガイダンスの要件を満たしていることを確認する必要があります。
アシスタントの主なエクスペリエンス
自動車の音声操作アプリ(VIA)では、次のアクションを実行します。
- [必須] システム対応音声操作トリガー(PTT、TTT)に応答します。
- [必須] 進行状況(リッスン、処理、フルフィルメントなど)を視覚的に表示します。
- [必須] 音声を使用して、ユーザー リクエストを理解して完了したことを示します。
- [必須] 他のアプリの音声認識ツールとして機能します(SpeechRecognizer API を参照)。
- [推奨] 起動ワードトリガーに応答します。
- [任意] この VIA の設定を変更できる設定アクティビティ(権限、起動ワード構成、ログインなど)をユーザーに表示します。
- [任意] アシストデータ(
Intent#ACTION_ASSIST
)を処理します。 - [任意] キーガード(ロック画面)からの音声操作をサポートします。
コンポーネント
音声操作アプリは次のアクターとやり取りします。
図 1. 音声操作アクター
詳細
VoiceInteractionManagerService
。このシステム サービスは、デフォルトの VIA を管理し、その機能をシステムの他の部分に公開します。RecognitionService
。このサービスは、システム内の他のアプリに音声認識機能を提供します。SoundTrigger
。起動ワード管理を実装しており、AlwaysOnHotwordDetector を介して VIA で使用できます。MediaRecorder
。起動ワード検出(CPU を使用する場合)と音声認識の両方に対する音声入力へのアクセスを提供します。PhoneWindowManager
/CarInputService
。これらのサービスは、(特に)VoiceInteractionManagerService
により、キーイベントの処理、PTT の VIA へのルーティングを行います。User
。ユーザーがトリガー(PTT、TT、起動ワード)、または Voice Plate UI により VIA と通信します。- CarService、Notifications、Media、Telephony、ContactsProvider など。 ユーザーのコマンドを補完するために VoiceInteractionSession によって使用されるサービスとアプリ。
自動車に固有のコンセプト
AAOS は以下の点で Android とは異なります。
- AAOS VIA は、通常のアシスタントの機能に加えて、車両機能(HVAC、座席、室内照明など)を制御できます。これらの機能は、特権を許可リストに登録するに記載されているとおり、OEM がアクセス権を適切に設定していれば CarPropertyManager API を使用して統合できます(詳細は車両プロパティの読み取りをご覧ください)。
- カスタマイズと一貫性は、他のどのフォーム ファクタよりも Automotive に効果があります。こうしたガイドラインの実装の詳細については、カスタマイズをご覧ください。