Avec Alexa, Amazon propose un service vocal basé Cloud pour les enceintes in­tel­li­gentes dis­tri­buées par l’en­tre­prise, telles qu’Amazon Echo, Echo Dot, Echo Show ou Echo Spot. Une enceinte in­tel­li­gente est un assistant virtuel connecté à Internet qui reçoit des commandes via une interface vocale, ce qui lui permet d’effectuer diverses in­te­rac­tions.

Les enceintes in­tel­li­gentes servent à utiliser des services Internet basés sur l’audio et per­met­tent de gérer des appareils connectés via WiFi ou Bluetooth grâce aux tech­niques de la domotique (smart home). L’assistant vocal Alexa offre déjà diverses fonctions de base dans sa pro­gram­ma­tion initiale. Grâce aux commandes vocales, les uti­li­sa­teurs peuvent par exemple écouter de la musique, demander les ac­tua­li­tés du jour, les infos trafic, la météo ou encore gérer leur emploi du temps. Combinée à des appareils in­tel­li­gents, Alexa offre une interface vocale pour contrôler des lampes, des ther­mos­tats ou encore des prises in­tel­li­gentes.

Mais d’autres com­pé­tences peuvent être ins­tal­lées. Dans la boutique Alexa Skills, plus de 50 000 com­pé­tences de dé­ve­lop­peurs tiers sont mis à dis­po­si­tion des uti­li­sa­teurs. Elles peuvent être activées gra­tui­te­ment. Mais si vous êtes créatif, vous pouvez pro­gram­mer vos propres com­pé­tences Alexa à l’aide du kit Alexa Skills et de AWS Lambda. Nous vous montrons comment ça marche.

Qu’est-ce qu’une Skill Alexa ?

Les Skills Alexa sont des pro­grammes à activer en ligne qui per­met­tent d’élargir l’éventail des fonctions du service vocal Alexa. D’un point de vue technique, une skill Alexa ou « com­pé­tence » Alexa se compose d’une interface uti­li­sa­teur (le frontend) et d’une logique de programme (le backend). Le frontend d’une skill Alexa peut être toute sorte d’appareil in­tel­li­gent qui prend en charge le service lin­guis­tique Alexa ; par exemple, une enceinte in­tel­li­gente Amazon Echo ou un ré­fri­gé­ra­teur LG cor­rec­te­ment équipé. La logique du programme en backend fonc­tionne quant à elle soit sur votre serveur, soit sur AWS Lambda, un service de trai­te­ment de données fourni par Amazon.

Remarque

AWS (Amazon Web Services) est une filiale de la société amé­ri­caine de vente en ligne Amazon. Avec la pla­te­forme Cloud du même nom, l’en­tre­prise compte parmi les prin­ci­paux four­nis­seurs d’ap­pro­vi­sion­ne­ment de res­sources in­for­ma­tiques à la demande avec un modèle de fac­tu­ra­tion basé sur l’uti­li­sa­tion.

Con­di­tions pour le dé­ve­lop­pe­ment de skills Alexa

Les com­pé­tences Alexa sont dé­ve­lop­pées à l’aide du kit ASK et mises à dis­po­si­tion des uti­li­sa­teurs sur la boutique Alexa. L’accès au kit est dis­po­nible via un compte Amazon Developer gratuit.

Remarque

Le kit de com­pé­tences Alexa (ASK) est une col­lec­tion d’API en libre-service, d’outils, de do­cu­men­ta­tion et d’exemples de code qui per­met­tent de dé­ve­lop­per ra­pi­de­ment ses propres skills Alexa gra­tui­te­ment, et donc si né­ces­saire sur la base de blocs préconçus.

Si vous ne souhaitez pas héberger vous-même le backend de votre skill Alexa, vous aurez également besoin d’un compte AWS qui vous donne accès au service de trai­te­ment de données AWS Lambda.

Tutoriel : 7 étapes pour dé­ve­lop­per votre skill Alexa

De la création de votre première com­pé­tence Alexa per­son­na­li­sée à la pu­bli­ca­tion de votre ap­pli­ca­tion, on distingue sept étapes :

  • Aux étapes 1 et 2, vous créez une nouvelle com­pé­tence Alexa dans la console de dé­ve­lop­pe­ment Amazon et con­fi­gu­rez votre modèle d’in­te­rac­tion pour l’interface vocale.
  • Sur la base de ce modèle d’in­te­rac­tion, vous créez une fonction AWS Lambda lors de l’étape 3. Cette dernière inclut la logique du programme de votre skill et fonc­tionne sur la pla­te­forme cloud AWS.
  • À l’étape 4, vous reliez la fonction AWS Lambda à la console Amazon Developer Console pour mettre votre skill à la dis­po­si­tion des appareils Amazon.
  • Enfin lancez sur une phase de test à l’étape 5 pour valider puis publier votre skill aux étapes 6 et 7.

Voici un exemple pour illustrer sim­ple­ment le principe de dé­ve­lop­pe­ment d’une skill Alexa :

L’en­tre­pre­neuse Constance tient un petit stand de sandwichs à Paris : le Flour Pot Sand­wiches. Pour faire connaître son commerce et répondre aux in­ter­ro­ga­tions des clients, elle lance non seulement un site Web, mais aussi une skill pour le service lin­guis­tique Alexa. Pour commencer, elle s’attaque donc à la création d’une com­pé­tence pratique per­met­tant à ses clients de demander les heures d’ouverture de Flour Pot Sand­wiches via l’interface vocale Alexa.

