A API do Voice Interaction Service fornece uma abstração sobre diferentes aplicativos potenciais de controle de voz. 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 a uma imagem específica do sistema Android Automotive OS (AAOS).
Terminologia
Estes termos são usados neste guia:
- Dados auxiliares. Quando uma sessão de interação por voz é iniciada, o sistema é capaz de 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()
eActivity#onProvideAssistContent()
. - Premir para falar (PTT) . Botão físico de controle de voz, geralmente localizado no volante.
- Serviço de Reconhecimento (RS). Serviço de reconhecimento de voz usado por aplicativos por meio da API
SpeechRecognizer
. Os VIAs devem incluirVoiceInteractionService
eRecognitionService
. - Toque para falar (TTT) . Botão de controle de voz do software, geralmente incluído como parte da IU 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 está vinculado ao serviço do sistema na inicialização e está sempre em execução. - Sessão de Interação de Voz (VIS). Esta classe encapsula a lógica de negócios de interação do usuário. É responsável por apresentar ao usuário o status da interação de voz, tratar as solicitações do VoiceInteractor e receber dados de assistência e captura de tela.
- VoiceInteractionSessionService (VSS). Um serviço, parte de um VIA, responsável por tratar uma sessão de interação de voz. Este serviço está vinculado ao serviço do sistema Android durante uma interação de voz com um usuário. Toda a lógica de negócio desta sessão é implementada na classe
VoiceSession
. Este serviço só tem garantia de 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 a 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 (OEM) | AOSP | Desenvolvedores de aplicativos |
---|---|---|
|
|
|
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 UX .
Experiência de assistente principal
Um aplicativo de interação por voz automotivo (VIA) executa as seguintes ações:
- [DEVE] Responder aos gatilhos de interação de voz controlados pelo sistema (PTT, TTT).
- [OBRIGATÓRIO] Exibir uma representação visual de seu progresso (por exemplo, ouvir, processar e cumprir).
- [OBRIGATÓRIO] Usar voz ou sons para indicar compreensão e conclusão das solicitações do usuário.
- [DEVE] Servir como um reconhecedor de fala para outros aplicativos (consulte a API SpeechRecognizer ).
- [DEVERIA] Responder a um gatilho de hotword.
- [MAIO] Exibir uma atividade de configurações onde os usuários podem configurar este VIA (por exemplo, permissões, configuração de hotword e login).
- [MAIO] Processar dados de assistência (
Intent#ACTION_ASSIST
) - [MAIO] Suporta interação de voz do Keyguard (tela de bloqueio).
Componentes
Em alto nível, um aplicativo de interação por voz interage com estes atores:
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. -
RecognitionService
. Este serviço expõe capacidades de reconhecimento de fala a outros aplicativos no sistema. -
SoundTrigger
. Implementa 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 os principais eventos, roteando o PTT para o VIA, por meio doVoiceInteractionManagerService
. -
User
. O usuário interage com um VIA por meio de Triggers (PTT, TTT, Hotword) ou da UI do Voice Plate. - CarService, Notificações, Mídia, Telefonia, ContactsProvider e assim por diante. Serviços e aplicativos usados pelo VoiceInteractionSession para atender aos comandos do usuário.
Conceitos específicos do setor automotivo
AAOS diverge do Android nos seguintes aspectos:
- Além das funcionalidades normais do Assistant, os AAOS VIAs podem controlar funções do veículo (por exemplo, HVAC, assentos e luzes internas). Essas funcionalidades podem ser integradas usando a API CarPropertyManager (veja mais em Leia a propriedade de um 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 formato. Consulte Personalização para ler mais sobre a implementação dessas diretrizes.