2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
音声操作について
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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 に効果があります。こうしたガイドラインの実装の詳細については、カスタマイズをご覧ください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# About voice interaction\n\nThe Voice Interaction Service API provides an abstraction over different\npotential voice control apps. Implementations can be developed following the guidelines\ndescribed in\n[App development](/docs/automotive/voice/voice_interaction_guide/app_development).\nThe content in this integration guide describes how to integrate these apps into\na specific Android Automotive OS (AAOS) system image.\n\nTerminology\n-----------\n\nThese terms are used through this guide:\n\n- **Assist data.** When a voice interaction session is started, the system is able to capture views and screenshots, and pass this information to the session. Apps can expose additional information by implementing [Activity#onProvideAssistData()](https://developer.android.com/reference/android/app/Activity#onProvideAssistData(android.os.Bundle)) and [Activity#onProvideAssistContent()](https://developer.android.com/reference/android/app/Activity#onProvideAssistContent(android.app.assist.AssistContent)).\n- **[Push-to-talk (PTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_PUSH_TO_TALK)**. Physical voice control button, usually located in the steering wheel.\n- **RecognitionService (RS).** Voice recognition service used by apps through the [SpeechRecognizer](https://developer.android.com/reference/android/speech/SpeechRecognizer)`\n ` API. VIAs must include both the `VoiceInteractionService` *and* the `RecognitionService`.\n- **[Tap-to-talk (TTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_ASSIST_GESTURE)** . Software voice control button, usually included as part of the system UI). In Android this is also referred to as *Assist Gesture*.\n- **[VoiceInteractionService](https://developer.android.com/reference/android/service/voice/VoiceInteractionService)**. Lightweight system service implemented by the VIA developer. The selected service is bound from system service on boot, and is always running.\n- **VoiceInteractionSession (VIS).** This class encapsulates the user interaction business logic. It is responsible for presenting the user with status of the voice interaction, handling VoiceInteractor requests and receiving assist and screenshot data.\n- **VoiceInteractionSessionService (VSS).** A service, part of a VIA, responsible for handling a voice interaction session. This service is bound from Android's system service during a voice interaction with a user. All business logic of this session is implemented in the `VoiceSession` class. This service is only guaranteed to stay alive during a single user voice session.\n- **Voice Interaction App (VIA).** Android app designed to serve as a voice control (referred to as *assistant* ). These apps can be identified by including a `VoiceInteractionService` in their manifest. Only one of these apps can be selected as *default* at a time in the system. Only the default app will be maintained alive (bound from a system service), and will be the receiver of [Push-To-Talk (PTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_PUSH_TO_TALK) or [Tap-To-Talk (TTT)](https://developer.android.com/reference/android/service/voice/VoiceInteractionSession#SHOW_SOURCE_ASSIST_GESTURE) events.\n\nResponsibilities\n----------------\n\nThis table describes the responsibilities of each party.\n\n| Car Manufacturers (OEMs) | AOSP | App Developers |\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - Build a [compatible](/compatibility/android-cdd) infotainment system with AAOS. - Implement audio input and output, optionally including DSP hotword detection support. - Grant system-privileged permissions for the voice interaction services. - Respect `VoiceInteractionService` requirements regarding access to app's settings screens. | - Define and evolve `VoiceInteractionService` and related APIs. - Provide API documentation, sample code and other support material to VIA developers. - Provide UX guidance with requirements and recommendations. | - Implement `VoiceInteractionService` API, RecognitionService API and NotificationListenerService API (see detailed description at [App development](/docs/automotive/voice/voice_interaction_guide/app_development)). - Provide a customizable UI that can be adjusted by OEMs to match each car design system. |\n\nUX requirements\n---------------\n\nOEMs have the ultimate responsibility of providing a good user experience to customers.\nOEMs must ensure that the all pre-installed voice interaction services fulfill the\nrequirements described in\n[Preloaded Assistants: UX Guidance](/static/docs/automotive/voice/voice_interaction_guide/preloaded-assistants_UX-guidelines.pdf).\n\nCore assistant experience\n-------------------------\n\nAn automotive Voice Interaction Application (VIA) performs the following actions:\n\n- \\[MUST\\] Respond to system-handled voice interaction triggers (PTT, TTT).\n- \\[MUST\\] Display a visual representation of their progress (for example, listening, processing, and fulfilling).\n- \\[MUST\\] Use voice or sounds to indicate understanding and completion of user requests.\n- \\[MUST\\] Serve as a speech recognizer for other apps (see the [SpeechRecognizer\n API](https://developer.android.com/reference/android/speech/SpeechRecognizer)).\n- \\[SHOULD\\] Respond to a hotword trigger.\n- \\[MAY\\] Display a settings activity where users can configure this VIA (for example, permissions, hotword configuration, and sign-in).\n- \\[MAY\\] Handle assist data ([Intent#ACTION_ASSIST](https://developer.android.com/reference/android/content/Intent#ACTION_ASSIST))\n- \\[MAY\\] Support voice interaction from Keyguard (lock screen).\n\nComponents\n----------\n\nAt a high level, a voice interaction app interacts with these actors:\n\n**Figure 1.** Voice interaction actors\n\nDetails:\n\n- `VoiceInteractionManagerService`. This system service is responsible for managing the default VIA, and exposing its functionality to the rest of the system.\n- `RecognitionService`. This service exposes speech recognition capabilities to other apps in the system.\n- `SoundTrigger`. Implements hotword management and it's available to VIAs through the AlwaysOnHotwordDetector.\n- `MediaRecorder`. Provides access to audio input for both hotword detection (when using CPU) and speech recognition.\n- `PhoneWindowManager`/`CarInputService`. These services are responsible (among other things) for handling key events, routing PTT to the VIA, by means of the `VoiceInteractionManagerService`.\n- `User`. The user interacts with a VIA by means of Triggers (PTT, TTT, Hotword) or the Voice Plate UI.\n- **CarService, Notifications, Media, Telephony, ContactsProvider, and so on.** Services and apps used by the VoiceInteractionSession to fulfill the user's commands.\n\nAutomotive-specific concepts\n----------------------------\n\nAAOS diverges from Android in the following aspects:\n\n- Besides normal Assistant functionalities, AAOS VIAs can control vehicle functions (for example, HVAC, seats, and interior lights). These functionalities can be integrated using the CarPropertyManager API (see more at [Read a\n vehicle property](/docs/automotive/voice/voice_interaction_guide/fulfilling_commands#vehicle-property)) provided OEMs configure access correctly as described in [Privileged permission allowlisting](/docs/core/permissions/perms-allowlist).\n- Customization and consistency are more relevant in Automotive than in any other form factor. See [Customization](/docs/automotive/voice/voice_interaction_guide/integration_flows#customization) to read more about implementing these guidelines."]]