1. Pré­pa­ra­tion

Pour permettre aux uti­li­sa­teurs du service Alexa Language de dé­ve­lop­per leurs skills, Amazon propose un en­vi­ron­ne­ment de dé­ve­lop­pe­ment avec interface Web graphique grâce au kit de com­pé­tences Alexa que l’on trouve sur l’Alexa Developer Console. Cette dernière fait partie d’Amazon Developer Console.

Connectez-vous à Amazon Developer. Si vous n’avez pas encore de compte, vous pouvez en créer un gra­tui­te­ment.

Après vous être connecté, vous accédez à l’aperçu des services. Sé­lec­tion­nez « amazon alexa ».

Dans le menu déroulant qui s’ouvre sous « Alexa Skills Kit », portez votre souris sur « Dé­ve­lop­per » puis cliquer sur « Aperçu ». Une nouvelle page s’ouvre.

Cliquez main­te­nant sur « Start a skill ». La page d’accueil de la console de dé­ve­lop­pe­ment Alexa vous montrera toutes les com­pé­tences que vous avez vous-même créées. Si vous vous connectez pour la première fois, la liste est vide.

Remarque

À l’heure actuelle, Alexa Developer Console n’est dis­po­nible qu’en anglais, japonais et chinois.

Cliquez enfin sur « Create Skill » pour créer une nouvelle skill Alexa.

Donnez un nom à votre skill, sé­lec­tion­nez la langue de votre choix et sé­lec­tion­nez l’un des quatre types de modèle d’in­te­rac­tion pour votre com­pé­tence :

  • Custom (modèle d’in­te­rac­tion per­son­na­lisé)
  • Flash Briefing (modèle d’in­te­rac­tion prédéfini pour les flux d’ac­tua­li­tés)
  • Smart Home (modèle d’in­te­rac­tion prédéfini pour les ap­pli­ca­tions Smart Home)

Dans ce tutoriel Alexa Skill, nous vous montrons comment créer des modèles d’in­te­rac­tion per­son­na­li­sés à l’aide du modèle Custom.

La rubrique « Skill name » est im­por­tante : c’est sous nom que s’affichera plus tard votre com­pé­tence dans la boutique Alexa.

Dans notre exemple, Constance choisit le nom « Flour Pot Sandwich ».

Cliquez de nouveau sur « Create skill » pour lancer le processus de dé­ve­lop­pe­ment.

Remarque

Si vous souhaitez modifier ou ajuster une com­pé­tence déjà créée, cliquez sur le bouton « Edit » dans l’aperçu des com­pé­tences pour traiter les données exis­tantes et les modifier.

2. Con­fi­gu­rer le modèle d’in­te­rac­tion à l’aide du kit de com­pé­tences Alexa

Pour le dé­ve­lop­pe­ment de votre com­pé­tence Alexa, il existe une interface uti­li­sa­teur graphique qui permet d’in­ter­ve­nir le moins possible soi-même dans le code. Le menu d’édition de la console de dé­ve­lop­pe­ment Alexa est divisé en cinq rubriques :

  • Build (dé­ve­lop­pe­ment)
  • Test
  • Dis­tri­bu­tion (pu­bli­ca­tion)
  • Cer­ti­fi­ca­tion
  • Analytics

Utilisez les onglets de la barre de na­vi­ga­tion en haut de la fenêtre du na­vi­ga­teur pour passer d’une zone à l’autre.

Commencez par la section « Build » pour concevoir un modèle d’in­te­rac­tion en utilisant le kit de com­pé­tences Alexa. La page de vi­sua­li­sa­tion est divisée en trois colonnes. Votre skill peut être créée à l’aide de la Skill Builder Checklist dans la colonne de droite. Elle comprend quatre étapes de con­fi­gu­ra­tion :

  • Sé­lec­tion­ner son nom in­vo­ca­tion name
  • Définir ses in­ten­tions (intents) et exemples d’ins­truc­tions
  • Créer le modèle
  • Choisir un endpoint

Lorsque l’une de ses étapes obli­ga­toires est terminée, une coche verte s’affiche.

Lancez une étape de con­fi­gu­ra­tion en cliquant sur l’une des rubriques de la checklist Skill Builder. Vous pouvez également ouvrir les dif­fé­rents domaines de con­fi­gu­ra­tion via la barre de menu dans la colonne de gauche. Cette dernière présente notamment un onglet pour l’éditeur JSON et pour la sélection des in­ter­faces uti­li­sa­teur.

Dans la colonne centrale de la page d’aperçu, une do­cu­men­ta­tion sur la pro­gram­ma­tion des com­pé­tences Alexa ainsi qu’une vidéo d’aide sont dis­po­nibles.

Sé­lec­tion­ner un nom d’in­vo­ca­tion

Tout d’abord, dé­fi­nis­sez le nom d’in­vo­ca­tion (in­vo­ca­tion name) de votre skill Alexa. Cliquez sur la première étape de la checklist Skill Builder ou sé­lec­tion­nez l’option « In­vo­ca­tion » dans le menu de gauche.

Le nom d’in­vo­ca­tion est le terme qui sera utilisé par les uti­li­sa­teurs pour appeler votre skill. Il peut être le même que le nom de la com­pé­tence ou en différer si né­ces­saire.

