Fermer

novembre 5, 2019

Comment construire votre première compétence Amazon Alexa –


Alexa prend en charge un certain nombre de compétences intégrées, telles que l'ajout d'éléments à votre liste de courses ou la demande d'une chanson. Toutefois, les développeurs peuvent acquérir de nouvelles compétences personnalisées en utilisant le kit Alexa Skill (ASK).

ASK, un ensemble d’API et d’outils, gère le travail ardu lié aux interfaces vocales, notamment la reconnaissance vocale et le codage texte à parole. et traitement du langage naturel. ASK aide les développeurs à acquérir des compétences rapidement et facilement.

En bref, la seule raison pour laquelle Alexa peut comprendre les commandes vocales d’un utilisateur est qu’il possède des compétences définies. Chaque compétence Alexa est un logiciel conçu pour comprendre les commandes vocales. En outre, chaque compétence Alexa a sa propre logique définie qui crée une réponse appropriée pour la commande vocale. Pour vous donner une idée de certaines compétences Alexa existantes, elles incluent:

  • commander une pizza chez Domino's Pizza
  • réclamant un Uber
  • vous indiquant votre horoscope

Donc, comme dit, nous pouvons développer nos propres compétences personnalisées Adapté à nos besoins avec le Alexa Skill Kit, un ensemble d’API et d’outils conçus à cet effet. ASK comprend des outils tels que la reconnaissance vocale, le codage texte-parole et le traitement du langage naturel. Ce kit devrait permettre à tout développeur de développer rapidement ses propres compétences personnalisées.

Dans cet article, vous apprendrez à créer une compétence Alexa de base «comprendre les faits». En bref, nous pouvons demander à Alexa de nous présenter un fait chat aléatoire. Le code complet pour mener à bien notre tâche est disponible sur GitHub . Avant de commencer, assurez-vous de comprendre la terminologie des compétences Alexa.

Maîtriser la terminologie Alexa Skill

Voyons d’abord comment un utilisateur peut interagir avec une compétence personnalisée. Cela sera important pour comprendre les différents concepts liés aux compétences.

Pour activer une compétence particulière, l'utilisateur doit appeler Alexa et lui demander d'ouvrir une compétence. Par exemple: «Alexa, fait de chat ouvert». En faisant cela, nous appelons le nom d'invocation de la compétence. Fondamentalement, le nom de l’invocation peut sembler être le nom de l’application.

Maintenant que nous avons lancé la bonne compétence, nous avons accès aux intentions / commandes de voix que la compétence comprend. Comme nous voulons garder les choses simples, nous définissons une intention «Get Cat Fact». Cependant, nous devons fournir des exemples de phrases pour déclencher l'intention. Une intention peut être déclenchée par de nombreux exemples de phrases, également appelés énoncés . Par exemple, un utilisateur peut dire «Donner un fait». Par conséquent, nous définissons les exemples de phrases suivants:

  • «Dire un fait»
  • «Donner un fait de chat»
  • «Donner un fait»

Il est même possible de combiner le nom d'invocation avec une intention comme celle-ci. : "Alexa, demandez à Cat Fact de donner un fait."

Maintenant que nous connaissons la différence entre un nom d'invocation et une intention, passons à la création de votre première compétence Alexa.

Création d'un compte de développeur Amazon

Pour commencer, nous avons besoin d'un compte de développeur Amazon. Si vous en avez un, vous pouvez ignorer cette section.

L'inscription au compte Amazon Developer est un processus en trois étapes. Amazon a besoin d'informations personnelles, acceptant les conditions d'utilisation et fournissant un moyen de paiement. L'abonnement à un compte Amazon Developer présente l'avantage de vous donner accès à une multitude d'autres services Amazon. Une fois l'inscription terminée, le tableau de bord du développeur Amazon s'affiche.

Connectez-vous au tableau de bord et cliquez sur le bouton Developer Console dans le coin supérieur droit.

 Open Developer Console

Nous souhaitons ouvrir le kit de compétences Alexa.

 Ouvrir le kit de compétences Alexa

Si vous ne parvenez pas à ouvrir le kit de compétences Alexa, utilisez ce lien .

Dans la section suivante, nous allons créer notre compétence actuelle.

Créer notre première compétence personnalisée Alexa

Bien, nous allons créer notre première personnalisation Alexa. compétence. Cliquez sur le bouton bleu Créer une compétence pour ouvrir le menu permettant de créer une nouvelle compétence.

 Bouton Créer une compétence

Tout d'abord, cela nous demandera le nom de notre compétence. . Comme vous le savez déjà, nous voulons des faits aléatoires sur les chats et appelons donc la compétence un fait personnalisé sur le chat (nous ne pouvons pas utiliser un fait chat car il s’agit d’une compétence intégrée pour les appareils Alexa). Ensuite, il nous incite à choisir un modèle pour votre compétence. Nous pouvons choisir entre certains modèles prédéfinis ou opter pour un modèle personnalisé qui nous donne une flexibilité totale. Comme nous ne voulons pas nous occuper de code dont nous n'avons pas besoin, nous choisissons l'option Custom .

