Alexa Voice Design Patterns: Be adaptable

Gli utenti devono prima  imparare a navigare fra i menu di un’interfaccai grafica (GUI) prima di poter trovare ciò che cercano ed è per questo che creiamo un layout che imposti una gerarchia visiva che aiuti l’utente nel guardare le cose nel modo corretto. Allo stesso modo con cui quando compriamo il giornale alla mattina sappiamo già quali sono le notizie più importanti:

Le VUI non funzionano come le GUI, i menu e i flussi decisionali non funzionano allo stesso modo.

Intents: il pulsante delle interfacce vocali

Nelle VUI non esiste un menu principale, nessun pulsante con la label “OK” a confermare le scelte degli utenti.

Esiste invece qualcosa di simile ai pulsanti con cui gli utenti possano compiere delle scelte, ma si chiamano intents:

ciò che l'utente desidera realizzare.

Quando progettiamo una skill Alexa dobbiamo decidere quali intents creare sapendo però che un dominio troppo ampio può portare facilmente ad un errore da parte del NLU di Alexa, mentre la definizione di un dominio troppo stretto rischia di portare all’esclusione di risposte che l’utente potrebbe ragionevolmente dare ( “Alexa: Interaction Model”, 2019).
Il primo principio del situational design be adaptable ci ricorda che dobbiamo consentire ai nostri utenti di parlare con Alexa con le proprie parole fornendo diversi esempi per la stessa signature (es: bookTravel), magari adoperando sinonimi (es: viaggio, vacanza, etc) e slots.

* intent: bookTravel() 
- voglio volare 
- puoi prenotarmi un viaggio 
- vorrei prenotare una vacanza
- vorrei un biglietto aereo

Attraverso il riconoscimento vocale automatico (ASR) e la comprensione del linguaggio naturale (NLU),  Alexa elaborerà il nostro intent.

Uscita di emergenza

In una GUI i percorsi sono ben definiti e limitati, ad esempio se volessimo salvare un file sappiamo che la voce corretta si troverà nel menu principale sotto la voce file ed infine salva con nome.  Invece con una VUI si possono avere numerose formulazioni vocali con cui un utente può raggiungere il suo scopo, ad esempio per prenotare un viaggio potremmo avere:

- Vorrei prenotare un volo
- Vorrei prenotare un viaggio
- Ho voglia di viaggiare
- Prenotami un viaggio
- Avrei voglia di un viaggio

Questi percorsi però non sono esenti dagli errori.

Per valutare l’usabilità di una GUI si fa spesso riferimento alle linee guida create più di 20 anni fa da Jakob Nielsen, una di queste è quella sulla prevenzione degli errori:

Ancor meglio dei buoni messaggi di errore è una progettazione attenta che impedisce il verificarsi di un problema. Elimina le condizioni soggette a errori o verificarle e presentare agli utenti un’opzione di conferma prima di impegnarsi nell’azione.

L’idea alla base è che piuttosto di  aiutare gli utenti a riprendersi dagli errori, i sistemi dovrebbero impedire che si verifichino in primo luogo.
Il riconoscimento vocale automatico (ASR) è molto migliorato negli anni e gli errori nella comprensione del linguaggio naturale (NLU) sono diminuiti in modo significativo, ma lo stesso dobbiamo prevedere un messaggio di errore (exception handler). Infine per evitare di porre l’utente in situazioni che possono portarlo all’errore bisogna  predisporre un’uscita di emergenza utilizzando i built-in intents:

{
  "name": "AMAZON.CancelIntent",
   "samples": []
},
{
  "name": "AMAZON.StopIntent",
  "samples": []
 },

Sitografia

[1] Justin Jeffress, Getting Started with the Cake Walk Course: Designing the Voice User Interface (VUI) for Your Alexa Skill, 04/06/2019

Personal site
[1] Mobile interface sketches, 2016

Documentazione ufficiale
[1] Adaptable