A API Voice Interaction Service oferece uma abstração sobre diferentes apps de controle de voz em potencial. As implementações podem ser desenvolvidas seguindo as diretrizes descritas em Desenvolvimento de apps. O conteúdo deste guia de integração descreve como integrar esses apps a uma imagem de sistema específica do Android Automotive OS (AAOS).
Terminologia
Estes termos são usados neste 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 transmitir essas informações
para a sessão. Os apps podem expor informações adicionais implementando
Activity#onProvideAssistData()
eActivity#onProvideAssistContent()
. - Push-to-talk (PTT): Botão físico de controle de voz, geralmente localizado no volante.
- RecognitionService (RS). Serviço de reconhecimento de voz usado por
apps com a API
SpeechRecognizer
. As VIAs precisam incluirVoiceInteractionService
eRecognitionService
. - Toque para falar (TTT). Botão de controle de voz do software, geralmente incluído como parte da interface do sistema). No Android, isso também é chamado de gesto de assistência.
VoiceInteractionService
. Serviço de sistema leve implementado pelo desenvolvedor do 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 da interação do usuário. Ela é responsável por apresentar ao usuário o status da interação por voz, processando solicitações do VoiceInteractor e recebendo dados de assistência e captura de tela.
- VoiceInteractionSessionService (VSS). Um serviço, parte de um
VIA, responsável por processar uma sessão de interação por voz. Esse serviço é vinculado
ao serviço do sistema do Android durante uma interação por voz com um usuário. Toda
a lógica de negócios desta sessão é implementada na classe
VoiceSession
. Esse serviço só vai continuar ativo durante uma única sessão de voz do usuário. - App de interação por voz (VIA). App Android projetado
para servir como controle de voz (chamado de assistente). Esses apps podem
ser identificados pela inclusão de um
VoiceInteractionService
no manifesto. Apenas um desses apps pode ser selecionado como padrão por vez no sistema. Somente o app padrão será mantido ativo (vinculado de um serviço do sistema) e vai 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 apps |
---|---|---|
|
|
|
Requisitos de UX
Os OEMs têm a responsabilidade final de oferecer uma boa experiência do usuário aos clientes. Os OEMs precisam garantir que todos os serviços de interação por voz pré-instalados atendam aos requisitos descritos em Assistentes pré-carregados: orientação de UX.
Experiência principal com o assistente
Um aplicativo automotivo de interação por voz (VIA) executa as seguintes ações:
- [OBRIGATÓRIO] Responder a gatilhos de interação por voz processados pelo sistema (PTT, TTT).
- [OBRIGATÓRIO] Mostrar uma representação visual do progresso (por exemplo, escuta, processamento e atendimento).
- [OBRIGATÓRIO] Usar voz ou sons para indicar que entendeu e concluiu as solicitações do usuário.
- [OBRIGATÓRIO] Servir como um reconhecedor de voz para outros apps (consulte a API SpeechRecognizer).
- [SHOULD] Responder a um gatilho de hotword.
- [MAIO] Exibe uma atividade de configurações em que os usuários podem definir esse VIA (por exemplo, permissões, configuração de hotword e login).
- [MAY] Processar dados de assistência (
Intent#ACTION_ASSIST
) - [MAY] Suporte à interação por voz do teclado (tela de bloqueio).
Componentes
De modo geral, um app de interação por voz interage com estes atores:
Figura 1. Atores de interação por voz
Detalhes:
VoiceInteractionManagerService
. Esse serviço do sistema é responsável por gerenciar a VIA padrão e expor a funcionalidade dela para o restante do sistema.RecognitionService
. Esse serviço expõe recursos de reconhecimento de fala para outros apps no sistema.SoundTrigger
: implementa o gerenciamento de palavras-chave e está disponível para VIAs pelo AlwaysOnHotwordDetector.MediaRecorder
: fornece acesso à entrada de áudio para detecção de palavras-chave (ao usar a CPU) e reconhecimento de fala.PhoneWindowManager
/CarInputService
. Esses serviços são responsáveis (entre outras coisas) por lidar com eventos de teclas, rotear o PTT para o VIA usandoVoiceInteractionManagerService
.User
. O usuário interage com um VIA por meio de gatilhos (PTT, TTT, palavra de ativação) ou da interface do Voice Plate.- CarService, Notifications, Media, Telephony, ContactsProvider e assim por diante. Serviços e apps usados pela VoiceInteractionSession para cumprir os comandos do usuário.
Conceitos específicos do setor automotivo
O AAOS difere do Android nos seguintes aspectos:
- Além das funcionalidades normais do Google Assistente, as VIAs do AAOS podem controlar funções do veículo (por exemplo, HVAC, assentos e luzes internas). Essas funcionalidades podem ser integradas usando a API CarPropertyManager (consulte mais em Ler uma propriedade do veículo), desde que os OEMs configurem o acesso corretamente, conforme descrito em Lista de permissões privilegiadas.
- A personalização e a consistência são mais relevantes no setor automotivo do que em qualquer outro formato. Consulte Personalização para ler mais sobre a implementação dessas diretrizes.