Remarque: Si vous choisissez une compétence prédéfinie, vous obtenez une liste des modèles d'interaction et exemples de phrases (énoncés). Cependant, même la compétence personnalisée est équipée des intentions les plus élémentaires telles que Cancel Help NavigateHome et Stop .

 Choisissez le nom de la compétence

Ensuite, nous devons choisir un moyen d'accueillir nos compétences. Encore une fois, nous ne voulons pas trop compliquer les choses et choisir l’option Alexa-Hosted (Node.js) . Cela signifie que nous n’avons pas à exécuter nous-mêmes un back-office qui nécessite quelques efforts pour le rendre «conforme à Alexa». Cela signifie que vous devez formater la réponse conformément aux normes Amazon Alexa pour qu'un périphérique puisse comprendre cela. L'option Alexa hébergée:

hébergera les compétences de votre compte dans les limites du niveau AWS Free Tier et vous permettra de démarrer avec un modèle Node.js. Vous aurez accès à un point de terminaison AWS Lambda, à 5 Go de stockage multimédia avec 15 Go de transfert de données mensuel et à un tableau de persistance de session.

 Méthode de sélection d'hôte

Bien, tous les paramètres sont maintenant définis. place, vous pouvez cliquer sur le bouton Créer une compétence dans le coin supérieur droit de l’écran. Ce bouton générera la compétence réelle dans notre compte de développeur Amazon.

Modification de votre première compétence Alexa

Désormais, si vous accédez à la console Alexa Developer vous y trouverez la liste de vos compétences. Cliquez sur le bouton edit pour commencer à modifier la compétence.

 Modifier Alexa Skill

Ensuite, Amazon affichera l'onglet build pour l'onglet . Compétence Cat Fact . À gauche, vous trouverez une liste des intentions définies pour la compétence. Comme indiqué précédemment, l'Alexa Skills Kit génère par défaut une intention Annuler Stop Help et NavigateHome . Les trois premiers sont utiles pour un utilisateur qui souhaite quitter la compétence ou ne sait pas l’utiliser. Le dernier, NavigateHome est utilisé uniquement pour les compétences complexes comportant plusieurs étapes.

 Modèle d'interaction

Étape 1: Vérification du nom de l'invocation

Vérifiez tout d'abord si le nom d'invocation de la compétence est correct. Le nom doit indiquer «fait personnalisé du chat».

Si vous modifiez le nom, veillez à appuyer sur le bouton Save Model en haut de la page.

 Nom de l'invocation [19659046] Étape 2: Modifier “HelloWorldIntent” </h3>
<p> Dans un deuxième temps, nous voulons modifier l’intention par défaut <em> HelloWorldIntent </em>. </p>
<p> En cliquant sur l’intention, nous obtenons une belle interface graphique qui nous permet de changer. le nom de l'intention ou ajouter des exemples d'énoncés. </p>
<p> <img decoding=

Personnellement, je préfère utiliser l'éditeur JSON, que vous trouverez dans le menu de gauche. Lorsque vous ouvrez l’éditeur JSON, vous verrez l’objet JSON suivant:

 éditeur JSON pour intentions

L’avantage de l’éditeur JSON est que vous pouvez modifier toutes les intentions en même temps. Ajoutons d'abord une nouvelle intention appelée "GetFactIntent".

Ensuite, nous souhaitons ajouter quelques exemples d'énoncés, comme dans l'image ci-dessous.

 Modifiez les intentions dans l'éditeur JSON

Après les modifications, voici à quoi devrait ressembler votre objet JSON. Pour le moment, nous ne souhaitons pas définir d’exemples de énoncés pour les autres intentions. Le kit de compétences Alexa reliera par défaut une phrase «aide» à «aide».

Remarque: n'oubliez pas de cliquer sur le bouton Enregistrer le modèle et d'appuyer sur le bouton . ] Bouton Construire le modèle . Alexa va essentiellement construire le modèle et se former selon le modèle que vous avez défini à l'aide des énoncés de phrase.

 Enregistrez et construisez le modèle

Étape 3: Testez la compétence «Fait de chat fait sur mesure» [19659043] Passons à l'onglet test du menu horizontal. À présent, basculez le menu déroulant de «L'essai des compétences est activé» sur Développement . Cela nous permettra de tester l’habileté.

Pour le moment, essayons d’activer l’habileté pour voir si tout va bien. Vous pouvez activer la compétence en appelant le nom d'invocation comme indiqué dans l'image ci-dessous.

 Tester la compétence d'invocation: dites bonjour ou aidez-nous

Étape 4: Modification du code pour GetFactIntent

Ensuite, nous allons plonger dans l'onglet code. Lorsque vous cliquez sur l'onglet code vous obtenez un éditeur en ligne avec le code par défaut.

Nous souhaitons tout d'abord copier le code de HelloWorldIntentHandler et le renommer en [ GetFactIntentHandler .

Ensuite, nous devons spécifier le type d'intention que ce gestionnaire peut gérer. La ligne numéro 21 recherche une intention nommée GetFactIntent .

