Informazioni sull'interazione vocale

L'API Voice Interaction Service fornisce un'astrazione su diverse potenziali app di controllo vocale. Le implementazioni possono essere sviluppate seguendo le linee guida descritte nella sezione Sviluppo di app. I contenuti di questa guida all'integrazione descrivono come integrare queste app in un'immagine di sistema Android Automotive OS (AAOS) specifica.

Terminologia

I seguenti termini vengono utilizzati in questa guida:

  • Dati di assistenza. Quando viene avviata una sessione di interazione vocale, il sistema è in grado di acquisire visualizzazioni e screenshot e di trasmettere queste informazioni alla sessione. Le app possono mostrare informazioni aggiuntive implementando Activity#onProvideAssistData() e Activity#onProvideAssistContent().
  • Push-to-talk (PTT). Pulsante di controllo vocale fisico, solitamente situato sul volante.
  • RecognitionService (RS). Servizio di riconoscimento vocale utilizzato dalle app tramite l'API SpeechRecognizer . I VIA devono includere sia VoiceInteractionService sia RecognitionService.
  • Tocca per parlare (TTT). Pulsante di controllo vocale software, solitamente incluso nell'interfaccia utente di sistema. In Android è noto anche come Gesto di assistenza.
  • VoiceInteractionService. Servizio di sistema leggero implementato dallo sviluppatore VIA. Il servizio selezionato è associato dal servizio di sistema all'avvio ed è sempre in esecuzione.
  • VoiceInteractionSession (VIS). Questa classe incapsula la logica di business dell'interazione utente. È responsabile della presentazione all'utente dello stato dell'interazione vocale, della gestione delle richieste di VoiceInteractor e della ricezione dei dati di assistenza e screenshot.
  • VoiceInteractionSessionService (VSS). Un servizio, parte di un VIA, responsabile della gestione di una sessione di interazione vocale. Questo servizio è associato al servizio di sistema di Android durante un'interazione vocale con un utente. Tutta la logica di business di questa sessione è implementata nella classe VoiceSession. La disponibilità di questo servizio è garantita soltanto durante una sessione vocale di un singolo utente.
  • App di interazione vocale (VIA). App per Android progettata per fungere da controllo vocale (indicata come assistente). Queste app possono essere identificate includendo un VoiceInteractionService nel file manifest. Nel sistema è possibile selezionare come predefinita una sola di queste app alla volta. Solo l'app predefinita verrà mantenuta attiva (collegata da un servizio di sistema) e sarà il ricevitore degli eventi Push-To-Talk (PTT) o Tap-To-Talk (TTT).

Responsabilità

Questa tabella descrive le responsabilità di ciascuna parte.

Costruttori di auto (OEM) AOSP Sviluppatori di app
  • Crea un sistema di infotainment compatibile con AAOS.
  • Implementa l'input e l'output audio, eventualmente incluso il supporto del rilevamento della hotword DSP.
  • Concedi autorizzazioni privilegiate di sistema per i servizi di interazione vocale.
  • Rispetta i requisiti di VoiceInteractionService relativi all'accesso alle schermate delle impostazioni dell'app.
  • Definire ed evolvere VoiceInteractionService e le API correlate.
  • Fornire documentazione dell'API, codice di esempio e altro materiale di supporto agli sviluppatori VIA.
  • Fornire indicazioni sull'esperienza utente con requisiti e consigli.
  • Implementa l'API VoiceInteractionService, l'API RecognitionService e l'API NotificationListenerService (vedi la descrizione dettagliata in Sviluppo di app).
  • Fornire un'interfaccia utente personalizzabile che può essere regolata dagli OEM in base a ogni sistema di progettazione dell'auto.

Requisiti UX

Gli OEM hanno la responsabilità ultima di fornire ai clienti un'esperienza utente positiva. Gli OEM devono assicurarsi che tutti i servizi di interazione vocale preinstallati soddisfino i requisiti descritti in Assistenti preinstallati: indicazioni per l'esperienza utente.

Esperienza di base con l'assistente

Un'applicazione di interazione vocale (VIA) per auto e motori esegue le seguenti azioni:

  • [OBBLIGATORI] Rispondere agli attivatori di interazione vocale gestiti dal sistema (PTT, TTT).
  • [OBBLIGATORIO] Mostrare una rappresentazione visiva dei progressi (ad esempio, ascolto, lavorazione e adempimento).
  • [OBBLIGATORIO] Utilizza la voce o dei suoni per indicare la comprensione e il completamento delle richieste degli utenti.
  • [OBBLIGATORIO] Deve fungere da riconoscitore vocale per altre app (consulta l'API SpeechRecognizer).
  • [DEVE] Rispondere a un trigger hotword.
  • [MAGGIO] Visualizza un'attività relativa alle impostazioni in cui gli utenti possono configurare questo VIA (ad esempio, autorizzazioni, configurazione della hotword e accesso).
  • [MAY] Gestire i dati di assistenza (Intent#ACTION_ASSIST)
  • [MAGGIO] Supporto per l'interazione vocale da Keyguard (schermata di blocco).

Componenti

In linea generale, un'app di interazione vocale interagisce con questi attori:

Attori di interazione vocale

Figura 1. Attori di interazione vocale

Dettagli:

  • VoiceInteractionManagerService. Questo servizio di sistema è responsabile della gestione del VIA predefinito e dell'esposizione della relativa funzionalità al resto del sistema.
  • RecognitionService. Questo servizio mette a disposizione le funzionalità di riconoscimento vocale per altre app del sistema.
  • SoundTrigger. Implementa la gestione della hotword ed è disponibile per le interfacce vocali tramite AlwaysOnHotwordDetector.
  • MediaRecorder. Fornisce l'accesso all'input audio sia per il rilevamento della hotword (quando si utilizza la CPU) sia per il riconoscimento vocale.
  • PhoneWindowManager/CarInputService. Questi servizi sono responsabili (tra le altre cose) della gestione di eventi chiave, dell'instradamento del PTT alla VIA tramite VoiceInteractionManagerService.
  • User. L'utente interagisce con una VIA mediante trigger (PTT, TTT, Hotword) o l'interfaccia utente della piastra vocale.
  • CarService, Notifiche, Media, Telefonia, ContactsProvider e così via. Servizi e app utilizzati da VoiceInteractionSession per eseguire i comandi dell'utente.

Concetti specifici per i veicoli

AAOS si discosta da Android nei seguenti aspetti:

  • Oltre alle normali funzionalità dell'assistente, i sistemi VIA AAOS possono controllare le funzionalità del veicolo (ad es. climatizzazione, sedili e luci interne). Queste funzionalità possono essere integrate utilizzando l'API CarPropertyManager (scopri di più nella sezione Leggere una proprietà del veicolo) a condizione che gli OEM configurino l'accesso correttamente come descritto nella sezione Elenco consentito di autorizzazioni privilegiate.
  • La personalizzazione e la coerenza sono più importanti nel settore auto e motori rispetto a qualsiasi altro fattore di forma. Per scoprire di più sull'implementazione di queste linee guida, consulta la sezione Personalizzazione.