Entrez le nom d’in­vo­ca­tion désiré dans le champ prévu à cet effet. Faites attention tout de même aux points suivants :

  • Prenez un nom d’in­vo­ca­tion de deux mots ou plus.
  • Séparez les mots par des espaces.
  • N’utilisez que des lettres mi­nus­cules.
  • Mettez le nom de l’in­vo­ca­tion entre guil­le­mets si vous utilisez une apos­trophe ou une abré­via­tion avec un point.
  • Les chiffres ou autres ca­rac­tères spéciaux doivent être écrits au complet.
Remarque

Le nom d’in­vo­ca­tion ne doit comporter aucune phrase de lancement de la skill Alexa de type « launch » (lance), « ask » (demande), « tell » (dis), « load » (charge), « open » (ouvre) ou « play » (joue) et ne doit pas non plus utiliser un nom d’appel comme « Alexa », « Amazon », « Echo » ou « Computer » pour in­ter­pel­ler l’enceinte in­tel­li­gente. De même, les mots « skill » et « app » ne sont pas autorisés.

Constance choisit le nom d’in­vo­ca­tion « Flour Pot Sandwich » pour sa skill.

Sau­ve­gar­dez l’in­vo­ca­tion name en cliquant sur « Save model » puis cliquez sur « Custom » pour revenir à l’aperçu.

Définir les in­ten­tions et exemples d’ins­truc­tions

Avec Intents, vous dé­fi­nis­sez les actions que votre com­pé­tence Alexa exécute dès qu’un uti­li­sa­teur émet une phrase spé­ci­fique. Vous précisez ce qu’un uti­li­sa­teur de votre com­pé­tence peut dire, quelle est l’intention et comment votre skill réagit. Chaque com­pé­tence per­son­na­li­sée contient déjà cinq in­ten­tions pré­dé­fi­nies qui doivent être ensuite mises en œuvre. De plus, vous pouvez ajouter des in­ten­tions pré­con­çues ou per­son­na­li­sées selon vos besoins. Procédez comme ci-dessous pour créer une intention per­son­na­li­sée.

Donnez un nom à votre nouvelle intention et cliquez sur « Create custom intent ».

Dé­fi­nis­sez des exemples d’ins­truc­tions avec lesquels les uti­li­sa­teurs peuvent utiliser la com­pé­tence. Il vous suffit d’entrer la phrase souhaitée dans le champ de texte prévu à cet effet et de cliquer sur le signe plus (+).

Constance aimerait pro­gram­mer une intention pour permettre aux uti­li­sa­teurs de demander les heures d’ouverture de son commerce. Elle nomme l’intention « Ge­tO­pe­nin­gHours » et saisit des phrases d’exemple avec les­quelles les uti­li­sa­teurs peuvent demander les in­for­ma­tions sou­hai­tées.

Les modèles de langage définis sont ensuite au­to­ma­ti­que­ment élargis grâce à l’ap­pren­tis­sage au­to­ma­tique (machine learning) de la console de dé­ve­lop­pe­ment Alexa. Toutefois, cela ne fonc­tionne que si le système dispose d’une base de données suf­fi­sam­ment im­por­tante. Il est donc re­com­mandé d’entrer au moins huit exemples d’énoncés avec l’intention désirée, dans le meilleur des cas une trentaine.

Si vous avez saisi un nombre suffisant d’exemples d’ins­truc­tions pour votre skill Alexa, revenez à l’aperçu à l’aide du bouton « Custom » pour créer le modèle et le tester par ap­pren­tis­sage au­to­ma­tique.

Créer le modèle

Procédez comme suit pour créer le modèle d’in­te­rac­tion de votre com­pé­tence Alexa en fonction des pa­ra­mètres que vous avez définis.

Cliquez sur « Build Model » dans la checklist Skill-Builder. La console Amazon Developer Console affiche une no­ti­fi­ca­tion vous informant que le processus de com­pi­la­tion a commencé.

Attendez que la console vous confirme que votre modèle d’in­te­rac­tion a bien été créé.

Remarque

Si vous souhaitez changer par la suite le nom d’in­vo­ca­tion, vos intents ou les exemples d’ins­truc­tions, il vous suffit de re­dé­mar­rer le processus de com­pi­la­tion pour créer un nouveau modèle.

Sé­lec­tion­ner le point d’arrivée du service Web (endpoint)

L’étape 4 de la checklist consiste au choix du point d’arrivée, le « endpoint » du service Web. Deux options s’offrent à vous. La logique du programme de votre skill Alexa peut être exécutée soit comme une fonction lambda sur la pla­te­forme de Cloud AWS, soit via HTTPS sur votre serveur Web.

Si vous voulez que la logique du programme s’exécute sur vos propres res­sources, vous avez besoin d’un serveur Web qui réponde aux exigences suivantes :

  • Connexion à Internet
  • HTTPS avec un cer­ti­fi­cat SSL/TLS reconnu par Amazon
  • Port 443 dis­po­nible pour les demandes de ren­seig­ne­ments

Si vous souhaitez utiliser AWS Lambda pour l’hé­ber­ge­ment, vous aurez besoin d’un compte uti­li­sa­teur Amazon Web Service.

Dans ce tutoriel, nous nous appuyons sur AWS et créons la logique du programme de la com­pé­tence Alexa comme fonction Lambda.

