Gli assistenti digitali sono ormai integrati in un vasto numero di dispositivi: nei device mobili, negli smart speaker, nei display intelligenti, nei sistemi di infotainment usati nelle autovetture e in tanti altri prodotti. L’obiettivo è quello di rendere più semplice per gli utenti cercare risposte alle proprie domande, gestire le proprie attività e impegni, controllare a distanza i dispositivi per la smart home e in generale quelli appartenenti al mondo dell’Internet delle Cose (IoT), riprodurre i brani musicali preferiti o avviare una videochiamata. Usare la voce per interagire con i propri dispositivi si rivela spesso molto utile in tante circostanze: Assistente vocale: come funziona e a cosa serve.
Nel caso di Alexa, l’assistente digitale di Amazon integrato nei prodotti della gamma Echo, le funzionalità previste dagli sviluppatori possono essere ampliate installando delle “estensioni”.
Le Skill Alexa sono vere e proprie applicazioni che appunto estendono le funzioni di base dell’assistente digitale di Amazon.
Amazon ha addirittura realizzato un kit di sviluppo che permette di eseguire Alexa su dispositivi dalla configurazione hardware “essenziale”, ad esempio anche quelli con appena 1 MB di memoria RAM. Requisiti bassissimi che hanno aperto le porte all’integrazione di Alexa su tutte le tipologie di dispositivi IoT, anche i più economici.
Come installare e usare le skill Alexa
Troviamo francamente piuttosto inutile fare una lista delle migliori skill Alexa. Facendo riferimento a queste pagine sul sito Amazon è possibile trovare skill Alexa “per tutti i gusti”. Accedendo alla scheda di ciascuna skill, si può leggerne la descrizione e conoscere i comandi vocali che è possibile utilizzare.
Cliccando sui due link seguenti si possono ad esempio individuare:
– Le migliori skill Alexa per gli utenti partendo da quelle ritenute più utili e meglio realizzate
– Le migliori skill Alexa suggerite da Amazon
In alternativa è possibile richiedere l’installazione delle skill Alexa anche dall’app per smartphone Android e iOS.
Per installare la skill Alexa selezionata, basta fare clic su pulsante giallo Attiva. Una volta completata l’operazione basterà pronunciare ad alta voce Alexa, apri… oppure Alexa, chiedi a… seguito dal nome della skill precedentemente installata.
Come creare skill Alexa
A metà 2020 Amazon ha presentato il progetto Blueprint, uno strumento gratuito che permette di creare skill Alexa di buona fattura senza scrivere codice: Skill Alexa: tutti possono crearle senza sviluppare codice.
Con Blueprint si possono impostare domande e risposte su qualunque argomento facendo leva su quattro categorie: a casa, divertimento e giochi, comunità e organizzazioni, apprendimento e conoscenza.
A titolo esemplificativo si può creare in poco tempo una skill Alexa per istruire la baby sitter allorquando dovesse servirle qualche oggetto, dovesse usare qualche strumento in casa od ottenere un numero di telefono; per dare il benvenuto agli ospiti in una casa al mare o in montagna, per pianificare le faccende domestiche e gestire la suddivisione dei compiti, per fare briefing con i propri clienti, inviare lezioni aggiornate a distanza e molto altro.
Per iniziare a programmare una skill Alexa senza le limitazioni di Blueprint è necessario attivare un account AWS (va bene anche il piano free) ed effettuare il login in Alexa Developer Console previa registrazione.
Dopo aver cliccato su Create skill si può selezionare Custom skill per creare una skill Alexa senza appoggiarsi ad alcun modello preesistente.
Selezionando anche Provision your own si andrà a predisporre autonomamente la funzione da collegare alla skill.
Scegliendo inoltre Start from scratch, Amazon preparerà soltanto il codice per gestire il classico “Hello, world“.
A questo punto basterà inserire alcune informazioni indispensabili:
- Invocation name. Due termini di propria scelta che dovranno essere pronunciati per avviare la skill Alexa con i comandi citati in apertura ovvero “Alexa, apri…” oppure “Alexa, chiedi a…“.
- Intents. I quesiti che gli utenti della skill Alexa dovranno avanzare vocalmente per ottenere risposte. Possono essere specificate diverse “variazioni sul tema” chiamate utterance. Le varie utterance saranno associate a una stessa funzionalità quindi a un unico intent.
I cosiddetti slot possono essere utilizzati per tracciare e gestire informazioni variabili. - Slot. Gli slot possono essere considerati come una sorta di “segnaposto” all’interno di varie frasi che l’utente della skill può eventualmente pronunciare. Tutti i tipi di slot utilizzabili sono elencati e descritti in questa pagina di supporto.
Per approfondire si può fare riferimento a questo video preparato dal team di Amazon.
Dopo aver applicato tutti i vari interventi, si può creare un modello per la skill Alexa cliccando il pulsante Build model nella barra in alto.
Con un clic su JSON Editor nella colonna di sinistra, si troverà un file in formato JSON che riassume tutte le interazioni vocali possibili con la skill Alexa che si sono finora impostate.
Il backend di una skill Alexa
Una volta definito il modello che la skill Alexa utilizzerà per interagire con gli utenti, si potrà sviluppare un’apposita API con qualunque linguaggio di programmazione e ospitarla ovunque. Amazon consiglia di usare una funzione AWS Lambda per eseguire codice senza preoccuparsi dell’infrastruttura lato server (fino a 1 milione di richieste al mese, l’uso di Lambda è del tutto gratuito).
Utilizzando ad esempio Visual Studio Community e il pacchetto AWS Toolkit for Visual Studio sarà possibile creare un nuovo progetto AWS Lambda.
La libreria Alexa Skills SDK for .NET può essere utilizzata per portare buona parte delle funzionalità del SDK di Alexa in C#/.Net.
Il file function.cs
fungerà da base per la funzione Lambda da pubblicare su AWS.
Utilizzando in particolare i costrutti SkillRequest
e SkillResponse
, lo sviluppatore potrà gestire le richieste vocali dell’utente e le risposte da fornire. La libreria utilizzata farà da interfaccia con Alexa interpretando e predisponendo i dati in formato JSON così come elaborati dall’assistente digitale di Amazon.
Usando Visual Studio si potrà infine pubblicare su AWS Lambda quindi aggiungere un trigger (Add trigger) affinché la skill Alexa precedentemente configurata sia in grado di invocare la funzione (è necessario specificare l’ID corretto della skill Alexa; si trova nella home page della Alexa Developer Console).
Infine, cliccando sulla scheda Test nella Alexa Developer Console si ha la possibilità di provare il funzionamento della propria skill Alexa sia usando la tastiera che ponendo domande con il microfono.