À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
À propos de l'interaction vocale
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'API Voice Interaction Service fournit une abstraction sur différentes applications de commande vocale potentielles. Les implémentations peuvent être développées en suivant les consignes décrites dans la section Développement d'applications.
Le contenu de ce guide d'intégration explique comment intégrer ces applications dans une image système Android Automotive OS (AAOS) spécifique.
Terminologie
Les termes suivants sont utilisés dans ce guide:
- Données d'assistance. Lorsqu'une session d'interaction vocale est lancée, le système peut capturer des vues et des captures d'écran, et transmettre ces informations à la session. Les applications peuvent exposer des informations supplémentaires en implémentant
Activity#onProvideAssistData()
et Activity#onProvideAssistContent()
.
- Appuyer pour parler (PTT) Bouton de commande vocale physique, généralement situé sur le volant.
- RecognitionService (RS) Service de reconnaissance vocale utilisé par les applications via l'API
SpeechRecognizer
. Les VIA doivent inclure à la fois VoiceInteractionService
et RecognitionService
.
- Appuyer pour parler Bouton de commande vocale logicielle, généralement inclus dans l'interface utilisateur du système) Sur Android, il est également appelé geste d'assistance.
VoiceInteractionService
: service système léger implémenté par le développeur VIA. Le service sélectionné est lié au service système au démarrage et s'exécute en permanence.
- VoiceInteractionSession (VIS) Cette classe encapsule la logique métier d'interaction utilisateur. Il est chargé de présenter à l'utilisateur l'état de l'interaction vocale, de gérer les requêtes VoiceInteractor et de recevoir des données d'assistance et de capture d'écran.
- VoiceInteractionSessionService (VSS) Service, qui fait partie d'un VIA, chargé de gérer une session d'interaction vocale. Ce service est lié au service système d'Android lors d'une interaction vocale avec un utilisateur. Toute la logique métier de cette session est implémentée dans la classe
VoiceSession
.
La durée de vie de ce service n'est garantie que pendant une session vocale d'un seul utilisateur.
- Application d'interaction vocale (VIA) Application Android conçue pour servir de commande vocale (appelée assistant). Ces applications peuvent être identifiées en incluant un
VoiceInteractionService
dans leur fichier manifeste.
Vous ne pouvez sélectionner qu'une seule de ces applications comme application par défaut à la fois dans le système.
Seule l'application par défaut sera maintenue active (liée à partir d'un service système) et recevra les événements PTT (Push-To-Talk) ou TTT (Tap-To-Talk).
Responsabilités
Ce tableau décrit les responsabilités de chaque partie.
Constructeurs automobiles (OEM) |
AOSP |
Développeurs d'applications |
- Créez un système d'infodivertissement compatible avec AAOS.
- Implémentez l'entrée et la sortie audio, y compris la prise en charge de la détection de mots clés DSP.
- Accordez des autorisations système privilégiées aux services d'interaction vocale.
- Respectez les exigences
VoiceInteractionService concernant l'accès aux écrans de paramètres de l'application.
|
- Définir et faire évoluer
VoiceInteractionService et les API associées.
- Fournir aux développeurs VIA la documentation de l'API, des exemples de code et d'autres documents d'assistance.
- Fournir des conseils en matière d'expérience utilisateur avec des exigences et des recommandations
|
- Implémentez les API
VoiceInteractionService , RecognitionService et NotificationListenerService (voir la description détaillée dans la section Développement d'applications).
- Fournissez une UI personnalisable que les OEM peuvent ajuster pour qu'elle corresponde à chaque système de conception de voiture.
|
Exigences relatives à l'expérience utilisateur
C'est aux OEM qu'incombe la responsabilité ultime de fournir une bonne expérience utilisateur aux clients.
Les OEM doivent s'assurer que tous les services d'interaction vocale préinstallés répondent aux exigences décrites dans la section Assistants préchargés: consignes relatives à l'expérience utilisateur.
Expérience de base de l'Assistant
Une application d'interaction vocale pour l'automobile effectue les actions suivantes:
- [OBLIGATOIRE] Répondre aux déclencheurs d'interaction vocale gérés par le système (PTT, TTT).
- [OBLIGATOIRE] Affichez une représentation visuelle de la progression (par exemple, écoute, traitement et traitement).
- [DOIT] Utiliser la voix ou des sons pour indiquer la compréhension et l'exécution des requêtes de l'utilisateur.
- [OBLIGATOIRE] Servir de système de reconnaissance vocale pour d'autres applications (voir l'API SpeechRecognizer).
- [DEVOIR] Répondre à un déclencheur de mot clé.
- [MAY] Afficher une activité de paramètres dans laquelle les utilisateurs peuvent configurer cette VIA (par exemple, les autorisations, la configuration des mots clés et la connexion).
- [MAI] Gérer les données d'assistance (
Intent#ACTION_ASSIST
)
- [MAI] Prise en charge de l'interaction vocale depuis le clavier de verrouillage (écran de verrouillage).
Composants
De manière générale, une application d'interaction vocale interagit avec les acteurs suivants:

Figure 1 : Acteurs d'interaction vocale
Informations détaillées :
VoiceInteractionManagerService
. Ce service système est responsable de la gestion de la VIA par défaut et de l'exposition de ses fonctionnalités au reste du système.
RecognitionService
: ce service expose les fonctionnalités de reconnaissance vocale aux autres applications du système.
SoundTrigger
. Implémente la gestion des mots clés et est disponible pour les VIA via AlwaysOnHotwordDetector.
MediaRecorder
: permet d'accéder à l'entrée audio à la fois pour la détection des mots clés (lorsque vous utilisez le processeur) et la reconnaissance vocale.
PhoneWindowManager
/CarInputService
. Ces services sont chargés (entre autres) de gérer les événements clés, de router le PTT vers le VIA, à l'aide de VoiceInteractionManagerService
.
User
: l'utilisateur interagit avec un VIA à l'aide de déclencheurs (PTT, TTT, mot clé) ou de l'UI de la plaque vocale.
- CarService, Notifications, Media, Telephony, ContactsProvider, etc.
Services et applications utilisés par VoiceInteractionSession pour exécuter les commandes de l'utilisateur.
Concepts spécifiques au secteur automobile
AAOS diffère d'Android sur les points suivants:
- En plus des fonctionnalités normales de l'Assistant, les VIA AAOS peuvent contrôler les fonctions du véhicule (par exemple, le système de chauffage, de ventilation et de climatisation, les sièges et les lumières intérieures). Ces fonctionnalités peuvent être intégrées à l'aide de l'API CarPropertyManager (pour en savoir plus, consultez Lire une propriété de véhicule) à condition que les OEM configurent l'accès correctement, comme décrit dans la section Liste d'autorisation d'autorisations privilégiées.
- La personnalisation et la cohérence sont plus pertinentes dans le secteur automobile que dans tout autre facteur de forme. Pour en savoir plus sur l'implémentation de ces consignes, consultez la section Personnalisation.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]