Cochez par con­sé­quent la case AWS Lambda ARN. ARN signifie « Amazon Resource Name ». C’est un nom unique de ressource AWS, par exemple une fonction lambda.

Avant de pouvoir faire référence avec l’ARN à une fonction lambda qui contient la logique du programme de votre com­pé­tence, vous devez d’abord la créer dans la console AWS. Nous vous mon­tre­rons comment procéder au point 3 de ce tutoriel sur les skills Alexa.

Optionnel : in­ter­faces de pro­gram­ma­tion

Les skills Alexa peuvent être com­plé­tées par dif­fé­rentes API (in­ter­faces de pro­gram­ma­tion) qui offrent des pos­si­bi­li­tés sup­plé­men­taires pour fournir des contenus mul­ti­mé­dia ou pour intégrer des pé­ri­phé­riques externes. Le tableau ci-dessous présente une sélection des API dis­po­nibles.

Interface Des­crip­tion
API Audio Player L’API Audio Player complète le code de programme de votre skill pour inclure des exigences de lecture audio en streaming.
API Display En plus de l’interface vocale, une com­pé­tence Alexa améliorée avec l’API Display permet des in­te­rac­tions via l’écran de l’Echo Show.
API Video App Une skill avec une API Video app peut lire du contenu vidéo en streaming sur l’Echo Show.
API Alexa Gadget L’API Gadget peut être utilisée pour dé­ve­lop­per les skills per­met­tant des in­te­rac­tions avec des ac­ces­soires Alexa.

3. Créer une logique de programme pour AWS Lambda

Le service de trai­te­ment des données AWS Lambda fait partie d’Amazon Web Services. Inscrivez-vous d’abord pour obtenir un compte AWS gratuit.

Remarque

L’ins­crip­tion à un compte AWS n’engendre aucun frais. Des coûts seront toutefois induits lorsque vous uti­li­se­rez les res­sources d’AWS. Pendant les 12 premiers mois, Amazon met certains services gra­tui­te­ment à la dis­po­si­tion des nouveaux uti­li­sa­teurs en­re­gis­trés.

Connectez-vous à votre compte AWS et sé­lec­tion­nez « AWS Ma­na­ge­ment Console » sous « Mon compte ».

La console ma­na­ge­ment AWS est une interface basée na­vi­ga­teur que l’on peut utiliser pour gérer Amazon Web Services.

Tout d’abord, assurez-vous que votre console est réglée dans la région où vous voulez offrir votre com­pé­tence Alexa. Sé­lec­tion­nez le paramètre régional « EU (Ireland) » si vous voulez que vos skills soient dis­po­nibles pour les uti­li­sa­teurs situés en France.

La console de gestion AWS donne accès à une variété de res­sources de cloud computing. Pour trouver le produit AWS que vous cherchez, utilisez la fonction « Find services ». Entrez le mot-clé « Lambda » et confirmez avec Enter. Autrement, vous pourrez trouver une vue d’ensemble de la gamme de produits AWS dans le menu « Services ».

Sur la page d’accueil du service de trai­te­ment des données Lambda AWS, la console AWS affiche un aperçu des fonctions Lambda que vous avez créées. Si vous n’avez pas encore créé de fonctions, la liste est vide.

Cliquez sur « Créer une fonction » pour lancer le processus de con­fi­gu­ra­tion d’une nouvelle fonction Lambda.

Les fonctions lambda d’AWS peuvent être créées à partir de zéro, à l’aide d’un modèle pré­con­fi­guré ou sur la base d’une ap­pli­ca­tion fournie par AWS ou les par­te­naires AWS dans le ré­per­toire d’ap­pli­ca­tions sans serveur AWS (AWS Ser­ver­less Ap­pli­ca­tion Re­po­si­tory).

Comme nous devons utiliser plusieurs bi­blio­thèques pour la logique du programme de notre com­pé­tence Alexa, il est judicieux de la créer à partir d’un modèle.

Sé­lec­tion­nez donc l’option Modèle et entrez le mot-clé « alexa » dans le masque de recherche.

Dans ce tutoriel, nous avons choisi le modèle " alexa-skill-kit-sdk-factskill" basé sur Node.js 6.10.

Confirmez votre sélection en cliquant sur « Con­fi­gu­rer ».

Dans l’étape suivante, sé­lec­tion­nez un nom et le rôle d’exécution Lambda souhaité. Ce dernier définit les au­to­ri­sa­tions de la fonction. Dans la lignée de notre exemple, nous nommons la fonction « Flour­Pot­Sand­wiches ». Pour définir ses au­to­ri­sa­tions, on clique dans le menu déroulant « Rôle » sur « Create a custom role ».

Remarque

La console AWS Ma­na­ge­ment nous informe que la fonction contient des bi­blio­thèques externes.

Le masque de con­fi­gu­ra­tion pour le rôle d’exécution de la fonction s’ouvre dans un nouvel onglet - des valeurs pré­dé­fi­nies sont déjà insérées.

Ne modifiez rien ici et confirmez le réglage avec « Allow ». La fonction lambda est créée avec le rôle « lambda_basic_execution ». L’onglet se ferme au­to­ma­ti­que­ment.

Dans la partie in­fé­rieure du masque de con­fi­gu­ra­tion, vous trouverez le code de fonction lambda du modèle. Vous n’avez pas besoin de faire attention à cela au début. Cliquez sur « Create function ».

