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 mediante la implementación de
Activity#onProvideAssistData()
yActivity#onProvideAssistContent()
. - Presiona para hablar (PTT). Botón de control por voz físico, generalmente 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 incluirVoiceInteractionService
yRecognitionService
. - 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, también se lo conoce como gesto de asistencia.
VoiceInteractionService
. Es un servicio de sistema básico 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 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 a 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 |
---|---|---|
|
|
|
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).
- [DEBE] Mostrar una representación visual del progreso (por ejemplo, escucha, procesamiento y entrega).
- [OBLIGATORIO] Usa voz o sonidos para indicar que comprendes y completaste las solicitudes del usuario.
- [OBLIGATORIO] Servir como identificador de voz para otras apps (consulta la API de SpeechRecognizer)
- [DEBEN] responder a un activador de palabra 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 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 eventos clave y enrutar la PTT al VIA a través deVoiceInteractionManagerService
.User
. El usuario interactúa con una VIA a través de activadores (PTT, TTT, palabra clave) o la IU de la placa de voz.- 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 de 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 la 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.