Con Alexa Amazon gestisce un servizio vocale basato su cloud per l’al­to­par­lan­te in­tel­li­gen­te di­stri­bui­to dal­l'a­zien­da, come Amazon Echo, Echo Dot, Echo Show o Echo Spot. Uno smart speaker è un al­to­par­lan­te collegato a Internet con un as­si­sten­te virtuale integrato che riceve comandi da un'in­ter­fac­cia vocale e consente così diverse in­te­ra­zio­ni.

Gli al­to­par­lan­ti in­tel­lin­gen­ti servono per l'u­ti­liz­zo di servizi Internet basati sul­l'au­dio e con­sen­to­no di con­trol­la­re tramite WiFi o Bluetooth i di­spo­si­ti­vi collegati nel­l'am­bi­to della domotica (smart home). Già di fabbrica l'as­si­sten­te vocale Alexa offre diverse funzioni di base. Gli utenti possono pre­di­spor­re tramite comando vocale che gli al­to­par­lan­ti in­tel­li­gen­ti ri­pro­du­ca­no musica, notizie, avvisi sul traffico e diano le pre­vi­sio­ni del tempo o anche rendano di­spo­ni­bi­li funzioni di ca­len­da­rio. In com­bi­na­zio­ne con i di­spo­si­ti­vi di smart home, Alexa offre un'in­ter­fac­cia vocale per il controllo di lampade, ter­mo­sta­ti o prese in­tel­li­gen­ti.

Suc­ces­si­va­men­te si possono in­stal­la­re altre funzioni, le co­sid­det­te skill. Nell'Alexa Skill Store sono di­spo­ni­bi­li più di 50.000 skill di svi­lup­pa­to­ri esterni, at­ti­va­bi­li gra­tui­ta­men­te in base alle proprie esigenze. In pochi passaggi si possono pro­gram­ma­re 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. Tec­ni­ca­men­te una skill di Alexa è composta da un'in­ter­fac­cia utente (chiamata front end) e dalla logica del programma (il back end). Qualsiasi di­spo­si­ti­vo smart che supporta l'as­si­sten­te vocale Alexa svolge la funzione di front end delle Alexa Skill, come un al­to­par­lan­te in­tel­li­gen­te della serie Amazon Echo o un fri­go­ri­fe­ro LG connesso. La logica del programma nel back end funziona sul proprio server o sulla base di AWS Lambda, un servizio di ela­bo­ra­zio­ne dati messo a di­spo­si­zio­ne da Amazon.

N.B.

AWS (Amazon Web Services) è un'a­zien­da affiliata del ri­ven­di­to­re online sta­tu­ni­ten­se Amazon. L'azienda con l'omonima piat­ta­for­ma di cloud computing rientra tra i leader del settore nell’ero­ga­zio­ne di risorse IT calibrate in base alle proprie esigenze con pagamento a seconda del consumo.

Pre­re­qui­si­ti per lo sviluppo delle Alexa Skill

Le Alexa Skill sono svi­lup­pa­te grazie all'Alexa Skills Kit e messe a di­spo­si­zio­ne degli utenti tramite l'Alexa Skill Store. Ottenete l'accesso all'Alexa Skills Kit tramite un account gratuito su Amazon Developer.

N.B.

L'Alexa Skills Kit (ASK) è una raccolta di diverse API self service, tool, documenti ed esempi di codice che vi con­sen­to­no uno sviluppo veloce e gratuito delle Alexa Skill, anche ser­ven­do­si di com­po­nen­ti già pronti, se ne­ces­sa­rio.

Se non volete gestire in proprio la logica del programma delle vostre Alexa Skill, è inoltre ne­ces­sa­rio un account AWS che vi permetta di accedere al servizio di ela­bo­ra­zio­ne dati AWS Lambda.

Tutorial: creare la propria skill per Alexa in cinque passaggi

Il processo di creazione della vostra prima skill per Alexa per­so­na­liz­za­ta consta di 7 passaggi che vi portano al rilascio del­l'ap­pli­ca­zio­ne:

  • Nei passaggi 1 e 2 create una nuova skill nella console di Amazon Developer e con­fi­gu­ra­te il modello di in­te­ra­zio­ne per l'in­ter­fac­cia vocale.
  • Sulla base di questo modello di in­te­ra­zio­ne mettete a punto nel passaggio 3 una funzione di AWS Lambda, che comprende la logica del programma della vostra skill e viene eseguita nella piat­ta­for­ma di cloud computing di Amazon, AWS.
  • Nel passaggio 4 collegate la funzione di AWS Lambda con la console di Amazon Developer per mettere a di­spo­si­zio­ne la vostra skill per i di­spo­si­ti­vi 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 pro­prie­ta­ria di un chiosco di sandwich a Bend, nel­l'O­re­gon, chiamato Flour Pot Sand­wi­ches. L'at­ti­vi­tà è molto nota tra i clienti che ricercano cibo sano e veloce. Il chiosco si trova nel centro di Bend e Jess vorrebbe sod­di­sfa­re 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'as­si­sten­te vocale Alexa. Per prima cosa comincia con lo sviluppo di una skill, usando l'in­ter­fac­cia vocale di Alexa, grazie alla quale i suoi clienti possono conoscere gli orari di apertura e chiusura di Flour Pot Sand­wi­ches.