Après la création de votre fonction lambda, vous êtes au­to­ma­ti­que­ment redirigé vers la vue d’ensemble pour la con­fi­gu­ra­tion de la fonction lambda, où vous pouvez effectuer tous les autres réglages né­ces­saires.

Dans la partie su­pé­rieure de la synthèse de con­fi­gu­ra­tion, vous trouverez le designer de fonctions et un éditeur avec lequel vous pouvez in­ter­ve­nir ma­nuel­le­ment dans le code. L’éditeur est suivi par d’autres boutons de con­fi­gu­ra­tion, qui ne seront pas abordés en détail dans ce tutoriel sur les skills Alexa.

Faites défiler vers le bas jusqu’à la section « function code », marquez le code entier dans l’éditeur avec [Ctrl] + [A] et effacez-le avec la touche Suppr.

Passez main­te­nant à la console de dé­ve­lop­pe­ment Amazon et ouvrez le modèle d’in­te­rac­tion de votre com­pé­tence Alexa dans l’éditeur JSON. Le bouton cor­res­pon­dant se trouve dans le menu de na­vi­ga­tion à gauche de la fenêtre.

Marquez tout le code JSON avec [Ctrl] + [A] et copiez-le dans le presse-papiers avec [Ctrl] + [C].

Le modèle d’in­te­rac­tion pour notre exemple de skill est le suivant :

{
    "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": []
        }
    }
}

Le code montre le modèle d’in­te­rac­tion pré­cé­dem­ment créé au format JSON.

Remarque

JSON (Ja­vaS­cript Object Notation) est un format d’échange de données compact, basé texte, qui est facile à traiter pour les hommes comme pour les machines. Les données au format JSON sont stockées sous forme de paires nom-valeur ou de listes ordonnées.

Notre document JSON contient les in­ten­tions de notre skill Alexa ainsi que les exemples d’ins­truc­tions (si dis­po­nibles). Il inclut donc toutes les pos­si­bi­li­tés d’in­te­rac­tion dis­po­nibles sur la page uti­li­sa­teur.

La façon dont notre com­pé­tence réagit aux signaux de l’uti­li­sa­teur est définie dans le code de fonction de notre fonction Lambda. Pour cela, nous utilisons l’ap­pli­ca­tion Web Skil­li­na­tor.io. Avec cet outil gratuit, vous pouvez très ra­pi­de­ment convertir un modèle d’in­te­rac­tion JSON en un modèle Lambda valide.

Entrez l’adresse https://skil­li­na­tor.io/ dans votre na­vi­ga­teur Web et collez le modèle d’in­te­rac­tion du presse-papiers dans la fenêtre de l’ap­pli­ca­tion Web. Cliquez ensuite sur « Generate ».

Copiez le modèle lambda généré dans le presse-papiers et rendez-vous sur l’aperçu de la con­fi­gu­ra­tion de votre fonction lambda dans la console de gestion AWS. Insérez main­te­nant le modèle comme code de fonction pour votre fonction lambda. Cliquez sur « Save » pour accepter le chan­ge­ment.

Vous avez main­te­nant créé une fonction lambda avec une logique de programme valide. Cependant, des sections es­sen­tielles du code de fonction sont à compléter - par exemple, la sortie vocale d’Alexa qui est émise dès qu’un uti­li­sa­teur prononce une phrase cor­res­pon­dant à l’intention définie.

Il est donc né­ces­saire de parcourir le modèle créé avec Skil­li­na­tor.io ligne par ligne et de réécrire ma­nuel­le­ment les sections né­ces­saires.

Dans ce tutoriel sur les skills, nous limitons les adap­ta­tions du code de fonction à la wel­co­meOut­put (le message de bienvenue) et à la sortie vocale pour l’intention « Ge­tO­pe­nin­gHours » définie dans le modèle d’in­te­rac­tion. Dans la pratique, cependant, vous devez définir une sortie vocale in­di­vi­duelle pour toutes les com­pé­tences que vous proposez.

La wel­co­meOut­put est définie par la variable du même nom et se trouve dans la zone commentée « 1. Text strings ». Nous rem­pla­çons la phrase générique « This is a pla­ce­hol­der welcome message. This skill includes 6 intents. Try one of your intent ut­te­rances to test the skill » par un message d’accueil per­son­na­lisé.

Le wel­co­meOut­put est complété par un wel­co­me­Re­prompt. Vous dé­fi­nis­sez ici ce qu’Alexa doit dire si l’uti­li­sa­teur ne répond pas à l’invite de bienvenue.

Conseil

Pour les ap­pli­ca­tions vocales, tra­vail­lez toujours avec des va­ria­tions. Faites en sorte que l’in­te­rac­tion avec vos skills puisse être aussi variée que possible. Par exemple, le Reprompt doit toujours être une re­for­mu­la­tion de la première sortie émise.

// 1. Text strings =====================================================================================================
 //    Modify these strings and messages to change the behaviour 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";

Ensuite, nous faisons défiler le code jusqu’à la zone « 2. Skill Code ». On trouve ici six Intent-Slots – soit nos cinq in­ten­tions pré­con­fi­gu­rées ainsi que notre intention per­son­na­li­sée « Ge­tO­pe­nin­gHours ».