Maintenant que nous avons trouvé l’intention, définissons une réponse statique: "Je vais raconter un fait!" Que nous attribuons à la speakOutput variable.

 Ajoutez l'intention de GetFact

Enfin, nous devons ajouter le GetFactIntentHandler aux autres gestionnaires de demandes. Nous pouvons simplement faire cela en l'ajoutant à la fonction addRequestHandlers . N'oubliez pas de sauvegarder et de construire l'intention!

 Ajoutez le gestionnaire GetFact

Maintenant que la compétence a été enregistrée et construite, vérifions brièvement la réponse. Si nous demandons à l'habileté de dire un fait, elle devrait répondre par «Je vais raconter un fait!»

 Vérifiez l'habileté

Si tout va bien, vous pouvez passer à l'étape suivante.

Étape 5: API de requête permettant de récupérer des faits cat.

Enfin, nous souhaitons interroger une API simple qui renvoie des faits cat. Pour cela, j'utilise le point de terminaison API suivant: https://catfact.ninja/fact .

Ce point de terminaison API renvoie un fait et sa longueur.

 {
  "fait": "La contrebande d'un chat hors de l'Egypte ancienne était punie de mort. Les marchands phéniciens ont finalement réussi à faire passer en fraude des félins qu'ils ont vendus à des gens riches à Athènes et dans d'autres villes importantes."
  "longueur": 192
}

Le package https étant intégré à Node.js, nous pouvons l'utiliser dans notre code pour extraire les données de l'API. Voici comment nous procédons:

 HTTPS Get

Le code actuel se trouve ici:

 const https = require ('https');

const httpGet = () => {
  renvoyer une nouvelle promesse (((résoudre, rejeter)) => {
    var options = {
        hôte: 'catfact.ninja',
        port: 443,
        chemin: '/ fait',
        méthode: 'GET',
    };

    demande const = https.request (options, (response) => {
      response.setEncoding ('utf8');
      let returnData = '';

      response.on ('data', (chunk) => {
        returnData + = chunk;
      });

      response.on ('end', () => {
        resolver (JSON.parse (returnData));
      });

      response.on ('error', (error) => {
        rejeter (erreur);
      });
    });
    request.end ();
  }));
}

Maintenant que nous avons préparé la méthode d'assistance, nous pouvons l'ajouter à GetFactIntentHandler . Notez que, comme nous voulons utiliser la requête en attente nous devons faire en sorte que la fonction gère asynchrone . En outre, nous appelons la fonction httpGet pour obtenir la réponse au fait cat et attribuer response.fact à la variable speakOutput . Ensuite, la variable speakOutput est transmise à la commande speak utilisée par Alexa:

 const GetFactIntentHandler = {
    canHandle (handlerInput) {
        retour Alexa.getRequestType (handlerInput.requestEnvelope) === 'IntentRequest'
            && Alexa.getIntentName (handlerInput.requestEnvelope) === 'GetFactIntent';
    },
    async handle (handlerInput) {
        // const speakOutput = 'Je vais raconter un fait!';
        réponse const = wait httpGet ();
        const speakOutput = response.fact;
        retour handlerInput.responseBuilder
            .speak (speakOutput)
            //.reprompt('ajouter une repompt si vous voulez garder la session ouverte pour que l'utilisateur puisse répondre ')
            .avoir une réponse();
    }
};

 Ajouter un appel HTTP au gestionnaire

Nous sommes prêts avec les modifications de code. Sauvegardez le code une fois de plus et cliquez ensuite sur le bouton de déploiement

Étape 6: Test final des compétences

Pour la dernière étape, vérifions si la compétence récupère des faits de chat aléatoires à partir de l’API. De nouveau, passons à l’onglet .

Commencez l’habileté en appelant open cat fact . Ensuite, vous pouvez demander à de dire un fait . Si tout se passe bien, vous devriez obtenir un fait comme réponse.

 Obtenez la réponse de Cat Fact

Succès!

Étape 7 (Facultatif): test sur le périphérique Alexa réel

Afin de tester vos compétences personnalisées sur un appareil compatible Alexa, vous devez enregistrer l'appareil Alexa sous la même adresse électronique que votre compte de développeur Amazon.

Vous trouverez plus d'informations dans la documentation Alexa :

Pour effectuer un test avec un périphérique compatible Alexa (tel qu'un Amazon Echo), enregistrez-le avec la même adresse de messagerie que celle utilisée pour votre compte de développeur sur Amazon Developer Portal. Vous pouvez ensuite appeler votre compétence avec le mot de réveil et le nom de votre invocation: «Alexa, ouvrez ."

Si votre appareil est configuré avec un compte autre que votre compte développeur, réinitialisez-le, puis ré-enregistrez-le avec votre compte de développeur.

Comprendre les bases

Ce n'est que le début de l'acquisition de compétences avec Alexa. Des exemples beaucoup plus avancés sont possibles, tels que la transmission de paramètres (options) avec intention. En outre, de nombreux autres types de compétences peuvent être développés, comme les compétences permettant de contrôler les appareils intelligents pour la maison.

Si vous souhaitez en savoir plus sur le développement d'Alexa Skill, recherchez ces ressources:




Source link