1. Pre­pa­ra­zio­ne

Per con­sen­ti­re agli utenti del­l'as­si­sten­te vocale Alexa di svi­lup­pa­re una propria skill, Amazon fornisce l'Alexa Skills Kit at­tra­ver­so l'Alexa Developer Console come un ambiente di sviluppo con in­ter­fac­cia web grafica. La console svi­lup­pa­to­ri di Alexa fa parte della console svi­lup­pa­to­ri di Amazon.

Eseguite il login su Amazon Developer. Se non avete un account Amazon Developer, createne uno gra­tui­ta­men­te.

Dopo esservi loggati, vi ri­tro­ve­re­te su una schermata di riepilogo del servizio. Se­le­zio­na­te "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 svi­lup­pa­to­ri di Alexa.

La pagina iniziale della console svi­lup­pa­to­ri di Alexa vi mostrerà tutte le Alexa Skill che avete creato. Quando vi loggate per la prima volta la lista è vuota.

N.B.

La console svi­lup­pa­to­ri di Alexa è at­tual­men­te di­spo­ni­bi­le solo in inglese, giap­po­ne­se e cinese.

Fate clic su “Create Skill” per creare una nuova skill di Alexa.

Date un nome alla vostra skill, se­le­zio­na­te la lingua de­si­de­ra­ta e scegliete uno dei quattro tipi di modelli per il modello di in­te­ra­zio­ne della vostra skill:

  • Custom model (modello di in­te­ra­zio­ne definito dal­l'u­ten­te)
  • Flash briefing model (modello di in­te­ra­zio­ne pre­de­fi­ni­to per i news feed)
  • Smart home model (modello di in­te­ra­zio­ne pre­de­fi­ni­to per le ap­pli­ca­zio­ni di smart home)
  • Video model (modello di in­te­ra­zio­ne pre­de­fi­ni­to per le ap­pli­ca­zio­ni video)

In questo tutorial per creare una skill di Alexa vi mo­stre­re­mo come creare modelli di in­te­ra­zio­ne per­so­na­liz­za­ti usando il Custom Skill Model.

Inserite il nome per la vostra skill alla voce "Skill Name", nel nostro esempio “Flour Pot Sand­wi­ches”.

Poi fate clic su "Create Skill" per avviare il processo di sviluppo. Sarete au­to­ma­ti­ca­men­te rein­di­riz­za­ti alla schermata di modifica della console svi­lup­pa­to­ri di Alexa.

N.B.

Se volete per­so­na­liz­za­re o svi­lup­pa­re ul­te­rior­men­te una skill già esistente, cliccate sul pulsante "Edit" in "Skill Overview" per passare alla modalità di modifica.

2. Con­fi­gu­ra­re il modello di in­te­ra­zio­ne usando l'Alexa Skills Kit

Per svi­lup­pa­re la vostra skill c'è un'in­ter­fac­cia grafica che riduce al minimo la pro­gram­ma­zio­ne. La schermata di modifica della console svi­lup­pa­to­ri di Alexa si divide in 5 sezioni:

  • Build (sviluppo)
  • Test
  • Di­stri­bu­tion (rilascio)
  • Cer­ti­fi­ca­tion (cer­ti­fi­ca­zio­ne)
  • Analytics (analisi)

Usate le tab nella barra di na­vi­ga­zio­ne in alto nella finestra del browser per passare da una sezione a un'altra.

Co­min­cia­te con la sezione “Build” per abbozzare un modello di in­te­ra­zio­ne per la vostra Custom Skill e per eser­ci­tar­vi 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 con­fi­gu­ra­zio­ne:

  • Se­le­zio­na­re un In­vo­ca­tion Name
  • Definire gli intenti e le frasi di esempio
  • Generare un modello
  • Se­le­zio­na­re un endpoint del servizio web

Ogni volta che terminate uno dei passaggi richiesti, vi viene segnalato con una spunta verde.

Iniziate un passaggio della con­fi­gu­ra­zio­ne cliccando sul pulsante cor­ri­spet­ti­vo nella checklist dello Skill Builder. In al­ter­na­ti­va potete aprire le singole sezioni di con­fi­gu­ra­zio­ne 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 in­ter­fac­ce utente (in­ter­fa­ces).

Nella colonna centrale della pagina di riepilogo trovate il materiale in­for­ma­ti­vo per lo sviluppo del­l'A­le­xa Skill così come un video relativo alla sezione se­le­zio­na­ta della console svi­lup­pa­to­ri di Alexa.

Se­le­zio­na­re l'In­vo­ca­tion Name

Prima di tutto stabilite l'In­vo­ca­tion Name della vostra Alexa Skill. Fate clic sul primo passaggio della checklist dello Skill Builder o se­le­zio­na­te nella colonna della pagina di sinistra la voce del menu “In­vo­ca­tion” per aprire la sezione di con­fi­gu­ra­zio­ne cor­ri­spon­den­te.

Con il termine “In­vo­ca­tion Name” si indica l'espres­sio­ne con cui gli utenti si rivolgono alla vostra skill. L’In­vo­ca­tion Name coincide pos­si­bil­men­te con la de­scri­zio­ne della skill, ma può anche differire da questa.

Inserite l’In­vo­ca­tion Name scelto nel campo apposito. Fate at­ten­zio­ne ai seguenti pre­re­qui­si­ti:

  • Uti­liz­za­te un In­vo­ca­tion Name con due o più parole.
  • Separate le parole con spazi.
  • Uti­liz­za­te solo lettere minuscole.
  • Inserite l’In­vo­ca­tion Name tra vir­go­let­te, nel caso in cui uti­liz­zia­te un apostrofo o un’ab­bre­via­zio­ne con un punto.
  • I numeri o gli altri caratteri speciali devono essere scritti per intero.
N.B.

L'In­vo­ca­tion 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 ri­vol­ger­si al­l'al­to­par­lan­te in­tel­li­gen­te. Anche le parole “skill” e “app” non sono con­sen­ti­te.

Per il nostro esempio abbiamo scelto l’In­vo­ca­tion Name “Flour Pot Sand­wi­ches”.

Salvate l'In­vo­ca­tion 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 de­ter­mi­na­to schema lin­gui­sti­co. Definite che cosa un utente potrebbe dire alla vostra skill, con quale in­ten­zio­ne viene pro­nun­cia­ta la frase e come reagisce la skill. Ogni skill per­so­na­liz­za­ta contiene già cinque intenti pre­de­fi­ni­ti che verranno im­ple­men­ta­ti suc­ces­si­va­men­te. Inoltre, se ne­ces­sa­rio, potete ag­giun­ge­re in­ten­zio­ni già pronte o per­so­na­liz­za­te alla vostra skill.

Per creare un intento per­so­na­liz­za­to 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 de­si­de­ra­ta nel campo di testo apposito e fate clic sul segno più (+).

Pro­gram­mia­mo un intento per la nostra skill di Alexa che consente agli utenti di domandare gli orari di apertura del nostro negozio. Chiamiamo l'intento “Ge­tO­pe­nin­gHours” e inseriamo le frasi di esempio con cui gli utenti po­treb­be­ro chiedere l'in­for­ma­zio­ne de­si­de­ra­ta.

Gli schemi lin­gui­sti­ci definiti sono poi ampliati au­to­ma­ti­ca­men­te dalla console svi­lup­pa­to­ri di Alexa tramite ap­pren­di­men­to au­to­ma­ti­co, tuttavia questa soluzione funziona solo se il sistema ha a di­spo­si­zio­ne un database suf­fi­cien­te­men­te ampio. Per questo dovreste inserire almeno 8 frasi di esempio (anche se sono pre­fe­ri­bi­li circa 30) con l'in­ten­zio­ne de­si­de­ra­ta.

Se avete inserito un numero suf­fi­cien­te di frasi di esempio ritornate alla schermata di riepilogo tramite il pulsante “Custom” per creare il modello e con­ti­nua­re l’ap­pren­di­men­to tramite machine learning.

Generare un modello

Procedete come di seguito per generare il modello di in­te­ra­zio­ne della vostra skill di Alexa con le im­po­sta­zio­ni scelte.

Fate clic sulla checklist dello Skill Builder sul punto “Build Model”. La console svi­lup­pa­to­ri 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 in­te­ra­zio­ne è stato creato.

N.B.

Nel caso in cui ap­por­ta­ste modifiche all’In­vo­ca­tion Name, agli intenti o alle frasi di esempio, dovrete sem­pli­ce­men­te ri­co­min­cia­re il processo di creazione per generare un nuovo modello.

Se­le­zio­na­re l’endpoint del servizio web

Il quarto passaggio della checklist dello Skill Builder comprende la scelta dell’endpoint del servizio web. Qui avete due pos­si­bi­li­tà tra cui scegliere. La logica del programma della vostra skill di Alexa può essere eseguita come funzione Lambda sulla piat­ta­for­ma di cloud computing AWS o tramite HTTPS sul vostro web server.

Se la logica del programma è eseguita su risorse proprie, è ne­ces­sa­rio un web server che soddisfi i seguenti pre­re­qui­si­ti:

  • Con­nes­sio­ne a Internet
  • HTTPS tramite uno dei cer­ti­fi­ca­ti SSL/TLS di Amazon
  • La porta 443 è di­spo­ni­bi­le per le richieste

Se volete uti­liz­za­re 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 de­scri­zio­ne 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 spie­ghia­mo come procedere al punto 3 di questo tutorial.

Opzionale: in­ter­fac­ce di pro­gram­ma­zio­ne

Le Alexa Skill si possono ampliare tramite diverse API (in­ter­fac­ce di pro­gram­ma­zio­ne) che vi offrono opzioni ag­giun­ti­ve per rendere di­spo­ni­bi­li i vostri contenuti mul­ti­me­dia­li o collegare i di­spo­si­ti­vi esterni. La seguente tabella vi mostra una selezione delle API a di­spo­si­zio­ne.

In­ter­fac­cia De­scri­zio­ne
API per audio player L'API per audio player amplia il codice di pro­gram­ma­zio­ne di una skill con tutti i requisiti necessari per la ri­pro­du­zio­ne dei contenuti di uno streaming audio.
API per display Una skill di Alexa che è stata ampliata con l'API per display consente anche un’in­te­ra­zio­ne tramite lo schermo di Echo Show, oltre al­l'in­ter­fac­cia vocale.
API per app video Una skill con API per app video può ri­pro­dur­re contenuti di streaming video su Echo Show.
API per Alexa gadget Con l'API per gadget si possono svi­lup­pa­re le skill che con­sen­to­no in­te­ra­zio­ni con accessori di Alexa.

3. Creare la logica del programma per AWS Lambda

Il servizio di ela­bo­ra­zio­ne dati AWS Lambda fa parte dei servizi web di Amazon. Prima di tutto re­gi­stra­te­vi per aprire un account gratuito AWS.

N.B.

Al momento della re­gi­stra­zio­ne del­l'ac­count AWS non ci sono costi. Su­ben­tra­no costi solo quando prendete in con­si­de­ra­zio­ne le risorse AWS. Per i primi 12 mesi Amazon mette li­mi­ta­ta­men­te a di­spo­si­zio­ne dei nuovi utenti dei servizi se­le­zio­na­ti gratuiti. Su AWS Lambda il con­tin­gen­te 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 se­le­zio­na­te “AWS Ma­na­ge­ment Console alla voce “My Account”.

La console di AWS Ma­na­ge­ment è un'in­ter­fac­cia utente basata su browser con cui accedete e gestite i servizi web di Amazon.

Prima di tutto as­si­cu­ra­te­vi che la console sia impostata nella regione in cui volete offrire la vostra skill. Se­le­zio­na­te l'im­po­sta­zio­ne della regione “EU (Italy)” se dovete mettere a di­spo­si­zio­ne la vostra skill per gli utenti italiani.

La console di AWS Ma­na­ge­ment vi dà accesso a diverse risorse di cloud computing. Per poter aprire il prodotto AWS de­si­de­ra­to, vi è la funzione di ricerca “Find services”. Inserite la parola chiave “Lambda” nella maschera di ricerca e con­fer­ma­te con Invio. In al­ter­na­ti­va alla voce del menu “Services” avete a di­spo­si­zio­ne un riepilogo della gamma di prodotti AWS.

Nella homepage del servizio di ela­bo­ra­zio­ne 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 con­fi­gu­ra­zio­ne per una nuova funzione Lambda.

Le funzioni di AWS Lambda possono essere create da zero usando un modello pre­con­fi­gu­ra­to o basato su un’ap­pli­ca­zio­ne fornita da AWS o dai partner di AWS nel re­po­si­to­ry del­l'ap­pli­ca­zio­ne AWS ser­ver­less.

Visto che dobbiamo fare af­fi­da­men­to su diverse librerie per la logica del programma della nostra skill, si ha la pos­si­bi­li­tà di crearla partendo da un modello.

Se­le­zio­na­te perciò l'opzione “Template” e inserite nella maschera di ricerca la parola chiave “alexa”.

In questo caso è in­dif­fe­ren­te quale modello scegliate, visto che c'è bisogno soltanto delle librerie di base e il codice del programma verrà com­ple­ta­men­te riscritto nei passaggi seguenti.

Per il tutorial scegliamo il modello “alexa-skill-kit-sdk-factskill” basato su node.js 6.10.

Con­fer­ma­te la vostra scelta con un clic su “Configure”.

Nel passaggio suc­ces­si­vo se­le­zio­na­te un nome e il ruolo di ese­cu­zio­ne Lambda de­si­de­ra­to. Quest’ultimo definisce i permessi della funzione. Come nel nostro esempio la funzione prende il nome di “Flour­Po­tSand­wi­ches”. Per definire i permessi cliccate sul menu a tendina “Role” alla voce “Create a user-defined role”.

N.B.

La console di AWS Ma­na­ge­ment vi informa che la vostra funzione comprende librerie esterne.

La maschera di con­fi­gu­ra­zio­ne per il ruolo di ese­cu­zio­ne della funzione si apre in una nuova tab che presenta già valori pre­im­po­sta­ti.

Non cambiate niente e con­fer­ma­te l'im­po­sta­zio­ne con “Allow”. La funzione Lambda viene creata con il ruolo “lambda_basic_execution”. La tab si chiude au­to­ma­ti­ca­men­te.

Nella sezione inferiore della maschera di con­fi­gu­ra­zio­ne trovate il codice della funzione Lambda del modello. Ini­zial­men­te non dovete prestarvi at­ten­zio­ne. Cliccate, invece, su “Create function”.

Dopo aver creato la vostra funzione Lambda, verrete rein­di­riz­za­ti au­to­ma­ti­ca­men­te al riepilogo di con­fi­gu­ra­zio­ne della funzione Lambda in cui apportare tutte le altre im­po­sta­zio­ni.

Nella sezione superiore del riepilogo di con­fi­gu­ra­zio­ne trovate la sezione di pro­get­ta­zio­ne della funzione e un editor, con il quale potete accedere al codice di funzione ma­nual­men­te. Nel­l'e­di­tor pro­se­gui­te con gli altri pulsanti di con­fi­gu­ra­zio­ne, che non trattiamo però det­ta­glia­ta­men­te in questo tutorial.

Scorrete in basso fino ad arrivare alla sezione “Function code”, marcate tutto il codice nel­l'e­di­tor con [CTRL] + [A] e can­cel­la­te­lo con il tasto Cancella.

Ora passate nella console svi­lup­pa­to­ri di Amazon e aprite il modello di in­te­ra­zio­ne della vostra Alexa Skill nel­l'e­di­tor JSON. Trovate il pulsante nel menu di na­vi­ga­zio­ne sulla pagina della finestra a sinistra.

Marcate tutto il codice JSON con [CTRL] + [A] e copiatelo con [CTRL] + [C] negli appunti.

Il modello di in­te­ra­zio­ne per la nostra skill di esempio “Flour­Po­tSand­wi­ches” 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 in­te­ra­zio­ne creato prima nel formato JSON.

N.B.

JSON (Ja­va­Script Object Notation) è un formato di scambio compatto e basato sul testo, facile da elaborare. I dati nel formato JSON vengono me­mo­riz­za­ti 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 pos­si­bi­li­tà di in­te­ra­zio­ne che sono a di­spo­si­zio­ne dell’utente.

Nel codice della nostra funzione Lambda definiamo come la nostra skill reagisce ai segnali degli utenti. Per fare ciò accediamo al­l'ap­pli­ca­zio­ne web Skil­li­na­tor.io. Con il tool gratuito con­ver­ti­te il modello di in­te­ra­zio­ne nel formato JSON con un clic in un modello Lambda valido.

Andate all’indirizzo https://skil­li­na­tor.io/ nel browser web e incollate il modello di in­te­ra­zio­ne dagli appunti nella finestra di destra dell’ap­pli­ca­zio­ne web. Cliccate poi su “Generate”.

Copiate il modello Lambda generato nella cache e aprite il riepilogo della con­fi­gu­ra­zio­ne della vostra funzione Lambda nella console di AWS Ma­na­ge­ment. Adesso ag­giun­ge­te 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 es­sen­zia­li del codice di funzione sono però riempite con se­gna­po­sti, ad esempio l'output vocale che riproduce Alexa non appena un utente pronuncia una frase che cor­ri­spon­de al­l'in­ten­to definito sopra.

Pro­se­guen­do è ne­ces­sa­rio procedere riga per riga con il modello generato con Skil­li­na­tor.io e ri­scri­ve­re le sezioni cor­ri­spon­den­ti ma­nual­men­te.

In questo tutorial per creare una skill per Alexa ci limitiamo all’adat­ta­men­to del codice di funzione di wel­co­meOut­put (il messaggio di benvenuto) e l'output vocale per l'intento “Ge­tO­pe­nin­gHours” definito nel modello di in­te­ra­zio­ne. Nel concreto dovreste però definire un’uscita vocale per­so­na­liz­za­ta per tutti gli intenti della vostra skill.

Il wel­co­meOut­put viene definito tramite la variabile con lo stesso nome e si trova nella sezione com­men­ta­ta “1. Text strings”. So­sti­tuia­mo il se­gna­po­sto “This is a pla­ce­hol­der welcome message. This skill includes 6 intents. Try one of your intent ut­te­ran­ces to test the skill.” con un saluto per­so­na­liz­za­to.

Il wel­co­meOut­put viene ampliato con un wel­co­me­Re­prompt, dove definite ciò che Alexa dice nel caso in cui l'utente non risponda al saluto.

Consiglio

Nelle ap­pli­ca­zio­ni vocali lavorate sempre con le va­ria­zio­ni. Pro­get­ta­te l'in­te­ra­zio­ne con la vostra skill nella maniera più variegata possibile. Ad esempio, il Reprompt dovrebbe sempre pre­sen­ta­re una ri­for­mu­la­zio­ne del­l'out­put ri­pro­dot­to 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 in­te­ra­zio­ne cor­ri­spon­den­te a sei slot di intenti, vale a dire i cinque intenti pre­con­fi­gu­ra­ti così come il nostro intento per­so­na­liz­za­to “Ge­tO­pe­nin­gHours”.

L'intento “Ge­tO­pe­nin­gHours” cor­ri­spon­de all’in­ten­zio­ne di un utente di chiedere gli orari di apertura del negozio. So­sti­tuia­mo perciò il se­gna­po­sto “This is a place holder response for the intent named Ge­tO­pe­nin­gHours. This intent has no slots. Anything else?” con una risposta cor­ri­spon­den­te al­l'in­ten­to.

'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, teo­ri­ca­men­te la nostra skill è pronta per il primo test. Per questo dobbiamo collegare prima la funzione Lambda “Flour­Po­tSand­wi­ches” con la con­fi­gu­ra­zio­ne web della skill nella console svi­lup­pa­to­ri di Alexa.

4. Collegare il modello di in­te­ra­zio­ne con una funzione AWS Lambda

Per poter per­met­te­re agli utenti di ri­vol­ger­si alla nostra skill di Alexa tramite un al­to­par­lan­te in­tel­li­gen­te è ne­ces­sa­rio un col­le­ga­men­to reciproco. Pro­ce­dia­mo in due passaggi:

  • Prima di tutto definiamo il modello di in­te­ra­zio­ne con­fi­gu­ra­to nella console svi­lup­pa­to­ri di Alexa come at­ti­va­to­re per la funzione AWS Lambda.
  • Dopo inseriamo la funzione Lambda “Flour­Po­tSand­wi­ches” nella console svi­lup­pa­to­ri di Alexa come endpoint del servizio web per la skill.

Definire il modello di in­te­ra­zio­ne come at­ti­va­to­re

Aprite la con­fi­gu­ra­zio­ne della vostra funzione Lambda nella console di AWS Ma­na­ge­ment e scegliete nella sezione di pro­get­ta­zio­ne delle funzioni l’opzione “Alexa Skills Kit”.

L’Alexa Skills Kit viene ora eseguito come at­ti­va­to­re nella rap­pre­sen­ta­zio­ne grafica della vostra funzione Lambda, ma ha bisogno di altre con­fi­gu­ra­zio­ni.

È ob­bli­ga­to­rio l’ID di qua­li­fi­ca­zio­ne del modello di in­te­ra­zio­ne creato nella console svi­lup­pa­to­ri di Alexa. Per iden­ti­fi­car­lo spo­sta­te­vi nella console svi­lup­pa­to­ri di Alexa e se­le­zio­na­te nella barra di na­vi­ga­zio­ne 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 in­se­ri­te­la poi come ID di qua­li­fi­ca­zio­ne della vostra funzione Lambda. Con­fer­ma­te questa im­po­sta­zio­ne 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 con­fi­gu­ra­zio­ne 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 svi­lup­pa­to­ri di Alexa.

Se­le­zio­na­te nel menu di na­vi­ga­zio­ne della console svi­lup­pa­to­ri di Alexa di nuovo la voce “Endpoint” (se non è già se­le­zio­na­ta) e inserite l’ARN copiato nel campo “Default Region”.

Dovete definire almeno un endpoint standard per la vostra skill. Inoltre avete la pos­si­bi­li­tà di indicare gli endpoint al­ter­na­ti­vi per le regioni Nord America, Europa e India così come per il Me­dio­rien­te e l’Estremo Oriente. Salvate le im­po­sta­zio­ni con un clic su “Save Endpoints”.

La vostra skill è ora pronta per il primo test.

5. Test

Nella sezione “Test” la console svi­lup­pa­to­ri di Alexa offre un ambiente di test completo per le Alexa Skill pro­gram­ma­te au­to­no­ma­men­te com­pren­si­vo di si­mu­la­to­re Alexa con uscita audio. Rag­giun­ge­te l’ambiente di test cliccando nella riga del menu della finestra del browser in alto sulla tab “Test”.

Per im­po­sta­zio­ne standard l’ambiente di test per le nuove skill di Alexa è di­sat­ti­va­to. At­ti­va­te­lo im­po­stan­do il menu a tendina da “Off” a “De­ve­lo­p­ment”.

Ora avete la pos­si­bi­li­tà di in­te­ra­gi­re con la vostra skill allo stadio di sviluppo attuale per as­si­cu­rar­vi che funzioni davvero come ve lo siete im­ma­gi­na­ti.

Garantite l’accesso a un microfono al si­mu­la­to­re di Alexa o date i comandi vocali tramite la tastiera. Chiamate la vostra nuova skill di Alexa tramite l’In­vo­ca­tion Name e testate un comando vocale che cor­ri­spon­de a uno degli intenti che avete definito.

La nostra skill di esempio può essere avviata con l’In­vo­ca­tion Name “flour pots sand­wi­ches”. Alexa risponde con il wel­co­meOut­put definito nella logica del programma:

“Benvenuti a Flour Pots Sand­wi­ches. 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 cor­ri­spon­de a un intento. In linea con il nostro esempio ci in­for­mia­mo 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’in­for­ma­zio­ne di cui abbiamo bisogno:

“Flour Pots Sand­wi­ches apre oggi dalle 10 alle 6.”

N.B.

In al­ter­na­ti­va testate le nuove Alexa Skill prima del rilascio su tutti i di­spo­si­ti­vi connessi all’account svi­lup­pa­to­ri di Amazon.

6. Pub­bli­ca­zio­ne

Dopo aver testato la vostra nuova skill ed esservi accertati che funzioni come de­si­de­ra­te, potete renderla di­spo­ni­bi­le agli altri utenti tramite lo store dell’Alexa Skill. Il pre­re­qui­si­to è che forniate tutte le in­for­ma­zio­ni richieste per la pub­bli­ca­zio­ne.

Passate quindi alla sezione “Di­stri­bu­tion” (pub­bli­ca­zio­ne/rilascio), cliccando sull’omonimo pulsante nel menu di na­vi­ga­zio­ne della console svi­lup­pa­to­ri di Alexa. Riempite tutti i campi necessari alla voce “Skill Preview”, “Privacy & Com­plian­ce” e “Avai­la­bi­li­ty”.

Inserite in “Skill Preview” tutte le in­for­ma­zio­ni che do­vreb­be­ro essere mostrate nell’anteprima per il paese target. Qui dovete mettere a di­spo­si­zio­ne le seguenti in­for­ma­zio­ni:

  • Nome della skill
  • Breve de­scri­zio­ne (massimo 160 caratteri)
  • De­scri­zio­ne det­ta­glia­ta (massimo 4.000 caratteri)
  • Almeno tre frasi di esempio
  • Icona della skill (piccola)
  • Icona della skill (grande)
  • Categoria

Se lo de­si­de­ra­te, potete anche inserire in­for­ma­zio­ni sulle novità e link all’in­for­ma­ti­va sulla privacy o alle con­di­zio­ni d’uso della vostra skill.

Consiglio

Non avete a portata di mano un’icona per la vostra skill? Allora uti­liz­za­te l’Icon Builder gratuito per le skill di Alexa.

Alla voce “Privacy & Com­plian­ce” indicate se gli utenti possono uti­liz­za­re funzioni a pagamento con le skill, se rac­co­glie­te dati utente personali e se la vostra skill si indirizza a utenti sotto i 13 anni o contiene pub­bli­ci­tà.

N.B.

L’at­ti­va­zio­ne di una skill di Alexa tramite lo store è gratuita. Si possono mo­ne­tiz­za­re i progetti che sono stati pro­gram­ma­ti con l’Alexa Skills Kit tramite acquisti in-app e ab­bo­na­men­ti.

Inoltre dovete con­fer­ma­re che la vostra skill sia conforme alle normative di espor­ta­zio­ne per le Alexa Skill. Se al momento della verifica il team di Alexa deve fare at­ten­zio­ne a de­ter­mi­na­te direttive, ad esempio per quanto riguarda i requisiti hardware e software, potete indicarlo in un campo di testo apposito.

Infine alla voce “Avai­la­bi­li­ty” definite le ri­spet­ti­ve li­mi­ta­zio­ni per la di­spo­ni­bi­li­tà delle vostre skill. La vostra skill deve essere messa a di­spo­si­zio­ne di tutti gli utenti o solo per de­ter­mi­na­te or­ga­niz­za­zio­ni? I beta test devono essere eseguiti da persone spe­ci­fi­che? E in quali paesi e regioni vorreste ri­la­scia­re la vostra skill?

Salvate le vostre in­for­ma­zio­ni nelle sezioni “Skill Preview”, “Privacy & Com­plian­ce” e “Avai­la­bi­li­ty“ con un clic su “Save and continue”.

Le vostre in­for­ma­zio­ni vengono con­va­li­da­te nell’ambito della cer­ti­fi­ca­zio­ne delle vostre skill.

7. Cer­ti­fi­ca­zio­ne

Dopo aver inserito tutte le in­for­ma­zio­ni ne­ces­sa­rie per la pub­bli­ca­zio­ne potete attivare la vostra skill di Alexa per la convalida.

Dopo aver salvato con un clic su “Save and continue” le in­for­ma­zio­ni da pub­bli­ca­re, verrete rein­di­riz­za­ti au­to­ma­ti­ca­men­te alla sezione “Cer­ti­fi­ca­tion” (cer­ti­fi­ca­zio­ne). La console svi­lup­pa­to­ri di Alexa verifica i dati e vi invita (se ne­ces­sa­rio) a re­vi­sio­na­re le in­for­ma­zio­ni errate o a inserire i dati mancanti.

Se avete inserito cor­ret­ta­men­te le in­for­ma­zio­ni richieste o le avete corrette, potete procedere con un test della fun­zio­na­li­tà. Iniziate il test con un clic su “Run”.

Se dal test dovessero emergere errori, avete la pos­si­bi­li­tà di ritornare nella relativa sezione per risolvere l’errore ed eseguire un nuovo test della fun­zio­na­li­tà.

Se il test della fun­zio­na­li­tà della vostra Alexa Skill è andato a buon fine, siete pronti per l’ultimo passaggio della pub­bli­ca­zio­ne, l’invio (“Sub­mis­sion”). Cliccate su “Submit for Review” per cer­ti­fi­ca­re la vostra skill. Ora avviene una verifica da parte del team di Alexa.

N.B.

La con­fi­gu­ra­zio­ne della vostra skill non può essere adattata durante il processo di cer­ti­fi­ca­zio­ne. Avete però sempre la pos­si­bi­li­tà di in­ter­rom­pe­re la verifica. Per fare ciò cliccate sul pulsante “Withdraw from Cer­ti­fi­ca­tion”.

Se la verifica da parte di Amazon è terminata, ri­ce­ve­re­te un’e-mail all’indirizzo collegato all’account svi­lup­pa­to­ri di Amazon. Si possono ve­ri­fi­ca­re due possibili scenari:

  • La cer­ti­fi­ca­zio­ne della vostra skill è andata a buon fine: in questo caso verrete informati per e-mail quando la vostra skill sarà pub­bli­ca­ta nello store.
  • La vostra skill non è stata cer­ti­fi­ca­ta: in questo caso Amazon ha ri­scon­tra­to dei problemi durante il processo di cer­ti­fi­ca­zio­ne. L’e-mail comprende un rapporto det­ta­glia­to su quali modifiche sono ne­ces­sa­rie affinché la cer­ti­fi­ca­zio­ne vada a buon fine. Dopo che avete apportato le modifiche, potete di nuovo far cer­ti­fi­ca­re la vostra skill.

Potete vedere ve­lo­ce­men­te nel riepilogo delle skill lo stato attuale di tutte le skill di Alexa che avete creato nella console svi­lup­pa­to­ri di Alexa.

  • In De­ve­lo­p­ment: la skill è in fase di sviluppo.
  • Cer­ti­fi­ca­tion: la skill è in fase di cer­ti­fi­ca­zio­ne.
  • Live: la skill è di­spo­ni­bi­le per gli utenti tramite lo store di Alexa Skill.
N.B.

Se la vostra skill è nello stato “live”, non potete più mo­di­fi­ca­re la con­fi­gu­ra­zio­ne. Oltre alla versione live nella console svi­lup­pa­to­ri di Alexa avete a di­spo­si­zio­ne una versione svi­lup­pa­ta della skill ri­la­scia­ta che può essere re­vi­sio­na­ta in­di­pen­den­te­men­te dall’originale. Non appena una versione re­vi­sio­na­ta della vostra skill è stata cer­ti­fi­ca­ta da Amazon, questa so­sti­tui­sce la pre­ce­den­te versione live e viene creata au­to­ma­ti­ca­men­te una nuova versione di sviluppo.

Una migliore espe­rien­za utente con l’in­ter­fac­cia vocale

Perché gli im­pren­di­to­ri do­vreb­be­ro svi­lup­pa­re una skill di Alexa? I motivi sono semplici: l’in­te­ra­zio­ne in­ter­per­so­na­le si basa per la maggior parte sulla co­mu­ni­ca­zio­ne orale. Parlando con le macchine ci serviamo però di ausili: im­mis­sio­ni 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 in­ter­lo­cu­to­ri e uti­liz­zar­li è sempre più intuitivo.

Questa tec­no­lo­gia sta ancora muovendo i primi passi, ma Voice-as-UI (la voce come un’in­ter­fac­cia utente) è un trend che ha il po­ten­zia­le di cambiare alla base il modo in cui per­ce­pia­mo le macchine e come in­te­ra­gia­mo con loro. Quindi per gli im­pren­di­to­ri un servizio vocale come Amazon Alexa offre diverse op­por­tu­ni­tà.

Servitevi delle Alexa Skill ad esempio per mostrare come la vostra azienda sia al passo coi tempi. Date un’im­pres­sio­ne di voi moderna, affine alla tec­no­lo­gia e dinamica, offrendo ai vostri clienti delle pos­si­bi­li­tà di in­te­ra­zio­ne com­ple­ta­men­te nuove.

Dato che Alexa è un prodotto di Amazon, gode di una vasta eco. Insieme a Google l’azienda domina il mercato degli al­to­par­lan­ti in­tel­li­gen­ti. L’al­to­par­lan­te in­tel­li­gen­te viene percepito dai con­su­ma­to­ri come un mezzo ri­vo­lu­zio­na­rio, perché tramite in­ter­fac­cia vocale apre un canale di co­mu­ni­ca­zio­ne com­ple­ta­men­te nuovo per i vostri obiettivi di marketing. Nell’ambito dell’as­si­sten­za clienti, ad esempio, Alexa dà la pos­si­bi­li­tà di pro­get­ta­re processi di co­mu­ni­ca­zio­ne au­to­ma­tiz­za­ti in modo più personale.

Gli as­si­sten­ti vocali virtuali si con­cen­tra­no ancora su una funzione di supporto, ma in futuro gli al­to­par­lan­ti in­tel­li­gen­ti con­sen­ti­ran­no anche di eseguire diverse con­ver­sio­ni, ad esempio lo shopping tramite comando vocale. La vostra skill diventerà una filiale virtuale che approderà di­ret­ta­men­te nel salotto dei vostri clienti. Già oggi gli abbonati Amazon Prime possono ef­fet­tua­re acquisti vocali tramite Amazon Pay.

Vai al menu prin­ci­pa­le