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 de sistema específica del sistema operativo Android Automotive (AAOS).

Terminología

Estos términos se utilizan en 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 físico de control por voz, normalmente situado en el volante.
  • Servicio de reconocimiento (RS). Servicio de reconocimiento de voz utilizado por aplicaciones a través de la API SpeechRecognizer . Las VIA deben incluir tanto VoiceInteractionService como 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 al servicio del sistema al arrancar y siempre está ejecutándose.
  • Sesión de interacción de voz (VIS). Esta clase encapsula la lógica empresarial de 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 datos de asistencia y capturas de pantalla.
  • Servicio de sesión de interacción de voz (VSS). Un servicio, parte de VIA, responsable de manejar una sesión de interacción de voz. Este servicio se vincula desde el servicio del sistema Android durante una interacción de 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 permanecerá activo durante una sesión de voz de un solo usuario.
  • Aplicación de interacción de voz (VIA). Aplicación de Android diseñada para servir como control por voz (denominado asistente ). Estas aplicaciones se pueden identificar incluyendo 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 desde un servicio del sistema) y será la receptora de 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
  • Construya un sistema de información y entretenimiento compatible con AAOS.
  • Implemente entrada y salida de audio, incluyendo opcionalmente soporte de detección de palabras activas DSP.
  • Otorgue permisos privilegiados del sistema para los servicios de interacción de voz.
  • Respete los requisitos VoiceInteractionService con respecto al acceso a las pantallas de configuración de la aplicación.
  • Definir y desarrollar VoiceInteractionService y API relacionadas.
  • Proporcione documentación API, código de muestra y otro material de soporte a los desarrolladores de VIA.
  • Proporcionar orientación UX con requisitos y recomendaciones.
  • Implemente la API VoiceInteractionService , la API RecognitionService y la API 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 el sistema de diseño de cada automóvil.

Requisitos de experiencia de usuario

Los OEM tienen la responsabilidad final de brindar 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 central

Una aplicación de interacción de voz (VIA) para automóviles realiza las siguientes acciones:

  • [DEBE] Responder a los 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 comprensión y finalización de las solicitudes de los usuarios.
  • [DEBE] Servir como reconocedor de voz para otras aplicaciones (consulte la API SpeechRecognizer ).
  • [DEBE] Responder a un activador de palabra activa.
  • [MAYO] Mostrar una actividad de configuración donde los usuarios pueden configurar esta VIA (por ejemplo, permisos, configuración de palabras activas e inicio de sesión).
  • [MAYO] Manejar datos de asistencia ( Intent#ACTION_ASSIST )
  • [MAYO] Admite interacción de voz desde Keyguard (pantalla de bloqueo).

Componentes

A alto nivel, 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 las capacidades de reconocimiento de voz a otras aplicaciones del sistema.
  • SoundTrigger . Implementa la gestión de palabras activas 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 activas (cuando se utiliza la CPU) y el reconocimiento de voz.
  • PhoneWindowManager / CarInputService . Estos servicios son responsables (entre otras cosas) de manejar eventos clave, enrutando PTT al VIA, mediante VoiceInteractionManagerService .
  • User . El usuario interactúa con un VIA mediante Triggers (PTT, TTT, Hotword) o la UI de Voice Plate.
  • CarService, Notificaciones, Medios, Telefonía, Proveedor de contactos, etc. Servicios y aplicaciones utilizados por VoiceInteractionSession para cumplir los comandos del usuario.

Conceptos específicos del automóvil

AAOS se diferencia de Android en los siguientes aspectos:

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