L’intention « Ge­tO­pe­nin­gHours » permet à un uti­li­sa­teur de se ren­seig­ner sur les heures d’ouverture de la boutique. Nous rem­pla­çons le caractère de rem­plis­sage « This is a place holder response for the intent named Ge­tO­pe­nin­gHours. This intent has no slots. Anything else? » par une réponse cor­res­pon­dant à l’intention.

},
	‘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);
    },

Après avoir sau­ve­gardé les chan­ge­ments, la skill Alexa que nous avons pro­gram­mée nous-mêmes est théo­ri­que­ment prête pour le premier test. Pour cela, nous devons d’abord lier la fonction lambda « Flour­Pot­Sand­wiches » avec la con­fi­gu­ra­tion Web de la com­pé­tence dans la console Alexa Developer.

4. Lier le modèle d’in­te­rac­tion avec la fonction Lambda AWS

Pour que notre com­pé­tence Alexa puisse être utilisée par les uti­li­sa­teurs via une enceinte in­tel­li­gente, il est né­ces­saire de relier les deux parties prenantes. Nous procédons en deux étapes :

  • Tout d’abord, nous dé­fi­nis­sons le modèle d’in­te­rac­tion configuré dans la console Alexa Developer comme dé­clen­cheur de la fonction lambda d’AWS.
  • Ensuite, nous entrons la fonction lambda « Flour­Pot­Sand­wiches » dans la console Alexa Developer comme point d’arrivée (endpoint) du service Web pour la com­pé­tence.

Dé­fi­ni­tion d’un modèle d’in­te­rac­tion comme dé­clen­cheur (trigger)

Ouvrez la con­fi­gu­ra­tion de votre fonction lambda dans la console de gestion AWS et sé­lec­tion­nez l’option « Alexa Skills Kit » dans le designer de fonctions.

Le kit de com­pé­tences Alexa est main­te­nant listé comme dé­clen­cheur dans la re­pré­sen­ta­tion graphique de votre fonction Lambda, mais nécessite une con­fi­gu­ra­tion sup­plé­men­taire.

On a main­te­nant besoin d’une ID de qua­li­fi­ca­tion du modèle d’in­te­rac­tion créé dans la console de dé­ve­lop­pe­ment Alexa. Pour le dé­ter­mi­ner, passez à la console de dé­ve­lop­pe­ment Alexa et sé­lec­tion­nez « Endpoint » dans la barre de na­vi­ga­tion sur le côté gauche de la fenêtre de votre na­vi­ga­teur.

Copiez dans le presse-papiers la chaîne de ca­rac­tères affichée sous « Your Skill ID » et saisissez-la comme ID de qua­li­fi­ca­tion de votre fonction Lambda. Confirmez le réglage en cliquant sur « Add » (Ajouter) et en­re­gis­trez vos mo­di­fi­ca­tions.

Entrer la fonction lambda comme point d’arrivée

Pour définir le point d’arrivée pour votre skill, faites défiler l’aperçu de la con­fi­gu­ra­tion de votre fonction Lambda vers le haut. Copiez l’ARN dans le coin supérieur droit de la fenêtre de votre na­vi­ga­teur pour le presse-papiers et passez à la console Alexa Developer.

Dans le menu de na­vi­ga­tion de la console Alexa Developer, sé­lec­tion­nez à nouveau « Endpoint » (si ce n’est déjà fait) et collez l’ARN copié dans le champ « Default Region ».

Vous devez définir au moins un endpoint par défaut pour votre com­pé­tence. Vous avez également la pos­si­bi­lité de spécifier d’autres critères d’éva­lua­tion pour les régions Amérique du Nord, Europe, Inde ainsi que pour le Moyen-Orient et Extrême-Orient. En­re­gis­trez les pa­ra­mètres en cliquant sur « Save Endpoints ».

Votre com­pé­tence Alexa est main­te­nant prête pour le premier test.

5. Test

Dans la section « Test », la console Alexa Developer offre un en­vi­ron­ne­ment de test complet pour les com­pé­tences Alexa pro­gram­mées par vos soins, incluant un si­mu­la­teur Alexa avec sortie vocale. Vous pouvez accéder à l’en­vi­ron­ne­ment de test en cliquant tout sim­ple­ment sur l’onglet « Test » qui se trouve dans la barre de menu en haut de la fenêtre du na­vi­ga­teur.

Par défaut, l’en­vi­ron­ne­ment de test est désactivé pour les com­pé­tences Alexa nou­vel­le­ment créées. Activez-le en changeant le menu déroulant de « Off » à « De­ve­lop­ment ».

Vous avez à ce stade l’occasion d’interagir avec vos com­pé­tences et de vous assurer qu’elles fonc­tion­nent comme vous l’aviez imaginé.

Autorisez l’accès à un mi­cro­phone au si­mu­la­teur Alexa ou entrez des commandes vocales à l’aide du clavier. Ouvrez votre nouvelle com­pé­tence Alexa en utilisant l’In­vo­ca­tion et testez une commande vocale qui cor­res­pond à l’une des in­ten­tions définies.

Notre exemple de skill peut commencer par l’in­vo­ca­tion « Flour Pot Sand­wiches ». Alexa répond avec le wel­co­meOut­put défini dans la logique du programme :

« Bienvenue chez Flour Pot Sand­wiches. Que puis-je faire pour vous ? »

