A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Información acerca de la interacción por voz
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La API de Voice Interaction Service proporciona una abstracción sobre diferentes posibles apps de control por voz. Las implementaciones se pueden desarrollar siguiendo los lineamientos que se describen en Desarrollo de apps.
En el contenido de esta guía de integración, se describe cómo integrar estas apps en una imagen del sistema específica del SO Android Automotive (AAOS).
Terminología
En esta guía, se usan los siguientes términos:
- Datos de asistencia. Cuando se inicia una sesión de interacción por voz, el sistema puede capturar vistas y capturas de pantalla, y pasar esta información a la sesión. Las apps pueden exponer información adicional implementando
Activity#onProvideAssistData()
y Activity#onProvideAssistContent()
.
- Push-to-talk (PTT): Botón de control por voz físico, que suele estar en el volante.
- RecognitionService (RS). Es el servicio de reconocimiento de voz que usan las apps a través de la API de
SpeechRecognizer
. Las VIA deben incluir VoiceInteractionService
y RecognitionService
.
- Presiona para hablar (PTT). Botón de control por voz de software (por lo general, se incluye como parte de la IU del sistema) En Android, esto también se conoce como gesto de asistencia.
VoiceInteractionService
: Es un servicio del sistema ligero que implementa el desarrollador de VIA. El servicio seleccionado se vincula desde el servicio del sistema durante el inicio y siempre está en ejecución.
- VoiceInteractionSession (VIS). Esta clase encapsula la lógica empresarial de la interacción del usuario. Es responsable de presentarle al usuario el estado de la interacción de voz, controlar las solicitudes de VoiceInteractor y recibir datos de asistencia y capturas de pantalla.
- VoiceInteractionSessionService (VSS). Es un servicio, parte de un IVA, responsable de controlar una sesión de interacción por voz. Este servicio se vincula desde el servicio del sistema de Android durante una interacción por voz con un usuario. Toda la lógica empresarial de esta sesión se implementa en la clase
VoiceSession
.
Solo se garantiza que este servicio permanezca activo durante una sesión de voz de un solo usuario.
- App de interacción por voz (VIA). App para Android diseñada para funcionar como control por voz (denominado asistente). Para identificar estas apps, se puede incluir un
VoiceInteractionService
en su manifiesto.
Solo se puede seleccionar una de estas apps como predeterminada a la vez en el sistema.
Solo la app predeterminada se mantendrá activa (vinculada desde un servicio del sistema) y será el receptor de los eventos Push-to-Talk (PTT) o Tap-to-Talk (TTT).
Responsabilidades
En esta tabla, se describen las responsabilidades de cada parte.
Fabricantes de automóviles (OEM) |
AOSP |
Desarrolladores de apps |
- Compila un sistema de infoentretenimiento compatible con AAOS.
- Implementa la entrada y salida de audio, y, de manera opcional, la compatibilidad con la detección de palabras clave de DSP.
- Otorga permisos con privilegios del sistema para los servicios de interacción por voz.
- Respeta los requisitos de
VoiceInteractionService en relación con el acceso a las pantallas de configuración de la app.
|
- Definir y evolucionar
VoiceInteractionService y las APIs relacionadas
- Proporciona documentación de la API, código de muestra y otros materiales de asistencia a los desarrolladores de VIA.
- Proporciona orientación sobre la UX con requisitos y recomendaciones.
|
- Implementa la API de
VoiceInteractionService , la API de RecognitionService y la API de NotificationListenerService (consulta la descripción detallada en Desarrollo de apps).
- Proporciona una IU personalizable que los OEMs puedan ajustar para que coincida con cada sistema de diseño de automóviles.
|
Requisitos de UX
Los OEM tienen la responsabilidad final de proporcionar una buena experiencia del usuario a los clientes.
Los OEMs deben asegurarse de que todos los servicios de interacción por voz preinstalados cumplan con los requisitos que se describen en Asistentes precargados: Orientación sobre UX.
Experiencia principal del Asistente
Una aplicación de interacción por voz (VIA) para automóviles realiza las siguientes acciones:
- [OBLIGATORIO] Responde a los activadores de interacción por voz controlados por el sistema (PTT, TTT).
- [OBLIGATORIO] Muestra una representación visual de su progreso (por ejemplo, escucha, procesamiento y entrega).
- [OBLIGATORIO] Usa voz o sonidos para indicar que comprendes y completas las solicitudes del usuario.
- [OBLIGATORIO] Servir como identificador de voz para otras apps (consulta la API de SpeechRecognizer)
- [DEBEN] responder a un activador de palabras clave.
- [MAY] Se muestra una actividad de configuración en la que los usuarios pueden configurar esta VIA (por ejemplo, permisos, configuración de palabras clave y acceso).
- [MAY] Controla los datos de asistencia (
Intent#ACTION_ASSIST
)
- [MAY] Se admite la interacción por voz desde el protector de pantalla (pantalla de bloqueo).
Componentes
En un nivel alto, una app de interacción por voz interactúa con los siguientes agentes:

Figura 1: Actores de interacción de voz
Detalles:
VoiceInteractionManagerService
. Este servicio del sistema es responsable de administrar el VIA predeterminado y exponer su funcionalidad al resto del sistema.
RecognitionService
: Este servicio expone las capacidades de reconocimiento de voz a otras apps del sistema.
SoundTrigger
: Implementa la administración de palabras clave y está disponible para los VIA a través de AlwaysOnHotwordDetector.
MediaRecorder
: Proporciona acceso a la entrada de audio para la detección de palabras clave (cuando se usa la CPU) y el reconocimiento de voz.
PhoneWindowManager
/CarInputService
. Estos servicios son responsables (entre otras cosas) de controlar los eventos de teclas y enrutar el PTT a la VIA a través de VoiceInteractionManagerService
.
User
. El usuario interactúa con un VIA a través de activadores (PTT, TTT, palabra clave) o la IU de Voice Plate.
- CarService, Notificaciones, Media, Telefonía, ContactsProvider, etcétera.
Servicios y apps que usa VoiceInteractionSession para completar los comandos del usuario.
Conceptos específicos de la industria automotriz
AAOS difiere de Android en los siguientes aspectos:
- Además de las funciones normales de Asistente, los VIA de AAOS pueden controlar las funciones del vehículo (por ejemplo, el sistema HVAC, los asientos y las luces interiores). Estas funciones se pueden integrar con la API de CarPropertyManager (obtén más información en Cómo leer una propiedad de vehículo), siempre y cuando los OEM configuren el acceso correctamente, como se describe en Permisos de privilegio de lista de entidades permitidas.
- La personalización y la coherencia son más relevantes en la industria automotriz que en cualquier otro factor de forma. Consulta Personalización para obtener más información sobre la implementación de estos lineamientos.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]