Sobre a interação por voz

A API do Serviço de Interação de Voz fornece uma abstração sobre diferentes aplicativos de controle de voz em potencial. As implementações podem ser desenvolvidas seguindo as diretrizes descritas em Desenvolvimento de Aplicativos . O conteúdo deste guia de integração descreve como integrar esses aplicativos em uma imagem específica do sistema Android Automotive OS (AAOS).

Terminologia

Estes termos são usados ​​através deste guia:

  • Dados de assistência. Quando uma sessão de interação por voz é iniciada, o sistema pode capturar visualizações e capturas de tela e passar essas informações para a sessão. Os aplicativos podem expor informações adicionais implementando Activity#onProvideAssistData() e Activity#onProvideAssistContent() .
  • Premir para falar (PTT) . Botão de controle de voz físico, geralmente localizado no volante.
  • Serviço de Reconhecimento (RS). Serviço de reconhecimento de voz usado por aplicativos por meio da API SpeechRecognizer . VIAs devem incluir o VoiceInteractionService e o RecognitionService .
  • Toque para falar (TTT) . Botão de controle de voz do software, geralmente incluído como parte da interface do usuário do sistema). No Android, isso também é conhecido como Assist Gesture .
  • VoiceInteractionService . Serviço de sistema leve implementado pelo desenvolvedor VIA. O serviço selecionado é vinculado ao serviço do sistema na inicialização e está sempre em execução.
  • VoiceInteractionSession (VIS). Essa classe encapsula a lógica de negócios de interação do usuário. Ele é responsável por apresentar ao usuário o status da interação de voz, lidar com solicitações do VoiceInteractor e receber dados de assistência e captura de tela.
  • VoiceInteractionSessionService (VSS). Um serviço, parte de uma VIA, responsável por tratar uma sessão de interação por voz. Este serviço é vinculado ao serviço do sistema do Android durante uma interação de voz com um usuário. Toda a lógica de negócios desta sessão é implementada na classe VoiceSession . Este serviço só é garantido para permanecer ativo durante uma sessão de voz de usuário único.
  • Aplicativo de interação por voz (VIA). Aplicativo Android projetado para servir como controle de voz (referido como assistente ). Esses aplicativos podem ser identificados incluindo um VoiceInteractionService em seu manifesto. Apenas um desses aplicativos pode ser selecionado como padrão por vez no sistema. Somente o aplicativo padrão será mantido ativo (vinculado de um serviço do sistema) e será o receptor de eventos Push-To-Talk (PTT) ou Tap-To-Talk (TTT) .

Responsabilidades

Esta tabela descreve as responsabilidades de cada parte.

Fabricantes de automóveis (OEMs) AOSP Desenvolvedores de aplicativos
  • Construa um sistema de infoentretenimento compatível com AAOS.
  • Implemente entrada e saída de áudio, incluindo opcionalmente suporte para detecção de hotword DSP.
  • Conceda permissões com privilégios de sistema para os serviços de interação de voz.
  • Respeite os requisitos do VoiceInteractionService em relação ao acesso às telas de configurações do aplicativo.
  • Definir e evoluir VoiceInteractionService e APIs relacionadas.
  • Fornecer documentação de API, código de amostra e outros materiais de suporte para desenvolvedores VIA.
  • Fornecer orientação de UX com requisitos e recomendações.
  • Implemente a API VoiceInteractionService , a API RecognitionService e a API NotificationListenerService (consulte a descrição detalhada em Desenvolvimento de aplicativos )
  • Forneça uma interface de usuário personalizável que pode ser ajustada por OEMs para corresponder a cada sistema de design de carro.

Requisitos de experiência do usuário

Os OEMs têm a responsabilidade final de fornecer uma boa experiência de usuário aos clientes. Os OEMs devem garantir que todos os serviços de interação de voz pré-instalados atendam aos requisitos descritos em Assistentes pré-carregados: Orientação de UX .

Experiência principal do assistente

Um aplicativo de interação de voz automotivo (VIA) executa as seguintes ações:

  • [DEVE] Responder aos acionadores de interação de voz manipulados pelo sistema (PTT, TTT).
  • [DEVE] Exibir uma representação visual de seu progresso (por exemplo, ouvir, processar e cumprir).
  • [DEVE] Usar voz ou sons para indicar a compreensão e a conclusão das solicitações do usuário.
  • [DEVE] Servir como um reconhecedor de fala para outros aplicativos (consulte a API SpeechRecognizer ).
  • [DEVE] Responder a um gatilho de hotword.
  • [MAY] Exibe uma atividade de configurações onde os usuários podem configurar esta VIA (por exemplo, permissões, configuração de hotword e login).
  • [MAY] Processar dados de assistência ( Intent#ACTION_ASSIST )
  • [MAIO] Suporte a interação de voz do Keyguard (tela de bloqueio).

Componentes

Em alto nível, um aplicativo de interação por voz interage com esses atores:

Atores de interação por voz

Figura 1. Atores de interação por voz

Detalhes

  • VoiceInteractionManagerService . Este serviço do sistema é responsável por gerenciar o VIA padrão e expor sua funcionalidade ao restante do sistema.
  • Serviço de RecognitionService . Este serviço expõe os recursos de reconhecimento de fala a outros aplicativos no sistema.
  • SoundTrigger . Implementa o gerenciamento de hotwords e está disponível para VIAs por meio do AlwaysOnHotwordDetector.
  • MediaRecorder . Fornece acesso à entrada de áudio para detecção de hotword (ao usar CPU) e reconhecimento de fala.
  • PhoneWindowManager / CarInputService . Esses serviços são responsáveis ​​(entre outras coisas) por tratar eventos-chave, roteando PTT para a VIA, por meio do VoiceInteractionManagerService .
  • User . O usuário interage com uma VIA por meio de Triggers (PTT, TTT, Hotword) ou da interface do Voice Plate.
  • CarService, Notificações, Mídia, Telefonia, ContactsProvider e assim por diante. Serviços e aplicativos usados ​​pela VoiceInteractionSession para atender aos comandos do usuário.

Conceitos Específicos Automotivos

AAOS diverge do Android nos seguintes aspectos:

  • Além das funcionalidades normais do Assistente, o AAOS VIAs pode controlar as funções do veículo (por exemplo, HVAC, assentos e luzes internas). Essas funcionalidades podem ser integradas usando a API CarPropertyManager (veja mais em Lendo uma propriedade de veículo ) desde que os OEMs configurem o acesso corretamente conforme descrito em Lista de permissões de permissões privilegiadas .
  • A personalização e a consistência são mais relevantes no setor automotivo do que em qualquer outro fator de forma. Consulte Personalização para ler mais sobre como implementar essas diretrizes.