Programmare le Alexa Skill in modo semplice e autonomo
Con Alexa Amazon gestisce un servizio vocale basato su cloud per l’altoparlante intelligente distribuito dall'azienda, come Amazon Echo, Echo Dot, Echo Show o Echo Spot. Uno smart speaker è un altoparlante collegato a Internet con un assistente virtuale integrato che riceve comandi da un'interfaccia vocale e consente così diverse interazioni.
Gli altoparlanti intellingenti servono per l'utilizzo di servizi Internet basati sull'audio e consentono di controllare tramite WiFi o Bluetooth i dispositivi collegati nell'ambito della domotica (smart home). Già di fabbrica l'assistente vocale Alexa offre diverse funzioni di base. Gli utenti possono predisporre tramite comando vocale che gli altoparlanti intelligenti riproducano musica, notizie, avvisi sul traffico e diano le previsioni del tempo o anche rendano disponibili funzioni di calendario. In combinazione con i dispositivi di smart home, Alexa offre un'interfaccia vocale per il controllo di lampade, termostati o prese intelligenti.
Successivamente si possono installare altre funzioni, le cosiddette skill. Nell'Alexa Skill Store sono disponibili più di 50.000 skill di sviluppatori esterni, attivabili gratuitamente in base alle proprie esigenze. In pochi passaggi si possono programmare le proprie Alexa Skill in pochi passaggi tramite l'Alexa Skills Kit e AWS Lambda. Vi mostriamo come funziona.
Che cos'è una skill di Alexa?
Le Alexa Skill sono programmi che si possono attivare online e ampliano la gamma di funzioni del servizio vocale Alexa. Tecnicamente una skill di Alexa è composta da un'interfaccia utente (chiamata front end) e dalla logica del programma (il back end). Qualsiasi dispositivo smart che supporta l'assistente vocale Alexa svolge la funzione di front end delle Alexa Skill, come un altoparlante intelligente della serie Amazon Echo o un frigorifero LG connesso. La logica del programma nel back end funziona sul proprio server o sulla base di AWS Lambda, un servizio di elaborazione dati messo a disposizione da Amazon.
AWS (Amazon Web Services) è un'azienda affiliata del rivenditore online statunitense Amazon. L'azienda con l'omonima piattaforma di cloud computing rientra tra i leader del settore nell’erogazione di risorse IT calibrate in base alle proprie esigenze con pagamento a seconda del consumo.
Prerequisiti per lo sviluppo delle Alexa Skill
Le Alexa Skill sono sviluppate grazie all'Alexa Skills Kit e messe a disposizione degli utenti tramite l'Alexa Skill Store. Ottenete l'accesso all'Alexa Skills Kit tramite un account gratuito su Amazon Developer.
L'Alexa Skills Kit (ASK) è una raccolta di diverse API self service, tool, documenti ed esempi di codice che vi consentono uno sviluppo veloce e gratuito delle Alexa Skill, anche servendosi di componenti già pronti, se necessario.
Se non volete gestire in proprio la logica del programma delle vostre Alexa Skill, è inoltre necessario un account AWS che vi permetta di accedere al servizio di elaborazione dati AWS Lambda.
Tutorial: creare la propria skill per Alexa in cinque passaggi
Il processo di creazione della vostra prima skill per Alexa personalizzata consta di 7 passaggi che vi portano al rilascio dell'applicazione:
- Nei passaggi 1 e 2 create una nuova skill nella console di Amazon Developer e configurate il modello di interazione per l'interfaccia vocale.
- Sulla base di questo modello di interazione mettete a punto nel passaggio 3 una funzione di AWS Lambda, che comprende la logica del programma della vostra skill e viene eseguita nella piattaforma di cloud computing di Amazon, AWS.
- Nel passaggio 4 collegate la funzione di AWS Lambda con la console di Amazon Developer per mettere a disposizione la vostra skill per i dispositivi Amazon.
- Infine seguono una fase di test nel passaggio 5, la convalida e il rilascio della skill nei passaggi 6 e 7.
Vi chiariamo lo sviluppo di una skill per Alexa con un esempio semplice.
Jess è la proprietaria di un chiosco di sandwich a Bend, nell'Oregon, chiamato Flour Pot Sandwiches. L'attività è molto nota tra i clienti che ricercano cibo sano e veloce. Il chiosco si trova nel centro di Bend e Jess vorrebbe soddisfare le esigenze dei suoi clienti e avere un sito online, dove sono elencati i prodotti e i servizi offerti. Così, oltre a una pagina web, creerà anche una skill per l'assistente vocale Alexa. Per prima cosa comincia con lo sviluppo di una skill, usando l'interfaccia vocale di Alexa, grazie alla quale i suoi clienti possono conoscere gli orari di apertura e chiusura di Flour Pot Sandwiches.
1. Preparazione
Per consentire agli utenti dell'assistente vocale Alexa di sviluppare una propria skill, Amazon fornisce l'Alexa Skills Kit attraverso l'Alexa Developer Console come un ambiente di sviluppo con interfaccia web grafica. La console sviluppatori di Alexa fa parte della console sviluppatori di Amazon.
Eseguite il login su Amazon Developer. Se non avete un account Amazon Developer, createne uno gratuitamente.
Dopo esservi loggati, vi ritroverete su una schermata di riepilogo del servizio. Selezionate "Amazon Alexa".
Cliccate su "Alexa Skills Kit" nel menu a tendina alla voce "Products" e poi fate clic su "Start a Skill" per aprire la console sviluppatori di Alexa.
La pagina iniziale della console sviluppatori di Alexa vi mostrerà tutte le Alexa Skill che avete creato. Quando vi loggate per la prima volta la lista è vuota.
La console sviluppatori di Alexa è attualmente disponibile solo in inglese, giapponese e cinese.
Fate clic su “Create Skill” per creare una nuova skill di Alexa.
Date un nome alla vostra skill, selezionate la lingua desiderata e scegliete uno dei quattro tipi di modelli per il modello di interazione della vostra skill:
- Custom model (modello di interazione definito dall'utente)
- Flash briefing model (modello di interazione predefinito per i news feed)
- Smart home model (modello di interazione predefinito per le applicazioni di smart home)
- Video model (modello di interazione predefinito per le applicazioni video)
In questo tutorial per creare una skill di Alexa vi mostreremo come creare modelli di interazione personalizzati usando il Custom Skill Model.
Inserite il nome per la vostra skill alla voce "Skill Name", nel nostro esempio “Flour Pot Sandwiches”.
Poi fate clic su "Create Skill" per avviare il processo di sviluppo. Sarete automaticamente reindirizzati alla schermata di modifica della console sviluppatori di Alexa.
Se volete personalizzare o sviluppare ulteriormente una skill già esistente, cliccate sul pulsante "Edit" in "Skill Overview" per passare alla modalità di modifica.
2. Configurare il modello di interazione usando l'Alexa Skills Kit
Per sviluppare la vostra skill c'è un'interfaccia grafica che riduce al minimo la programmazione. La schermata di modifica della console sviluppatori di Alexa si divide in 5 sezioni:
- Build (sviluppo)
- Test
- Distribution (rilascio)
- Certification (certificazione)
- Analytics (analisi)
Usate le tab nella barra di navigazione in alto nella finestra del browser per passare da una sezione a un'altra.
Cominciate con la sezione “Build” per abbozzare un modello di interazione per la vostra Custom Skill e per esercitarvi con l'Alexa Skills Kit. La pagina di riepilogo della sezione “Build” è divisa in tre colonne. La creazione della skill avviene tramite una checklist di Skill Builder nella colonna della pagina a destra e comprende quattro passaggi di configurazione:
- Selezionare un Invocation Name
- Definire gli intenti e le frasi di esempio
- Generare un modello
- Selezionare un endpoint del servizio web
Ogni volta che terminate uno dei passaggi richiesti, vi viene segnalato con una spunta verde.
Iniziate un passaggio della configurazione cliccando sul pulsante corrispettivo nella checklist dello Skill Builder. In alternativa potete aprire le singole sezioni di configurazione tramite la barra del menu nella colonna della pagina a sinistra. Qui è compreso inoltre un editor JSON e una voce del menu per la scelta delle interfacce utente (interfaces).
Nella colonna centrale della pagina di riepilogo trovate il materiale informativo per lo sviluppo dell'Alexa Skill così come un video relativo alla sezione selezionata della console sviluppatori di Alexa.
Selezionare l'Invocation Name
Prima di tutto stabilite l'Invocation Name della vostra Alexa Skill. Fate clic sul primo passaggio della checklist dello Skill Builder o selezionate nella colonna della pagina di sinistra la voce del menu “Invocation” per aprire la sezione di configurazione corrispondente.
Con il termine “Invocation Name” si indica l'espressione con cui gli utenti si rivolgono alla vostra skill. L’Invocation Name coincide possibilmente con la descrizione della skill, ma può anche differire da questa.
Inserite l’Invocation Name scelto nel campo apposito. Fate attenzione ai seguenti prerequisiti:
- Utilizzate un Invocation Name con due o più parole.
- Separate le parole con spazi.
- Utilizzate solo lettere minuscole.
- Inserite l’Invocation Name tra virgolette, nel caso in cui utilizziate un apostrofo o un’abbreviazione con un punto.
- I numeri o gli altri caratteri speciali devono essere scritti per intero.
L'Invocation Name non può contenere né frasi di avvio di Alexa come “launch” (avvia), “ask” (chiedi), “tell” (dici), “load” (carica), “open” (apri) o “play” (gioca) né parole di richiamo come “Alexa”, “Amazon”, “Echo” o “computer”, che servono per rivolgersi all'altoparlante intelligente. Anche le parole “skill” e “app” non sono consentite.
Per il nostro esempio abbiamo scelto l’Invocation Name “Flour Pot Sandwiches”.
Salvate l'Invocation Name cliccando su “Save Model”, poi fate clic su “Custom” per ritornare alla schermata di riepilogo.
Definire gli intenti e le frasi di esempio
Con gli intenti definite le azioni che la vostra skill di Alexa esegue nel momento in cui un utente usa un determinato schema linguistico. Definite che cosa un utente potrebbe dire alla vostra skill, con quale intenzione viene pronunciata la frase e come reagisce la skill. Ogni skill personalizzata contiene già cinque intenti predefiniti che verranno implementati successivamente. Inoltre, se necessario, potete aggiungere intenzioni già pronte o personalizzate alla vostra skill.
Per creare un intento personalizzato procedete come indicato di seguito.
Date un nome al nuovo intento e cliccate su “Create custom intent”.
Definite le frasi di esempio con cui gli utenti possono chiamare il nuovo intento. Inserite la frase desiderata nel campo di testo apposito e fate clic sul segno più (+).
Programmiamo un intento per la nostra skill di Alexa che consente agli utenti di domandare gli orari di apertura del nostro negozio. Chiamiamo l'intento “GetOpeningHours” e inseriamo le frasi di esempio con cui gli utenti potrebbero chiedere l'informazione desiderata.
Gli schemi linguistici definiti sono poi ampliati automaticamente dalla console sviluppatori di Alexa tramite apprendimento automatico, tuttavia questa soluzione funziona solo se il sistema ha a disposizione un database sufficientemente ampio. Per questo dovreste inserire almeno 8 frasi di esempio (anche se sono preferibili circa 30) con l'intenzione desiderata.
Se avete inserito un numero sufficiente di frasi di esempio ritornate alla schermata di riepilogo tramite il pulsante “Custom” per creare il modello e continuare l’apprendimento tramite machine learning.
Generare un modello
Procedete come di seguito per generare il modello di interazione della vostra skill di Alexa con le impostazioni scelte.
Fate clic sulla checklist dello Skill Builder sul punto “Build Model”. La console sviluppatori di Amazon attiva notifiche push che vi informano che il processo di creazione è iniziato.
Aspettate fino a che la console vi informa che il modello di interazione è stato creato.
Nel caso in cui apportaste modifiche all’Invocation Name, agli intenti o alle frasi di esempio, dovrete semplicemente ricominciare il processo di creazione per generare un nuovo modello.
Selezionare l’endpoint del servizio web
Il quarto passaggio della checklist dello Skill Builder comprende la scelta dell’endpoint del servizio web. Qui avete due possibilità tra cui scegliere. La logica del programma della vostra skill di Alexa può essere eseguita come funzione Lambda sulla piattaforma di cloud computing AWS o tramite HTTPS sul vostro web server.
Se la logica del programma è eseguita su risorse proprie, è necessario un web server che soddisfi i seguenti prerequisiti:
- Connessione a Internet
- HTTPS tramite uno dei certificati SSL/TLS di Amazon
- La porta 443 è disponibile per le richieste
Se volete utilizzare l'hosting di AWS Lambda, avete bisogno di un account utente per il servizio web di Amazon.
In questo tutorial ci basiamo su AWS e creiamo la logica del programma dell’Alexa Skill come funzione Lambda.
Per fare ciò attivate il checkbox su AWS Lambda ARN. ARN sta per “Amazon Resource Name”. Si tratta di una descrizione univoca per una risorsa AWS, ad esempio una funzione Lambda.
Prima di poter rimandare con ARN a una funzione Lambda, che comprende la logica del programma delle vostre skill, dovete prima di tutto crearla nella console AWS. Vi spieghiamo come procedere al punto 3 di questo tutorial.
Opzionale: interfacce di programmazione
Le Alexa Skill si possono ampliare tramite diverse API (interfacce di programmazione) che vi offrono opzioni aggiuntive per rendere disponibili i vostri contenuti multimediali o collegare i dispositivi esterni. La seguente tabella vi mostra una selezione delle API a disposizione.
Interfaccia | Descrizione |
---|---|
API per audio player | L'API per audio player amplia il codice di programmazione di una skill con tutti i requisiti necessari per la riproduzione dei contenuti di uno streaming audio. |
API per display | Una skill di Alexa che è stata ampliata con l'API per display consente anche un’interazione tramite lo schermo di Echo Show, oltre all'interfaccia vocale. |
API per app video | Una skill con API per app video può riprodurre contenuti di streaming video su Echo Show. |
API per Alexa gadget | Con l'API per gadget si possono sviluppare le skill che consentono interazioni con accessori di Alexa. |
3. Creare la logica del programma per AWS Lambda
Il servizio di elaborazione dati AWS Lambda fa parte dei servizi web di Amazon. Prima di tutto registratevi per aprire un account gratuito AWS.
Al momento della registrazione dell'account AWS non ci sono costi. Subentrano costi solo quando prendete in considerazione le risorse AWS. Per i primi 12 mesi Amazon mette limitatamente a disposizione dei nuovi utenti dei servizi selezionati gratuiti. Su AWS Lambda il contingente gratuito finora comprende 1 milione di richieste al mese così come un tempo di calcolo mensile di 3,2 milioni di secondi.
Loggatevi sul vostro account AWS e selezionate “AWS Management Console” alla voce “My Account”.
La console di AWS Management è un'interfaccia utente basata su browser con cui accedete e gestite i servizi web di Amazon.
Prima di tutto assicuratevi che la console sia impostata nella regione in cui volete offrire la vostra skill. Selezionate l'impostazione della regione “EU (Italy)” se dovete mettere a disposizione la vostra skill per gli utenti italiani.
La console di AWS Management vi dà accesso a diverse risorse di cloud computing. Per poter aprire il prodotto AWS desiderato, vi è la funzione di ricerca “Find services”. Inserite la parola chiave “Lambda” nella maschera di ricerca e confermate con Invio. In alternativa alla voce del menu “Services” avete a disposizione un riepilogo della gamma di prodotti AWS.
Nella homepage del servizio di elaborazione dati AWS Lambda, la console di AWS mostra un riepilogo delle funzioni Lambda che avete creato. Se non avete ancora creato alcuna funzione, la lista è vuota.
Fate clic su “Create function” per avviare il processo di configurazione per una nuova funzione Lambda.
Le funzioni di AWS Lambda possono essere create da zero usando un modello preconfigurato o basato su un’applicazione fornita da AWS o dai partner di AWS nel repository dell'applicazione AWS serverless.
Visto che dobbiamo fare affidamento su diverse librerie per la logica del programma della nostra skill, si ha la possibilità di crearla partendo da un modello.
Selezionate perciò l'opzione “Template” e inserite nella maschera di ricerca la parola chiave “alexa”.
In questo caso è indifferente quale modello scegliate, visto che c'è bisogno soltanto delle librerie di base e il codice del programma verrà completamente riscritto nei passaggi seguenti.
Per il tutorial scegliamo il modello “alexa-skill-kit-sdk-factskill” basato su node.js 6.10.
Confermate la vostra scelta con un clic su “Configure”.
Nel passaggio successivo selezionate un nome e il ruolo di esecuzione Lambda desiderato. Quest’ultimo definisce i permessi della funzione. Come nel nostro esempio la funzione prende il nome di “FlourPotSandwiches”. Per definire i permessi cliccate sul menu a tendina “Role” alla voce “Create a user-defined role”.
La console di AWS Management vi informa che la vostra funzione comprende librerie esterne.
La maschera di configurazione per il ruolo di esecuzione della funzione si apre in una nuova tab che presenta già valori preimpostati.
Non cambiate niente e confermate l'impostazione con “Allow”. La funzione Lambda viene creata con il ruolo “lambda_basic_execution”. La tab si chiude automaticamente.
Nella sezione inferiore della maschera di configurazione trovate il codice della funzione Lambda del modello. Inizialmente non dovete prestarvi attenzione. Cliccate, invece, su “Create function”.
Dopo aver creato la vostra funzione Lambda, verrete reindirizzati automaticamente al riepilogo di configurazione della funzione Lambda in cui apportare tutte le altre impostazioni.
Nella sezione superiore del riepilogo di configurazione trovate la sezione di progettazione della funzione e un editor, con il quale potete accedere al codice di funzione manualmente. Nell'editor proseguite con gli altri pulsanti di configurazione, che non trattiamo però dettagliatamente in questo tutorial.
Scorrete in basso fino ad arrivare alla sezione “Function code”, marcate tutto il codice nell'editor con [CTRL] + [A] e cancellatelo con il tasto Cancella.
Ora passate nella console sviluppatori di Amazon e aprite il modello di interazione della vostra Alexa Skill nell'editor JSON. Trovate il pulsante nel menu di navigazione sulla pagina della finestra a sinistra.
Marcate tutto il codice JSON con [CTRL] + [A] e copiatelo con [CTRL] + [C] negli appunti.
Il modello di interazione per la nostra skill di esempio “FlourPotSandwiches” si presenta così:
{
"interactionModel": {
"languageModel": {
"invocationName": "flour pots sandwiches",
"intents": [
{
"name": "AMAZON.FallbackIntent",
"samples": []
},
{
"name": "AMAZON.CancelIntent",
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"samples": []
},
{
"name": "AMAZON.StopIntent",
"samples": []
},
{
"name": "AMAZON.NavigateHomeIntent",
"samples": []
},
{
"name": "GetOpeningHours",
"slots": [],
"samples": [
"When will the store close",
"When will the store open",
"When does the store open",
"When does the store close",
"What are the opening hours"
]
}
],
"types": []
}
}
}
Il codice mostra il modello di interazione creato prima nel formato JSON.
JSON (JavaScript Object Notation) è un formato di scambio compatto e basato sul testo, facile da elaborare. I dati nel formato JSON vengono memorizzati come coppie nome-valore o come liste ordinate.
Il nostro documento JSON comprende gli intenti della nostra skill di Alexa così come le frasi di esempio assegnate agli intenti (se presenti). Sono comprese così tutte le possibilità di interazione che sono a disposizione dell’utente.
Nel codice della nostra funzione Lambda definiamo come la nostra skill reagisce ai segnali degli utenti. Per fare ciò accediamo all'applicazione web Skillinator.io. Con il tool gratuito convertite il modello di interazione nel formato JSON con un clic in un modello Lambda valido.
Andate all’indirizzo https://skillinator.io/ nel browser web e incollate il modello di interazione dagli appunti nella finestra di destra dell’applicazione web. Cliccate poi su “Generate”.
Copiate il modello Lambda generato nella cache e aprite il riepilogo della configurazione della vostra funzione Lambda nella console di AWS Management. Adesso aggiungete il modello come codice della funzione per la vostra funzione Lambda. Cliccate su “Save” per apportare le modifiche.
Ora avete creato una funzione Lambda con una logica del programma valida. Le sezioni essenziali del codice di funzione sono però riempite con segnaposti, ad esempio l'output vocale che riproduce Alexa non appena un utente pronuncia una frase che corrisponde all'intento definito sopra.
Proseguendo è necessario procedere riga per riga con il modello generato con Skillinator.io e riscrivere le sezioni corrispondenti manualmente.
In questo tutorial per creare una skill per Alexa ci limitiamo all’adattamento del codice di funzione di welcomeOutput (il messaggio di benvenuto) e l'output vocale per l'intento “GetOpeningHours” definito nel modello di interazione. Nel concreto dovreste però definire un’uscita vocale personalizzata per tutti gli intenti della vostra skill.
Il welcomeOutput viene definito tramite la variabile con lo stesso nome e si trova nella sezione commentata “1. Text strings”. Sostituiamo il segnaposto “This is a placeholder welcome message. This skill includes 6 intents. Try one of your intent utterances to test the skill.” con un saluto personalizzato.
Il welcomeOutput viene ampliato con un welcomeReprompt, dove definite ciò che Alexa dice nel caso in cui l'utente non risponda al saluto.
Nelle applicazioni vocali lavorate sempre con le variazioni. Progettate l'interazione con la vostra skill nella maniera più variegata possibile. Ad esempio, il Reprompt dovrebbe sempre presentare una riformulazione dell'output riprodotto prima.
// 1. Text strings =====================================================================================================
// Modify these strings and messages to change the behavior of your Lambda function
let speechOutput;
let reprompt;
let welcomeOutput = "Welcome to Flour Pot Sandwiches. What can I do for you?";
let welcomeReprompt = "How can I help you";
Infine scorriamo alla sezione “2. Skill Code”. Qui troviamo il nostro modello di interazione corrispondente a sei slot di intenti, vale a dire i cinque intenti preconfigurati così come il nostro intento personalizzato “GetOpeningHours”.
L'intento “GetOpeningHours” corrisponde all’intenzione di un utente di chiedere gli orari di apertura del negozio. Sostituiamo perciò il segnaposto “This is a place holder response for the intent named GetOpeningHours. This intent has no slots. Anything else?” con una risposta corrispondente all'intento.
'GetOpeningHours': function () {
speechOutput = '';
//any intent slot variables are listed here for convenience
//Your custom intent handling goes here
speechOutput = "Flour Pot Sandwiches is open today until 6pm.";
this.emit(":ask", speechOutput, speechOutput);
},
Dopo che abbiamo salvato le modifiche, teoricamente la nostra skill è pronta per il primo test. Per questo dobbiamo collegare prima la funzione Lambda “FlourPotSandwiches” con la configurazione web della skill nella console sviluppatori di Alexa.
4. Collegare il modello di interazione con una funzione AWS Lambda
Per poter permettere agli utenti di rivolgersi alla nostra skill di Alexa tramite un altoparlante intelligente è necessario un collegamento reciproco. Procediamo in due passaggi:
- Prima di tutto definiamo il modello di interazione configurato nella console sviluppatori di Alexa come attivatore per la funzione AWS Lambda.
- Dopo inseriamo la funzione Lambda “FlourPotSandwiches” nella console sviluppatori di Alexa come endpoint del servizio web per la skill.
Definire il modello di interazione come attivatore
Aprite la configurazione della vostra funzione Lambda nella console di AWS Management e scegliete nella sezione di progettazione delle funzioni l’opzione “Alexa Skills Kit”.
L’Alexa Skills Kit viene ora eseguito come attivatore nella rappresentazione grafica della vostra funzione Lambda, ma ha bisogno di altre configurazioni.
È obbligatorio l’ID di qualificazione del modello di interazione creato nella console sviluppatori di Alexa. Per identificarlo spostatevi nella console sviluppatori di Alexa e selezionate nella barra di navigazione sulla pagina sinistra della finestra del browser la voce “Endpoint”.
Copiate nella cache la sequenza che vi viene mostrata alla voce “Your Skill ID” e inseritela poi come ID di qualificazione della vostra funzione Lambda. Confermate questa impostazione con un clic su “Add” e salvate le modifiche.
Inserire la funzione Lambda come endpoint
Per definire l’endpoint del servizio web per la vostra skill, scorrete in alto nel riepilogo di configurazione della vostra funzione Lambda. Copiate nella cache l’ARN, che si trova nell’angolo in alto a destra della vostra finestra del browser, e passate alla console sviluppatori di Alexa.
Selezionate nel menu di navigazione della console sviluppatori di Alexa di nuovo la voce “Endpoint” (se non è già selezionata) e inserite l’ARN copiato nel campo “Default Region”.
Dovete definire almeno un endpoint standard per la vostra skill. Inoltre avete la possibilità di indicare gli endpoint alternativi per le regioni Nord America, Europa e India così come per il Medioriente e l’Estremo Oriente. Salvate le impostazioni con un clic su “Save Endpoints”.
La vostra skill è ora pronta per il primo test.
5. Test
Nella sezione “Test” la console sviluppatori di Alexa offre un ambiente di test completo per le Alexa Skill programmate autonomamente comprensivo di simulatore Alexa con uscita audio. Raggiungete l’ambiente di test cliccando nella riga del menu della finestra del browser in alto sulla tab “Test”.
Per impostazione standard l’ambiente di test per le nuove skill di Alexa è disattivato. Attivatelo impostando il menu a tendina da “Off” a “Development”.
Ora avete la possibilità di interagire con la vostra skill allo stadio di sviluppo attuale per assicurarvi che funzioni davvero come ve lo siete immaginati.
Garantite l’accesso a un microfono al simulatore di Alexa o date i comandi vocali tramite la tastiera. Chiamate la vostra nuova skill di Alexa tramite l’Invocation Name e testate un comando vocale che corrisponde a uno degli intenti che avete definito.
La nostra skill di esempio può essere avviata con l’Invocation Name “flour pots sandwiches”. Alexa risponde con il welcomeOutput definito nella logica del programma:
“Benvenuti a Flour Pots Sandwiches. Cosa posso fare per te?”
Abbiamo visto che l’accesso alla logica del programma funziona. Quali input e output il servizio vocale di Amazon elabora nell’ambito della richiesta è mostrato nella finestra di Skill I/O nel formato JSON.
Ora ponete una domanda che corrisponde a un intento. In linea con il nostro esempio ci informiamo sugli orari di apertura del chiosco di sandwich:
“Quali sono gli orari di apertura del chiosco?”
Alexa comprende la nostra domanda e ci dà l’informazione di cui abbiamo bisogno:
“Flour Pots Sandwiches apre oggi dalle 10 alle 6.”
In alternativa testate le nuove Alexa Skill prima del rilascio su tutti i dispositivi connessi all’account sviluppatori di Amazon.
6. Pubblicazione
Dopo aver testato la vostra nuova skill ed esservi accertati che funzioni come desiderate, potete renderla disponibile agli altri utenti tramite lo store dell’Alexa Skill. Il prerequisito è che forniate tutte le informazioni richieste per la pubblicazione.
Passate quindi alla sezione “Distribution” (pubblicazione/rilascio), cliccando sull’omonimo pulsante nel menu di navigazione della console sviluppatori di Alexa. Riempite tutti i campi necessari alla voce “Skill Preview”, “Privacy & Compliance” e “Availability”.
Inserite in “Skill Preview” tutte le informazioni che dovrebbero essere mostrate nell’anteprima per il paese target. Qui dovete mettere a disposizione le seguenti informazioni:
- Nome della skill
- Breve descrizione (massimo 160 caratteri)
- Descrizione dettagliata (massimo 4.000 caratteri)
- Almeno tre frasi di esempio
- Icona della skill (piccola)
- Icona della skill (grande)
- Categoria
Se lo desiderate, potete anche inserire informazioni sulle novità e link all’informativa sulla privacy o alle condizioni d’uso della vostra skill.
Non avete a portata di mano un’icona per la vostra skill? Allora utilizzate l’Icon Builder gratuito per le skill di Alexa.
Alla voce “Privacy & Compliance” indicate se gli utenti possono utilizzare funzioni a pagamento con le skill, se raccogliete dati utente personali e se la vostra skill si indirizza a utenti sotto i 13 anni o contiene pubblicità.
L’attivazione di una skill di Alexa tramite lo store è gratuita. Si possono monetizzare i progetti che sono stati programmati con l’Alexa Skills Kit tramite acquisti in-app e abbonamenti.
Inoltre dovete confermare che la vostra skill sia conforme alle normative di esportazione per le Alexa Skill. Se al momento della verifica il team di Alexa deve fare attenzione a determinate direttive, ad esempio per quanto riguarda i requisiti hardware e software, potete indicarlo in un campo di testo apposito.
Infine alla voce “Availability” definite le rispettive limitazioni per la disponibilità delle vostre skill. La vostra skill deve essere messa a disposizione di tutti gli utenti o solo per determinate organizzazioni? I beta test devono essere eseguiti da persone specifiche? E in quali paesi e regioni vorreste rilasciare la vostra skill?
Salvate le vostre informazioni nelle sezioni “Skill Preview”, “Privacy & Compliance” e “Availability“ con un clic su “Save and continue”.
Le vostre informazioni vengono convalidate nell’ambito della certificazione delle vostre skill.
7. Certificazione
Dopo aver inserito tutte le informazioni necessarie per la pubblicazione potete attivare la vostra skill di Alexa per la convalida.
Dopo aver salvato con un clic su “Save and continue” le informazioni da pubblicare, verrete reindirizzati automaticamente alla sezione “Certification” (certificazione). La console sviluppatori di Alexa verifica i dati e vi invita (se necessario) a revisionare le informazioni errate o a inserire i dati mancanti.
Se avete inserito correttamente le informazioni richieste o le avete corrette, potete procedere con un test della funzionalità. Iniziate il test con un clic su “Run”.
Se dal test dovessero emergere errori, avete la possibilità di ritornare nella relativa sezione per risolvere l’errore ed eseguire un nuovo test della funzionalità.
Se il test della funzionalità della vostra Alexa Skill è andato a buon fine, siete pronti per l’ultimo passaggio della pubblicazione, l’invio (“Submission”). Cliccate su “Submit for Review” per certificare la vostra skill. Ora avviene una verifica da parte del team di Alexa.
La configurazione della vostra skill non può essere adattata durante il processo di certificazione. Avete però sempre la possibilità di interrompere la verifica. Per fare ciò cliccate sul pulsante “Withdraw from Certification”.
Se la verifica da parte di Amazon è terminata, riceverete un’e-mail all’indirizzo collegato all’account sviluppatori di Amazon. Si possono verificare due possibili scenari:
- La certificazione della vostra skill è andata a buon fine: in questo caso verrete informati per e-mail quando la vostra skill sarà pubblicata nello store.
- La vostra skill non è stata certificata: in questo caso Amazon ha riscontrato dei problemi durante il processo di certificazione. L’e-mail comprende un rapporto dettagliato su quali modifiche sono necessarie affinché la certificazione vada a buon fine. Dopo che avete apportato le modifiche, potete di nuovo far certificare la vostra skill.
Potete vedere velocemente nel riepilogo delle skill lo stato attuale di tutte le skill di Alexa che avete creato nella console sviluppatori di Alexa.
- In Development: la skill è in fase di sviluppo.
- Certification: la skill è in fase di certificazione.
- Live: la skill è disponibile per gli utenti tramite lo store di Alexa Skill.
Se la vostra skill è nello stato “live”, non potete più modificare la configurazione. Oltre alla versione live nella console sviluppatori di Alexa avete a disposizione una versione sviluppata della skill rilasciata che può essere revisionata indipendentemente dall’originale. Non appena una versione revisionata della vostra skill è stata certificata da Amazon, questa sostituisce la precedente versione live e viene creata automaticamente una nuova versione di sviluppo.
Una migliore esperienza utente con l’interfaccia vocale
Perché gli imprenditori dovrebbero sviluppare una skill di Alexa? I motivi sono semplici: l’interazione interpersonale si basa per la maggior parte sulla comunicazione orale. Parlando con le macchine ci serviamo però di ausili: immissioni tramite tastiera, mouse o touch screen che portano a un output dello schermo. Ma presto tutto ciò cambierà. Con Amazon Alexa, Google Assistant e Apple Siri il metodo di fruizione si trasforma in un dialogo: gli oggetti diventano interlocutori e utilizzarli è sempre più intuitivo.
Questa tecnologia sta ancora muovendo i primi passi, ma Voice-as-UI (la voce come un’interfaccia utente) è un trend che ha il potenziale di cambiare alla base il modo in cui percepiamo le macchine e come interagiamo con loro. Quindi per gli imprenditori un servizio vocale come Amazon Alexa offre diverse opportunità.
Servitevi delle Alexa Skill ad esempio per mostrare come la vostra azienda sia al passo coi tempi. Date un’impressione di voi moderna, affine alla tecnologia e dinamica, offrendo ai vostri clienti delle possibilità di interazione completamente nuove.
Dato che Alexa è un prodotto di Amazon, gode di una vasta eco. Insieme a Google l’azienda domina il mercato degli altoparlanti intelligenti. L’altoparlante intelligente viene percepito dai consumatori come un mezzo rivoluzionario, perché tramite interfaccia vocale apre un canale di comunicazione completamente nuovo per i vostri obiettivi di marketing. Nell’ambito dell’assistenza clienti, ad esempio, Alexa dà la possibilità di progettare processi di comunicazione automatizzati in modo più personale.
Gli assistenti vocali virtuali si concentrano ancora su una funzione di supporto, ma in futuro gli altoparlanti intelligenti consentiranno anche di eseguire diverse conversioni, ad esempio lo shopping tramite comando vocale. La vostra skill diventerà una filiale virtuale che approderà direttamente nel salotto dei vostri clienti. Già oggi gli abbonati Amazon Prime possono effettuare acquisti vocali tramite Amazon Pay.