Información acerca de la interacción de voz

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() y Activity#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 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, 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
  • 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).
  • [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:

Actores de interacción de voz

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 de VoiceInteractionManagerService.
  • 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.