L’accès à la logique du programme fonc­tionne. Les entrées et sorties traitées par le service vocal d’Amazon dans le cadre de la requête sont affichées dans la fenêtre Skill I/O au format JSON.

Nous allons donc main­te­nant nous ren­seig­ner sur les heures d’ouverture :

« Quand est-ce que le res­tau­rant ouvre aujourd’hui ? »

Alexa comprend notre question et nous donne les in­for­ma­tions dont nous avons besoin :

« Flour Pot Sand­wiches ouvre aujourd’hui de 10h à 18h. »

Remarque

Vous pouvez aussi tester les com­pé­tences Alexa nou­vel­le­ment dé­ve­lop­pées avant leur pu­bli­ca­tion sur tous les appareils connectés à votre compte Amazon Developer.

6. Pu­bli­ca­tion

Si vous avez testé votre nouvelle com­pé­tence Alexa et êtes satisfait, vous pouvez la mettre à la dis­po­si­tion d’autres uti­li­sa­teurs sur la boutique Alexa skills. Pour ce faire, il est né­ces­saire de procéder à sa pu­bli­ca­tion.

Ainsi, allez dans la rubrique « Dis­tri­bu­tion » dans le menu de na­vi­ga­tion de la console Alexa Developer. Rem­plis­sez tous les champs obli­ga­toires sous « Skill Preview », « Privacy & Com­pliance » et « Avai­la­bi­lity ».

Sous « Skill Preview » (aperçu), entrez toutes les in­for­ma­tions qui doivent être affichées aux uti­li­sa­teurs. On note notamment les in­for­ma­tions suivantes :

  • Nom de la com­pé­tence
  • Brève des­crip­tion (max. 160 ca­rac­tères)
  • Des­crip­tion détaillée (max. 4 000 ca­rac­tères)
  • Au moins trois exemples d’ins­truc­tion
  • Petite icône pour la com­pé­tence
  • Grande icône pour la com­pé­tence
  • Catégorie

Si né­ces­saire, vous pouvez également saisir des in­for­ma­tions sur vos nou­veau­tés et insérer des liens vers les dis­po­si­tions relatives à la pro­tec­tion des données ou les con­di­tions d’uti­li­sa­tion de votre com­pé­tence.

Conseil

Vous n’avez pas d’icône pour vos com­pé­tences pour l’instant ? Vous pouvez utiliser Alexa-Skill-Icon-Builder qui est dis­po­nible gra­tui­te­ment.

Sous « Privacy & Com­pliance », vous indiquez si les uti­li­sa­teurs peuvent utiliser des fonctions skills dans le cadre de votre com­pé­tence, si vous re­cueil­lez des données per­son­nelles, si vos com­pé­tences s’adressent également à des uti­li­sa­teurs âgés de moins de 13 ans et si elles incluent de la publicité.

Remarque

L’ac­ti­va­tion d’une com­pé­tence Alexa via la boutique Alexa Skills est gratuite. Les projets pro­gram­més avec le kit Alexa Skills peuvent être monétisés par des achats et des abon­ne­ments In-Skill.

De plus, vous devez confirmer que vos com­pé­tences sont conformes aux exigences d’ex­por­ta­tion pour Alexa Skills. Si certaines exigences sont mises en avant à la suite de la vé­ri­fi­ca­tion par l’équipe Alexa - par exemple, en ce qui concerne les con­di­tions ma­té­rielles ou lo­gi­cielles utiles pour votre skill - vous pouvez les décrire dans une zone de texte prévue à cet effet.

Enfin, sous « Avai­la­bi­lity », dé­fi­nis­sez les éven­tuelles res­tric­tions con­cer­nant la dis­po­ni­bi­lité de votre com­pé­tence. Votre skill devrait-elle être ac­ces­sible à tous les uti­li­sa­teurs ou seulement à certaines or­ga­ni­sa­tions ? Les tests bêta devraient-ils être effectués par des individus spé­ci­fiques ? Et dans quels pays et régions souhaitez-vous publier votre com­pé­tence ?

Sau­ve­gar­dez vos données dans les zones « Skill Preview », « Privacy & Com­pliance » et « Avai­la­bi­lity » en cliquant sur « Save and continue ».

Vos données seront validées dans le cadre de la cer­ti­fi­ca­tion de votre skill.

7. Cer­ti­fi­ca­tion

Une fois que vous avez saisi toutes les in­for­ma­tions né­ces­saires à la pu­bli­ca­tion, vous pouvez valider votre com­pé­tence Alexa.

Après avoir sau­ve­gardé les détails de votre pu­bli­ca­tion en cliquant sur « Save and continue », vous serez au­to­ma­ti­que­ment redirigé vers le champ « Cer­ti­fi­ca­tion ». La console de dé­ve­lop­pe­ment Alexa vérifie vos données et, si né­ces­saire, vous invite à réviser les in­for­ma­tions in­cor­rectes ou à fournir les données man­quantes.

Si vous avez saisi cor­rec­te­ment les in­for­ma­tions requises ou les avez corrigées lorsque né­ces­saire, vous pouvez pour­suivre vers un test de fonc­tion­ne­ment. Commencez le test en cliquant sur « Run ».

Si le rapport de test présente des erreurs, vous avez la pos­si­bi­lité de revenir à la zone ap­pro­priée, de corriger l’erreur et d’effectuer un nouveau test de fonc­tion­ne­ment.

