Funzionalità per sviluppatori non ancora disponibili nelle skill italiane

Avatar Paolo Godino

In questo articolo facciamo il punto sulle funzionalità che possono essere utilizzate nello sviluppo di skill in inglese e non presenti nelle skill in italiano.

Cominciamo con il dire che non è di alcuna rilevanza la nazionalità della registrazione dell’account sviluppatore. Per quel che riguarda la nazione dell’utente che esegue la stil qualche differenza c’è. Infatti se cerchiamo di abilitare la lingua inglese su un dispositivo echo in Italia otteniamo il seguente avvertimento: “Questa lingua non è pienamente supportata nel tuo Paese. Alcune funzionalità e contenuti potrebbero non essere disponibili.”

Come sviluppatori però abilitando la lingua inglese in una skill abbiamo accesso a tutte le funzionalità disponibili per questa lingua. E questa è un’ottima notizia. Se infatti è vero che in italiano non sono disponibili tutte le funzionalità disponibili in inglese, come sviluppatori italiani abbiamo la possibilità di averne accesso, anche solo per provarle. Ovviamente nel caso di una skill multilingue o che supporta la lingua inglese avremo la possibilità di utilizzarle in produzione. Altrimenti avremo la possibilità di provarle ed essere pronti per implementarle  nelle nostre skill quando saranno rilasciate anche per le skill in italiano.

Questo è l’elenco delle funzionalità disponibili in inglese o in anche in altre lingue ma non in italiano:

  • Name free interaction
  • Smart Home limitatamente ad alcune tipologie di dispositivi
  • Connected vehicle skills for Alexa
  • Skill di musica

L’elenco non è in realtà poi così lungo ma c’è un però. Ho cercato infatti di mettere gli elementi in ordine di importanza ed il primo, la Name Free Interaction, ha secondo me una importanza enormemente più grande rispetto agli altri che sono praticamente trascurabili. Tra l’altro tutte le altre funzionalità si possono ottenere con lo sviluppo di una skill custom, con una piccola perdita di comodità di utilizzo da parte dell’utente ed un po’ più di lavoro da parte dello sviluppatore.

Alexa for Apps

Una menzione speciale va ad Alexa for Apps che è attualmente in developer preview ma che sarà resa disponibile da subito in tutte le lingue. Si tratta semplicemente della possibilità di iniziare una conversazione su un dispositivo echo e continuare l’interazione su uno smartphone inviando un deep link. In questo modo si continua l’interazione nell’app specifica perché più comodo e semplice per l’utente o perché è l’unico modo possibile. Pensiamo per esempio ad una mappa che può essere visualizzata e con cui si può interagire direttamente sullo smartphone.

Name Free Interaction

La Name Free Invocation si basa sulla possibilità che una utterance generi l’invocazione di un intent della nostra skill anche senza che l’utente abbia inserito il nome della skill nella frase di attivazione.

Vediamo come potremmo utilizzare questa funzionalità nella skill che sviluppiamo insieme nei miei corsi sullo sviluppo per Alexa, Caratteristiche dei Segni Zodiacali. Invece di dire “Alexa chiedi a Caratteristiche dei Segni Zodiacali le caratteristiche del capricorno” potremmo dire semplicemente “Alexa quali sono le caratteristiche del capricorno”. Una bella semplificazione della frase.

Forse un utente non riesce a capire l’enormità di ciò che deve succedere dietro le quinte affinché tutto ciò possa funzionare ma a noi sviluppatori dovremmo essere piuttosto chiaro. Per prima cosa Alexa deve capire che deve attivare la nostra skill e non magari un’altra con l’oroscopo delle settimana per il capricorno. Inoltre la nostra skill deve essere attivata anche se la nostra skill non era mai stata attivata prima dall’utente. Potrebbero essere disponibili più skill in grado di rispondere alla domanda dell’utente, alcune meglio altre peggio. Le valutazioni che l’IA deve fare non sono da poco: deve scegliere, potenzialmente tra decine di skill che trattano di segni zodiacali quale possa essere la più appropriata.

Cosa deve fare lo sviluppatore?

Chiariamo intanto che anche realizzando una skill in inglese non avremo, almeno non da subito, la possibilità di configurare la Name Free Interaction. Da quel che abbiamo detto prima il motivo è semplice: Alexa deve avere una storia di utilizzo della skill per poter decidere se attivare la nostra skill al posto di un’altra.

Quando la skill diventa abilitata all’invocazione Name Free nella parte di Invocation della dashboard potremo compilare le sezioni Skill Launch Phrases e Intent Launch Phrases. In questo modo potremo fornire una serie di frasi per ogni intent che deve poter essere invocato Name Free. Queste verranno utilizzate dal modello per capire se attivare o meno quello specifico intent della nostra skill. Per decidere se la nostra skill può essere utile per rispondere alla domanda dell’utente anche se non è mai stata utilizzata prima, lato codice dobbiamo implementare la callback CanFullFillIntentRequest. In questo modo la nostra skill riceverà la richiesta dell’utente e dovremo rispondere se la skill è in grado o meno di soddisfarla. Immagino che oltre a questo il modello utilizzi anche le valutazioni ed i dati di utilizzo delle varie skill per decidere quale dovrà utilizzare.

