Acerca de la interacción de voz

La API del servicio de interacción de voz proporciona una abstracción sobre diferentes aplicaciones potenciales de control de voz. Las implementaciones se pueden desarrollar siguiendo las pautas descritas en Desarrollo de aplicaciones . El contenido de esta guía de integración describe cómo integrar estas aplicaciones en una imagen específica del sistema Android Automotive OS (AAOS).

Terminología

Estos términos se utilizan a lo largo de esta guía:

  • Datos de asistencia. Cuando se inicia una sesión de interacción de voz, el sistema puede capturar vistas y capturas de pantalla y pasar esta información a la sesión. Las aplicaciones pueden exponer información adicional implementando Activity#onProvideAssistData() y Activity#onProvideAssistContent() .
  • Pulsar para hablar (PTT) . Botón de control de voz físico, generalmente ubicado en el volante.
  • Servicio de Reconocimiento (RS). Servicio de reconocimiento de voz utilizado por aplicaciones a través de la API SpeechRecognizer . Los VIA deben incluir VoiceInteractionService y RecognitionService .
  • Tocar para hablar (TTT) . Botón de control de voz del software, generalmente incluido como parte de la interfaz de usuario del sistema). En Android esto también se conoce como Assist Gesture .
  • VoiceInteractionService . Servicio de sistema ligero implementado por el desarrollador de VIA. El servicio seleccionado está vinculado desde el servicio del sistema en el arranque y siempre se está ejecutando.
  • Sesión de interacción de voz (VIS). Esta clase encapsula la lógica empresarial de la interacción del usuario. Es responsable de presentar al usuario el estado de la interacción de voz, manejar las solicitudes de VoiceInteractor y recibir asistencia y datos de captura de pantalla.
  • Servicio de sesión de interacción de voz (VSS). Un servicio, parte de un VIA, responsable de manejar una sesión de interacción de voz. Este servicio está vinculado al servicio del sistema de Android durante una interacción de voz con un usuario. Toda la lógica comercial de esta sesión se implementa en la clase VoiceSession . Solo se garantiza que este servicio permanecerá activo durante una sola sesión de voz de usuario.
  • Aplicación de interacción de voz (VIA). Aplicación de Android diseñada para servir como control de voz (referido como asistente ). Estas aplicaciones se pueden identificar al incluir un VoiceInteractionService en su manifiesto. Solo se puede seleccionar una de estas aplicaciones como predeterminada a la vez en el sistema. Solo la aplicación 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

Esta tabla describe las responsabilidades de cada parte.

Fabricantes de automóviles (OEM) AOSP Desarrolladores de aplicaciones
  • Cree un sistema de infoentretenimiento compatible con AAOS.
  • Implemente la entrada y salida de audio, incluida opcionalmente la compatibilidad con la detección de palabras activas de DSP.
  • Otorgue permisos privilegiados del sistema para los servicios de interacción de voz.
  • Respete los requisitos de VoiceInteractionService con respecto al acceso a las pantallas de configuración de la aplicación.
  • Defina y evolucione VoiceInteractionService y las API relacionadas.
  • Proporcione documentación API, código de muestra y otro material de apoyo a los desarrolladores de VIA.
  • Proporcione orientación de UX con requisitos y recomendaciones.
  • Implemente la API de VoiceInteractionService , la API de RecognitionService y la API de NotificationListenerService (consulte la descripción detallada en Desarrollo de aplicaciones )
  • Proporcione una interfaz de usuario personalizable que los OEM puedan ajustar para que coincida con cada sistema de diseño de automóvil.

Requisitos de experiencia de usuario

Los OEM tienen la responsabilidad final de proporcionar una buena experiencia de usuario a los clientes. Los OEM deben asegurarse de que todos los servicios de interacción de voz preinstalados cumplan con los requisitos descritos en Asistentes precargados: guía de UX .

Experiencia de asistente principal

Una aplicación de interacción de voz (VIA) automotriz realiza las siguientes acciones:

  • [DEBE] Responder a activadores de interacción de voz manejados por el sistema (PTT, TTT).
  • [DEBE] Mostrar una representación visual de su progreso (por ejemplo, escuchar, procesar y cumplir).
  • [DEBE] Usar voz o sonidos para indicar la comprensión y finalización de las solicitudes de los usuarios.
  • [DEBE] Servir como un reconocedor de voz para otras aplicaciones (consulte la API SpeechRecognizer ).
  • [DEBERÍA] Responder a un activador de palabra activa.
  • [MAY] Muestra una actividad de configuración en la que los usuarios pueden configurar este VIA (por ejemplo, permisos, configuración de palabras activas e inicio de sesión).
  • [MAY] Manejar datos de asistencia ( Intent#ACTION_ASSIST )
  • [MAY] Admite la interacción de voz desde Keyguard (pantalla de bloqueo).

Componentes

En un nivel alto, una aplicación de interacción de voz interactúa con estos actores:

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 aplicaciones en el sistema.
  • SoundTrigger . Implementa la gestión de palabras activas y está disponible para los VIA a través de AlwaysOnHotwordDetector.
  • MediaRecorder . Brinda acceso a la entrada de audio para la detección de palabras activas (cuando se usa la CPU) y el reconocimiento de voz.
  • PhoneWindowManager / CarInputService . Estos servicios son responsables (entre otras cosas) de manejar eventos clave, enrutando PTT al VIA, por medio de VoiceInteractionManagerService .
  • User El usuario interactúa con un VIA por medio de Triggers (PTT, TTT, Hotword) o la interfaz de usuario de Voice Plate.
  • CarService, Notificaciones, Multimedia, Telefonía, ContactsProvider, etc. Servicios y aplicaciones utilizados por VoiceInteractionSession para cumplir con los comandos del usuario.

Conceptos específicos de automoción

AAOS difiere de Android en los siguientes aspectos:

  • Además de las funciones normales del Asistente, los AAOS VIA pueden controlar las funciones del vehículo (por ejemplo, HVAC, asientos y luces interiores). Estas funcionalidades se pueden integrar mediante la API de CarPropertyManager (ver más en Lectura de una propiedad de vehículo ) siempre que los OEM configuren el acceso correctamente como se describe en Lista blanca de permisos privilegiados .
  • La personalización y la consistencia son más relevantes en Automoción que en cualquier otro factor de forma. Consulte Personalización para obtener más información sobre la implementación de estas pautas.