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 in Sviluppo di app . Il contenuto di questa guida all'integrazione descrive come integrare queste app in un'immagine di sistema specifica del sistema operativo Android Automotive (AAOS).

Terminologia

Questi termini vengono utilizzati in questa guida:

  • Assistere i dati. Quando viene avviata una sessione di interazione vocale, il sistema è in grado di acquisire visualizzazioni e schermate e trasmettere queste informazioni alla sessione. Le app possono esporre informazioni aggiuntive implementando Activity#onProvideAssistData() e Activity#onProvideAssistContent() .
  • Push-to-talk (PTT) . Pulsante fisico del controllo vocale, solitamente situato nel volante.
  • Servizio di Riconoscimento (RS). Servizio di riconoscimento vocale utilizzato dalle app tramite l'API SpeechRecognizer . I VIA devono includere sia VoiceInteractionService che RecognitionService .
  • Tocca per parlare (TTT) . Pulsante di controllo vocale del software, solitamente incluso come parte dell'interfaccia utente del sistema). In Android questo viene chiamato anche Gesto assistito .
  • VoiceInteractionService . Servizio di sistema leggero implementato dallo sviluppatore VIA. Il servizio selezionato è associato al servizio di sistema all'avvio ed è sempre in esecuzione.
  • Sessione di interazione vocale (VIS). Questa classe incapsula la logica aziendale dell'interazione dell'utente. È responsabile della presentazione all'utente dello stato dell'interazione vocale, della gestione delle richieste di VoiceInteractor e della ricezione di dati di assistenza e screenshot.
  • VoiceInteractionSessionService (VSS). Un servizio, parte di un VIA, responsabile della gestione di una sessione di interazione vocale. Questo servizio è vincolato al servizio di sistema di Android durante un'interazione vocale con un utente. Tutta la logica aziendale di questa sessione è implementata nella classe VoiceSession . È garantito che questo servizio rimanga attivo solo durante una sessione vocale per singolo utente.
  • App di interazione vocale (VIA). App Android progettata per fungere da controllo vocale (denominato assistente ). Queste app possono essere identificate includendo un VoiceInteractionService nel loro manifest. È possibile selezionare come predefinita solo una di queste app alla volta nel sistema. Solo l'app predefinita verrà mantenuta attiva (legata a un servizio di sistema) e sarà il destinatario degli eventi Push-To-Talk (PTT) o Tap-To-Talk (TTT) .

Responsabilità

Questa tabella descrive le responsabilità di ciascuna parte.

Produttori di automobili (OEM) AOSP Sviluppatori di app
  • Costruisci un sistema di infotainment compatibile con AAOS.
  • Implementa input e output audio, includendo facoltativamente il supporto per il rilevamento di hotword DSP.
  • Concedere autorizzazioni con privilegi di sistema per i servizi di interazione vocale.
  • Rispettare i requisiti VoiceInteractionService relativi all'accesso alle schermate delle impostazioni dell'app.
  • Definire ed evolvere VoiceInteractionService e le relative API.
  • Fornisci documentazione API, codice di esempio e altro materiale di supporto agli sviluppatori VIA.
  • Fornire indicazioni UX con requisiti e consigli.
  • Implementare l'API VoiceInteractionService , l'API RecognitionService e l'API NotificationListenerService (vedere la descrizione dettagliata in Sviluppo dell'app ).
  • Fornire un'interfaccia utente personalizzabile che può essere modificata dagli OEM per adattarsi a ciascun sistema di progettazione dell'auto.

Requisiti UX

Gli OEM hanno la responsabilità ultima di fornire una buona esperienza utente ai clienti. Gli OEM devono garantire che tutti i servizi di interazione vocale preinstallati soddisfino i requisiti descritti in Assistenti precaricati: linee guida UX .

Esperienza fondamentale dell'assistente

Un'applicazione di interazione vocale automobilistica (VIA) esegue le seguenti azioni:

  • [OBBLIGATORIO] Rispondere ai trigger di interazione vocale gestiti dal sistema (PTT, TTT).
  • [DEVE] Visualizzare una rappresentazione visiva dei loro progressi (ad esempio, ascolto, elaborazione e realizzazione).
  • [OBBLIGATORIO] Utilizzare la voce o i suoni per indicare la comprensione e il completamento delle richieste dell'utente.
  • [DEVE] Fungere da riconoscimento vocale per altre app (vedi SpeechRecognizer API ).
  • [DOVREBBE] Rispondere a un trigger di hotword.
  • [MAGGIO] Visualizza un'attività di impostazione in cui gli utenti possono configurare questo VIA (ad esempio, autorizzazioni, configurazione hotword e accesso).
  • [MAGGIO] Gestire i dati di assistenza ( Intent#ACTION_ASSIST )
  • [MAGGIO] Supporta l'interazione vocale da Keyguard (schermata di blocco).

Componenti

Ad alto livello, un'app di interazione vocale interagisce con questi attori:

Attori dell'interazione vocale

Figura 1. Attori dell'interazione vocale

Dettagli:

  • VoiceInteractionManagerService . Questo servizio di sistema è responsabile della gestione del VIA predefinito e dell'esposizione delle sue funzionalità al resto del sistema.
  • RecognitionService . Questo servizio espone le funzionalità di riconoscimento vocale ad altre app nel sistema.
  • SoundTrigger . Implementa la gestione delle hotword ed è disponibile per i VIA tramite AlwaysOnHotwordDetector.
  • MediaRecorder . Fornisce l'accesso all'input audio sia per il rilevamento delle hotword (quando si utilizza la CPU) che per il riconoscimento vocale.
  • PhoneWindowManager / CarInputService . Questi servizi sono responsabili (tra le altre cose) della gestione degli eventi chiave, instradando PTT al VIA, tramite VoiceInteractionManagerService .
  • User . L'utente interagisce con un VIA tramite Trigger (PTT, TTT, Hotword) o la Voice Plate UI.
  • CarService, Notifiche, Media, Telefonia, ContattiProvider e così via. Servizi e app utilizzati da VoiceInteractionSession per eseguire i comandi dell'utente.

Concetti specifici del settore automobilistico

AAOS differisce da Android nei seguenti aspetti:

  • Oltre alle normali funzionalità dell'Assistente, i VIA AAOS possono controllare le funzioni del veicolo (ad esempio, HVAC, sedili e luci interne). Queste funzionalità possono essere integrate utilizzando l'API CarPropertyManager (maggiori informazioni in Leggere una proprietà del veicolo ) a condizione che gli OEM configurino correttamente l'accesso come descritto in Elenco consentito delle autorizzazioni privilegiate .
  • La personalizzazione e la coerenza sono più rilevanti nel settore automobilistico che in qualsiasi altro fattore di forma. Consulta Personalizzazione per ulteriori informazioni sull'implementazione di queste linee guida.