音声操作について

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 アプリ デベロッパー
  • AAOS を使用して互換性のあるインフォテインメント システムを構築します。
  • 音声入出力を実装します(DSP 起動ワード検出のサポートを必要に応じて含める)。
  • 音声操作サービスに対するシステム特権を付与します。
  • アプリの設定画面へのアクセスに関する VoiceInteractionService の要件に従います。
  • VoiceInteractionService と関連 API を定義し、改善します。
  • API ドキュメント、サンプルコードなどのサポート資料を VIA デベロッパーに提供します。
  • UX のガイダンス、要件、推奨事項を提供します。
  • VoiceInteractionService API、RecognitionService API、NotificationListenerService API を実装します(詳細はアプリ開発を参照)。
  • 各車両デザイン システムに合わせて OEM が調整できるカスタマイズ可能な UI を提供します。

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 は、通常のアシスタントの機能に加えて、車両機能(空調、座席、車内ライトなど)を制御できます。これらの機能は、特権を許可リストに登録するに記載されているとおり、OEM がアクセス権を適切に設定していれば CarPropertyManager API を使用して統合できます(詳細は車両プロパティの読み取りをご覧ください)。
  • カスタマイズと一貫性は、他のどのフォーム ファクタよりも Automotive に効果があります。こうしたガイドラインの実装の詳細については、カスタマイズをご覧ください。