Si la com­pé­tence Alexa que vous avez pro­gram­mée a effectué le test avec succès, elle est prête pour la dernière étape de la pu­bli­ca­tion - la « Sub­mis­sion ». Cliquez sur « Submit for Review » pour soumettre votre com­pé­tence à la cer­ti­fi­ca­tion. L’équipe d’Amazon Alexa va alors procéder à sa propre vé­ri­fi­ca­tion.

Remarque

La con­fi­gu­ra­tion de votre com­pé­tence ne peut pas être modifiée pendant le processus de cer­ti­fi­ca­tion. Toutefois, vous avez la pos­si­bi­lité à tout moment d’annuler la révision. Cliquez sur le bouton « Withdraw from Cer­ti­fi­ca­tion ».

Une fois l’éva­lua­tion Amazon terminée, vous recevrez un email sur le compte associé à votre compte Amazon Developer, et ce quel que soit le résultat. Il existe en principe deux scénarios possibles :

  • Votre com­pé­tence a bien été certifiée : dans ce cas, vous serez informé par email quand votre com­pé­tence sera publiée dans la boutique Alexa Skills.
  • Votre com­pé­tence n’a pas été certifiée : dans ce cas, Amazon a détecté des problèmes au cours du processus de cer­ti­fi­ca­tion. L’email com­pren­dra un rapport détaillé sur les mo­di­fi­ca­tions né­ces­saires pour obtenir la cer­ti­fi­ca­tion. Une fois que vous aurez fait les ajus­te­ments ap­pro­priés, vous pourrez soumettre de nouveau votre com­pé­tence pour obtenir la cer­ti­fi­ca­tion.

Vous pouvez consulter le statut de toutes les skills Alexa que vous avez créées dans l’aperçu des com­pé­tences de la console Alexa Developer.

  • In De­ve­lop­ment : votre com­pé­tence est en cours de dé­ve­lop­pe­ment.
  • Cer­ti­fi­ca­tion : votre com­pé­tence est en cours de cer­ti­fi­ca­tion.
  • Live : votre com­pé­tence est dis­po­nible aux uti­li­sa­teurs grâce à la boutique Alexa Skills.
Remarque

Si votre com­pé­tence a atteint le statut « Live », vous ne pouvez plus changer sa con­fi­gu­ra­tion. En plus de la version live, une version dé­ve­lop­peur est toutefois dis­po­nible dans la console Alexa Developer et peut être révisée in­dé­pen­dam­ment de l’original. Dès qu’une version révisée de votre com­pé­tence a été certifiée par Amazon, elle remplace la version live pré­cé­dente, et une nouvelle version dé­ve­lop­peur est au­to­ma­ti­que­ment créée.

Une meilleure ex­pé­rience uti­li­sa­teur avec l’interface vocale

Pourquoi les en­tre­prises devraient-elles dé­ve­lop­per une skill Alexa ? Une raison prin­ci­pale semble évidente : pour créer une réelle in­te­rac­tion avec les clients, la com­mu­ni­ca­tion orale est cruciale.

Avec un or­di­na­teur cependant, nous avons toujours recours à des in­ter­mé­diaires via le clavier par exemple, la souris ou l’écran tactile. Mais cela va bientôt changer. Avec Amazon Alexa, Google Assistant et Apple Siri, le service se résume en un dialogue. Les objets de­vien­nent des in­ter­lo­cu­teurs et la façon avec laquelle nous in­te­ra­gis­sons devient plus intuitive.

La tech­no­lo­gie n’en est encore qu’à ses bal­bu­tie­ments, mais l’uti­li­sa­tion de la voix en tant qu’interface uti­li­sa­teur (Voice as UI) est une tendance qui a le potentiel de changer fon­da­men­ta­le­ment la façon dont nous utilisons les machines. Pour les en­tre­prises, un service lin­guis­tique comme Amazon Alexa offre de nom­breuses pos­si­bi­li­tés.

Utilisez Alexa Skills par exemple pour montrer que votre en­tre­prise est restée à la page. Présentez-vous de manière moderne en offrant à vos clients de toutes nouvelles pos­si­bi­li­tés d’in­te­rac­tion. En France, le Voice as UI a toujours le charme de la nouveauté et peut trans­for­mer des activités banales en ex­pé­rience.

En tant que produit Amazon, Alexa bénéficie d’une portée énorme. Avec Google, l’en­tre­prise domine le marché des enceintes in­tel­li­gentes. Le smart speaker est encore considéré comme un média ré­vo­lu­tion­naire, car l’interface vocale ouvre un canal de com­mu­ni­ca­tion com­plè­te­ment nouveau pour le marketing. Dans le domaine du service à la clientèle, Alexa offre la pos­si­bi­lité de per­son­na­li­ser les processus de com­mu­ni­ca­tion au­to­ma­ti­sés.

Les as­sis­tants lin­guis­tiques virtuels se con­centrent surtout sur les fonctions de conseil. Mais à l’avenir, l’enceinte in­tel­li­gente pourra rendre possible diverses con­ver­sions, comme par exemple les achats par commande vocale. Votre skill Alexa deviendra alors une sorte de suc­cur­sale virtuelle installée di­rec­te­ment dans le salon de vos clients. Déjà, les membres d’Amazon Prime peuvent effectuer des achats vocaux via Amazon Pay.

Aller au menu principal