Name Free Interaction: alla base dello sviluppo futuro di Alexa

Immagino condividiate che questa funzionalità apre enormi possibilità, non ultima quella di aumentare le possibilità di utilizzo della nostra skill. L’utente non deve sapere come si chiama la skill o attivarla in alcun modo (a meno ovviamente che non risulti necessario l’account linking o di pagamento) ma semplicemente utilizzarne le funzioni.

Possiamo immaginare un futuro in cui le skill partecipino in modo completo al “sistema Alexa” e di fatto non sia più necessario per l’utente far riferimento in modo specifico alle singole skill ma semplicemente fare domande ed ottenere le risposte dalla migliore skill disponibile per quella informazione.

Sicuramente approfondiremo l’implementazione, per ora in inglese, di questa funzionalità. Esiste da tempo in inglese. In italiano non è ancora arrivata ma come abbiamo avuto modo di capire, non si tratta di una implementazione banale ed ha un impatto notevole sul modello di rete neurale su cui è basata Alexa. Sono sicuro però che presto o tardi arriverà anche per la nostra lingua. Nel frattempo facciamo un po’ di pratica con l’inglese che non guasta mai.

Smart Home

In termini estremamente sintetici le skill di tipo Smart Home permettono l’interazione con i dispositivi IoT con comandi predefiniti che dipendono dal tipo di dispositivo. Per esempio comandi che possiamo impartire ad una lampadina sono per esempio “accendi la luce cucina” oppure “spegni la luce cucina”. Per il comando della serranda di un garage sarebbero preferibili comandi come “apri la porta del garage” o “chiudi la porta del garage”. Amazon ha definito un elenco di dispositivi supportati ed ognuno ha un set di comandi che può ricevere. In sviluppo abbiamo certi margini di personalizzazione ma non possiamo “creare” nuovi dispositivi oppure estendere il modello vocale di quelli esistenti. L’argomento è molto vasto e complesso anche perché per vederlo a tutto campo è preferibile qualche conoscenza di elettronica. Ho avuto modo di seguire lo sviluppo di una skill di questo tipo e sicuramente si tratta di un argomento interessante su cui ritorneremo.

In italiano sono supportati molti dispositivi e l’elenco è in continua evoluzione. Alcuni di questi sono però per ora sono esclusivi della lingua inglese (ed eventualmente di altre lingue ma non la nostra). Al momento in cui scrivo non sono supportati per esempio i dispositivi di conferenza, i forni, i dispositivi di rete. Non ritengo utile fare un elenco completo visto che diventerebbe obsoleto in breve tempo. In questo elenco si trova la lista delle interfacce supportate direttamente nella documentazione fornita da Amazon: https://developer.amazon.com/en-US/docs/alexa/device-apis/list-of-interfaces.html

Connected vehicle skills for Alexa

Questa funzionalità permette lo sviluppo di skill che interagiscono con il sistema cloud del produttore dell’auto (ma vale anche per moto, barche, ecc.) per ottenere informazioni e dare comandi al veicolo. In modo analoga a quanto abbiamo visto per la Smart Home si tratta di un sistema predefinito di comandi che ci si aspetta che un sistema di questo tipo possa supportare. Per esempio si può chiedere ad Alexa quanto carburante o carica ha il veicolo, accendere il condizionatore, chiudere il finestrino, ecc. Si tratta degli stessi comandi o stati che possiamo ottenere dalle app dei produttori installate sugli smartphone ma con una interazione vocale. 

Come detto prima è ovviamente possibile implementare controlli di questo tipo con una skill completamente custom ma l’esperienza utente non sarà altrettanto trasparente. Per esempio anche in questo caso è molto comoda la Name Free Interaction che la funzionalità connette vehicle permette. E’ ben diverso dover dire la frase “Alexa chiedi a BMW quanta benzina c’è nell’auto” rispetto a “Alexa quanta benzina c’è nell’auto?”.

Skill di musica

Questo tipo di skill consente la gestione della riproduzioni di brani musicali o podcast. Anche in questo caso niente che non si possa fare anche con una skill completamente custom come in effetti accade nelle numerose skill musicali presenti nello store italiano. Ancora in questo caso però disporre di un set di comandi già predisposti e che Alexa capisce perfettamente perché il modello è stato addestrato e raffinato direttamente da Amazon può sicuramente dare una possibilità di interazione migliore all’utente. 

Tagged in :

Avatar Paolo Godino

Lascia un commento