Le marché des assistants vocaux ne cesse de progresser année après année et promet une révolution des usages à venir. S'il est encore intéressant de comparer les chiffres d'utilisation selon les supports (les assistants vocaux étant principalement utilisés sur smartphone à ce jour), nul ne peut ignorer la multiplication des ventes des enceintes connectées à assistance vocale. Les diverses études menées semblent toutes indiquer que les recherches vocales vont devenir courantes après 2020. Il est donc temps de se préparer à changement pour lequel le géant Amazon est en première ligne avec Alexa et ses "skills". Cet article va vous expliquer, pas à pas, comment créer votre première skill. Bonne chance !

Par Mathieu Chartier

Nous avions évoqué dans une précédente lettre (février 2018) les « actions » de Google Home, pour mettre en lumière les applications vocales chères aux assistants vocaux. Ce mois-ci, nous allons nous intéresser à la technologie Echo d'Amazon, le principal concurrent de Google, aux chiffres plus que flatteurs. Si les chatbots vous ont fait peur, peut-être que les skills d'Amazon vont vous séduire au point de concevoir des vocalbots de qualité…

Le marché des assistants vocaux en plein essor

Quand il s'agit d'évoquer le marché des assistants vocaux, toutes sortes de chiffres sortent d'études diverses et variées, et il est parfois difficile de trouver le vrai et le faux dans tout cela. Une tendance générale semble toutefois se dégager début 2019, mais il convient de ne pas se tromper de chiffres. En effet, d'une part les constructeurs vantent leurs chiffres d'utilisation et d'autres part, le marché montre quelques différences entre ces usages et la réalité. Voyons cela un peu plus en détail.

Il faut tout d'abord parler de la présence des technologies vocales chez les utilisateurs. Sur ce point, des marques comme Apple n'hésitent pas à bomber le torse pour montrer à quel point Siri est présent sur le marché des assistants vocaux. C'est certes vrai, tant les iPhone sont présents dans le monde, mais on ne peut pas dire que l'Homepod d'Apple soit en revanche un franc succès à ce jour avec seulement 6% de parts de marché aux Etats-Unis par exemple, contre 24% pour Google Home et presque tout le reste pour Amazon Echo, soit près de 70% (source : https://cnb.cx/2Dq3Jka). Il faut donc bien distinguer le nombre de fois où la technologie est disponible (avec un fort avantage pour les marques possédant des OS pour mobile) et les parts de marché.

Sur le plan des installations, il convient de mesurer le potentiel d'un assistant vocal, et non pas son réel succès ou son adoption auprès des utilisateurs. Apple Siri domine outrageusement le nombre d'appareils dotés d'un assistant avec Google, chacun ayant plus de 500 millions d'installations connues début 2019 selon VoiceBot (voir figure 1). Microsoft Cortana est également très présent grâce à l'essor de Windows 10 et Windows 10 Mobile, là où Amazon atteint les 100 millions d'installations uniquement avec ses enceintes connectées. Comme le disait Einstein : « tout est relatif ». Et c'est d'autant plus vrai quand on manipule des chiffres.


Fig. 1. Nombre d'installations des assistants vocaux.

Concernant les parts de marché réelles, basées sur les usages, on peut remarquer que la hiérarchie est bouleversée. Selon une étude approfondie de la société Strategy Analytics pour le 3e trimestre 2018 (source :  http://bit.ly/2DriG5A), Amazon est encore leader du marché sur le vocal, devant Google (Apple étant le dernier des principaux leaders dans ce classement).


Fig. 2. Parts de marché des assistants vocaux par marque.

En revanche, le constat est sans équivoque : Amazon perd peu-à-peu des parts de marché, tant les acteurs se multiplient et répartissent les usages. Il sera intéressant de voir à l'horizon 2020 la hiérarchie revue et corrigée après que les utilisateurs aient fait leur choix en termes d'assistants vocaux. Les chiffres de Statista montre bien la courbe de croissance du marché depuis quelques années (source : http://bit.ly/2BtH9qP).


Fig. 3. Évolution du marché des assistants vocaux (2016-2018).

Il est difficile d'obtenir des études aussi précises en France et c'est pourquoi nous nous basons essentiellement sur les données mondiales, bien que les Etats-Unis soient clairement dominants dans ces mesures.

Et le SEO vocal dans tout ça ?

On parle fréquemment d'AEO en matière de SEO vocal. Entendez par là la nouvelle discipline de l'Answer Engine Optimisation, à savoir l'optimisation pour les moteurs de réponses en quelque sorte. L'idée est donc un peu plus large que celle d'un simple SEO vocal tel que nous le décrivons depuis des mois.

Si nous observons de près les SERP de Google par exemple, nous remarquons que rien n'est réellement vocal à ce jour. En revanche, le moteur de recherche va s'imprégner des résultats proposés, et notamment de ses "Positions 0" pour répondre aux utilisateurs de Google Home ou de l'assistant vocal sur Android. On pourrait parler ici de SEO vocal, mais le concept d'AEO est plus réaliste, car il s'agit en effet de trouver des moyens de fournir des réponses toutes faites à Google, pour nourrir les assistants vocaux.

Seulement voilà, le SEO ne peut pas s'arrêter à quelques rares réponses sur des requêtes déjà spécifiques en soi (définitions, questions simples, demandes de service simple, etc.). Il faut davantage de « chances » de pouvoir ressortir dans des SERP pour contenter les référenceurs que nous sommes, et surtout les entreprises et marques pour qui nous travaillons ardument.

C'est pourquoi, à l'instar de l'App Store Optimisation (ASO), l'AEO peut répondre aussi à un autre pendant majeur des assistants oraux : les applications vocales. En effet, le SEO vocal se résume presque uniquement à obtenir des Positions 0 dans les SERP de Google si nous n'allons pas gratter un peu plus loin. Avec les applications vocales, nous pouvons cibler désormais les app stores vocaux, et donc nous positionner avec des programmes clés en main à installer sur nos enceintes connectées préférées.

Le marché de l'AEO est donc large, à la fois en matière de SEO pur côté moteur de recherche, mais aussi en termes de référencement d'applications vocales sur les app stores dédiés. Et c'est là tout l'enjeu de la bataille féroce que se livrent les différents acteurs du marché. Nous ne pouvons (devons ?) pas nous limiter au développement d'actions pour Google Home, il faut aussi aller chercher à développer le même type d'application vocale avec les skills d'Amazon, etc.

Ne reproduisons pas certaines erreurs commises avec les systèmes d'exploitations mobiles du passé que certains d'entre vous ont sûrement déjà oublié (recueillons-nous quelques secondes pour Symbian OS, HP webOS, Firefox OS, Samsung Bada, Ubuntu Touch voire même Blackberry OS qui survit difficilement). Nous disposons actuellement de peu d'acteurs forts dans le domaine des applications vocales, alors il serait certainement judicieux de développer à la fois pour Google Home et pour Amazon Echo. Il en va de l'avenir du référencement vocal…

Pourquoi utiliser les skills d'Amazon ?

Les études américaines (peu d'études probantes en France à ce jour) démontrent que les utilisateurs souhaitent effectuer certains types d'actions à la voix mais que cela n'est pas toujours possible nativement. Pour contrer ces manques, les firmes comme Google, Amazon, Apple ou Microsoft travaillent d'arrache-pied pour nourrir leurs enceintes connectées ou assistants vocaux mobiles avec de plus en plus de fonctionnalités. Cela n'est toujours pas encore suffisant et ne répond pas à tous les besoins des usagers.

De leur côté, les entreprises et les marques ont aussi la nécessité d'être présentes et surtout de prendre un peu d'indépendance vis-à-vis des systèmes utilisés par les leaders du marché. En effet, se contenter des positions 0 dans Google ne va pas mener bien loin si certains services et certaines requêtes passent à la trappe. Il est en outre risqué de ne dépendre que de SERP dans un moteur de recherche régulièrement changeant. En multipliant sa présence dans divers apps stores, les entreprises et marques ont plus de chance de gérer leur communication et de prévoir d'éventuels changements de cap des leaders imposés.

Par conséquent, développer des skills pour Amazon prend tout son sens, à la fois en termes de marketing (positionnement et image de marque), de communication (référencement), d'indépendance (application vocale gérée par la firme) et de service fourni aux utilisateurs. N'oublions pas non plus d'éventuels systèmes pour des annonceurs qui ne sauraient tarder à se mettre en place pour rentabiliser tout cela…

Pour développer un vocalbot pour Amazon Echo, il faut donc se tourner vers les kits applicatifs proposés. Pour rappel, les quatre grands acteurs du marché de l'assistance vocale ont mis en place des outils de développement de skills et d'applicatifs. L'Alexa Skills Kit (ASK) d'Amazon (source : https://amzn.to/2WUXHko) est le plus fourni en applications puisque nous dénombrons déjà près de 70 000 ASK dans le monde fin 2018 (source : http://bit.ly/2GkuTN8). Rien qu'en France, avec un comptage manuel, nous dénombrons près de 1 240 applications uniquement sur l'app store d'amazon.fr en janvier 2019, cela laisse de quoi réfléchir à un avenir radieux. Si nous ajoutons chaque pays, nous pouvons aisément comprendre que les 70 000 ASK ont été atteintes, notamment grâce au développement aux Etats-Unis, il faut le reconnaître.

Face à Amazon, son principal concurrent Google tente de rattraper son retard avec son kit de développement dédié (source : http://bit.ly/2DvQWwH). Son catalogue est très fourni avec une expansion tellement forte en 2018 que Google revendique plus d'un million d'actions dans le monde. Si nous résumons, Amazon est encore leader en matière de recherche vocale, mais est battu en termes d'applications vocales créées, il va donc falloir revoir nos stratégies de développement… 🙂


Fig. 4. Catalogue français des applications (skills) d'Amazon.

Le développement d'une skill pour la technologie Alexa d'Amazon peut s'avérer coûteux en temps et en développement mais si vous trouvez une application réelle pour la voix de votre entreprise ou de votre marque, il serait frustrant voire dommageable de ne pas se hisser dans ce marché en voie de développement. Combien de sociétés n'ont pas développé à temps des apps mobiles avant d'être noyées dans la masse quelques années plus tard ? En ce qui concerne les applications vocales, nous sommes encore dans les temps pour nous démarquer et proposer aux utilisateurs de bons usages vocaux, alors penchons-nous sur la création d'une petite skill simple…

Où et comment développer une action pour Amazon Alexa ?

Le développement d'une skill Alexa part du Alexa Skills Kit (source : https://amzn.to/2WUXHko), permettant de lancer un projet de création simple en cliquant sur le bouton « start a skill ». Tout est en anglais mais il suffit de suivre les premières étapes pour créer son compte de développeur Amazon. Une fois le compte créé, il convient de se rendre dans l'Alexa Developer Console en cliquant sur le lien de la section « Alexa ». C'est ici que l'on pourra commencer à créer une première skill.

Lors de la création de la première skill, nous avons choisi « custom » afin de personnaliser la création et « Alexa-hosted » afin qu'Amazon héberge la skill. Si vous voulez aller plus loin à terme, l'idéal serait d'héberger vos propres skills afin d'être totalement libre de vos actions.

Avant toutes choses, il faut évidemment avoir une idée intéressante pour développer un VocalBot. Cela peut sembler étonnant de le préciser, mais bon nombre de ChatBots ou VocalBots ont très peu d'intérêt, et sont donc inutiles.


Fig. 5. Création et configuration de base d'une skill Alexa.

La création d'une skill se fait en plusieurs étapes, au sein d'un modèle d'interaction :

  • L'invocation correspond au mot ou à la phrase qui va déclencher la skill. Si nous lui donnons le nom « Abondance » par exemple, c'est ainsi que l'on va pouvoir lancer l'application avec des phrases comme « Alexa, ouvre la skill Abondance » ou « Alexa, lance Abondance », etc.
  • Les intentions correspondent aux demandes des utilisateurs une fois la skill activée. Ce sont donc les schémas des requêtes vocales. Nous allons par exemple créer une petite skill qui fournit quelques définitions SEO, donc nous pourrons retrouver dans les intentions des expressions comme « que signifie { mot à définir } ? ». Ces expressions se définissent dans les « Sample utterances » (énoncés), une fois l'intention créée.
  • Les slots sont comme des « variables », c'est-à-dire qu'une requête vocale peut avoir une partie variable qui peut être définie dans l'application, afin d'adapter la réponse avec une structure conditionnelle. Pour nos définitions, nous aurons nécessairement besoin de slots pour capter le mot choisi, etc.
  • Le code de la skill est l'étape la plus complexe puisqu'il faut faire fonctionner les intentions avec les utterances et les slots définis. C'est le cœur du VocalBot !
  • Tester la skill.

Regardons donc tout cela étape par étape pour ne pas nous perdre. Tout d'abord, il faut créer l'invocation en se rendant dans la section « Invocation » de la console de développement Alexa (source : https://developer.amazon.com/alexa/console/), que nous appellerons « Abondance » dans notre application de test. Ce sera donc le nom d'appel de la skill.

Ensuite, il faut cliquer sur le bouton « Add » (en bleu) de la section « Intents » pour configurer une première intention, et surtout les utterances, à savoir les phrases d'action. Dans l'exemple, nous avons appelé l'intention « definition_requete » et nous avons créé 7 énoncés d'appel, à la fois sous forme de questions et d'affirmations (voire figure suivante). Pour l'exemple, nous avons dû créer un slot, donc une variable qui attend le mot à définir. Les slots sont des mots encadrés par des accolades, ce qui permet à Alexa de comprendre qu'il s'agit d'une zone variable dans la phrase.

Par exemple, nous avons pu créer les expressions suivantes pour déclencher des réponses dans l'application vocale « Abondance » :

  • « Qu'est-ce que {definition} signifie » ;
  • « Que veut dire {definition} » ;
  • « Peux-tu définir {definition} »

Il est possible de créer plusieurs slots si nécessaire et autant de phrases (utterances) que désiré. Imaginons que nous voulions créer une application complexe qui connait l'ensemble des lieux de rencontres web en Europe, nous pourrions avoir des déclencheurs comme « y-a-t-il un { type_evenement } à { ville_evenement } après { heure_evenement } ». Avec plusieurs slots de ce type, nous pourrions faire des requêtes dans une base de données pour filtrer les événements existants, etc.


Fig. 6. Définition des « sample utterances » pour déclencher des actions.

L'étape suivante consiste à paramétrer les slots définis. Il faut se rendre dans la section « Intent slots » de la page de l'intention pour choisir le type de slot voulu. Amazon a créé des dizaines de variables généralistes, qui nous évitent de tout programmer, mais parfois, nous devons créer notre propre type de slot pour parvenir à nos fins. Par exemple, le slot « AMAZON.city » contient les noms de ville, « AMAZON.TIME » l'heure, etc.

Dans notre exemple, nous devons créer notre propre type de slot car {definition} ne trouve pas de correspondance avec les types prédéfinis par Alexa. Il faut cliquer sur le bouton « Add » de la section « Slot Types » pour ce faire. Il suffit de donner un nom au type de slot (dans notre cas, « liste_definitions ») puis de lister tous les mots et expressions qui correspondent au type. Selon l'ampleur de l'application, il peut y avoir des centaines de valeurs de slot, et il est même possible d'ajouter des alias (synonymes) qui permettront de déclencher la même réponse si besoin. La figure suivante présente nos quelques définitions simples à fournir dans notre application de test. Bien entendu, il ne faut pas oublier d'aller paramétrer ce nouveau type de slot dans notre intention « definition_requete » déjà créée (il faut lier les deux entités pour que tout fonctionne).


Fig. 7. Création d'un type de slot et des valeurs associées.

La partie qui suit est clairement la plus complexe puisqu'il s'agit de développer le cœur de la skill avec du code. Sachant qu'Amazon Alexa fournit des SDK (kit de développement) en Java, NodeJS et Python, cela laisse peu de choix pour les passionnés d'autres langages (source : https://amzn.to/2TZ1X0E). Il existe des documentations en ligne et même des exemples si vous en avez besoin pour aller plus loin.

Dans notre exemple, nous allons utiliser le SDK Python, il vous faudra donc Python installé sur votre ordinateur. Décompressez l'archive téléchargée sur Github d'Amazon là où vous le souhaitez (source : http://bit.ly/2EhQt2S), ouvrez votre terminal dans le dossier ciblé et suivez la procédure de la documentation : https://alexa-skills-kit-python-sdk.readthedocs.io.

Le développement d'une skill se fait à partir de « handlers » qui captent les actions de l'utilisateur, tel que le lancement de l'application (« LaunchRequest »), la demande d'aide, etc. Au milieu de toutes ces actions préétablies, on peut retrouver nos propres actions ou intentions, qui font le cœur de notre programme. Il est fortement conseillé de suivre toutes les étapes de la documentation Alexa pour Python, cela permet de mieux comprendre la logique de développement (source : http://bit.ly/2T2eEKH).

Voici le code complet pour notre petite application vocale pour Abondance. Elle est volontairement simplifiée pour que le concept soit bien intégré, c'est pourquoi nous ne faisons aucun appel à une base de données pour récupérer dynamiquement les définitions, mais ce serait l'idéal dans une application réelle, bien entendu.

from ask_sdk_core.skill_builder import SkillBuilder
from ask_sdk_core.utils import is_request_type, is_intent_name
from ask_sdk_core.handler_input import HandlerInput
from ask_sdk_model import Response

# Nom de la skill (optionnel)
skill_name = "Abondance"

# Création du Skill Builder
sb = SkillBuilder()

# Implantation avec des décorateurs (méthode 2 de la documentation)
"""
Action au lancement de l'application (optionnel)
"""
@sb.request_handler(can_handle_func=is_request_type("LaunchRequest"))
def launch_request_handler(handler_input):
    # Variable contenant le texte qui sera lu
    speech_text = "Bienvenue dans l'application des définitions d'Abondance ! Que voulez-vous savoir ?"

    # Réponse
    return handler_input.response_builder.speak(speech_text).response

"""
Action pour activer l'aide en cas de besoin
"""
@sb.request_handler(can_handle_func=is_intent_name("AMAZON.HelpIntent"))
def help_intent_handler(handler_input):
            # Variable contenant le texte qui sera lu
    speech_text = "Demandez-moi une définition"

    # Réponse
    return handler_input.response_builder.speak(speech_text).response

"""
Action si l'intention "definition_requete" est appelée (via une phrase ou question)
"""
@sb.request_handler(can_handle_func=is_intent_name("definition_requete"))
def definition_requete(handler_input):
            # Récupération des slots
            slots = handler_input.request_envelope.request.intent.slots

    # Variable contenant le texte qui sera lu
    speech_text = ""

    # Vérification -> si le slot "definition" existe
            if "definition" in slots:
                       # Récupération du mot ou de l'expression à définir (correspondant à {definition})
                definition_recherchee = slots["definition"].value

                # Idéalement, on ferait appel à une base de données contenant les définitions
                # On fait avec la méthode procédurale simple pour l'exemple
                if definition_recherchee == "indexation":
                        speech_text = "Méthode pour réussir à intégrer les pages et leurs contenus au sein de l'index (base de données) d'un moteur de recherche."
                elif definition_recherchee == "SEO":
                        speech_text = "Le SEO (Search Engine Optimization), ou référencement naturel, consiste à optimiser un site web afin qu'il obtienne la meilleure visibilité possible dans les résultats naturels des moteurs de recherche tels que Google ou Bing. 3 points doivent être pris en compte : la technique, le rédactionnel et les liens."
                elif definition_recherchee == "crawl budget":
                        speech_text = "Le Budget Crawl (crawl budget en anglais) représente les limites en termes de nombre de pages que Googlebot (le robot de Google) va crawler sur un site web en tenant compte de plusieurs critères : taille du site, vitesse d'exploration, fréquence de mise à jour, qualité du contenu et nombre de clics."
                elif definition_recherchee == "obfuscation":
                        speech_text = "On désigne en SEO par le terme d'Obfuscation de lien le fait de cacher une contenu aux moteurs de recherche au sein d'une arborescence, afin de diriger via le maillage interne les robots uniquement vers des pages de plus forte qualité."
                elif definition_recherchee == "cloaking":
                        speech_text = "Le cloaking est une technique (interdite par Google) qui permet de fournir un résultat (une page web) différent selon le visiteur qui demande à consulter une information. En SEO, un système de cloaking enverra par exemple une page donnée à un visiteur humain et une autre (le plus souvent plus optimisée) à un moteur de recherche."

    # Réponse
    return handler_input.response_builder.speak(speech_text).response

"""
Action en cas d'annulation ou arrêt de requête
"""
@sb.request_handler(
    can_handle_func=lambda handler_input :
        is_intent_name("AMAZON.CancelIntent")(handler_input) or
        is_intent_name("AMAZON.StopIntent")(handler_input))
def cancel_and_stop_intent_handler(handler_input):
    # Variable contenant le texte qui sera lu
    speech_text = "Bonne journée, au revoir !"

    # Réponse
    return handler_input.response_builder.speak(speech_text).response

"""
Action en fin de session
"""
@sb.request_handler(can_handle_func=is_request_type("SessionEndedRequest"))
def session_ended_request_handler(handler_input):
    return handler_input.response_builder.response

"""
Gestion des Exceptions en cas d'erreur
"""
@sb.exception_handler(can_handle_func=lambda i, e: True)
def all_exception_handler(handler_input, exception):
            # Enregistre les erreurs potentielles
    logger.error(exception, exc_info=True)

    # Envoie une réponse en cas d'erreur
    speech_text = "Désolé, un problème est survenu, veuillez retenter plus tard..."
    return handler_input.response_builder.speak(speech_text).response

# Création du handler Lambda
handler = sb.lambda_handler()

Une fois la fonction créée dans un fichier du nom de votre choix, il faut créer un compte AWS (Amazon Web Services) pour héberger la fonction de l'application vocale (source : https://aws.amazon.com/fr/). Vous pouvez opter pour l'offre gratuite mais il faudra intégrer vos coordonnées bancaires pour gérer les cas de dépassement. Dès que le compte est créé, connectez-vous à la console AWS Management (source : https://console.aws.amazon.com), dans laquelle nous pourrons téléverser le fichier Python précédemment conçu (via le service Lambda).

Il faut pour cela créer une fonction en appuyant sur le bouton destiné à cet effet (source : https://amzn.to/2tujIJA). Remplissez les champs selon la configuration désirée, ou en suivant l'exemple de la figure 8 (attention, écrivez plutôt le nom en minuscule en général).


Fig. 8. Création d'une fonction avec Amazon Web Services (AWS).

Nous touchons presque au but... Il reste à configurer la fonction en sélectionnant le déclencheur « Alexa Skills Kit ». Il faut le configurer en ajoutant l'ID de votre skill Alexa, que vous pouvez retrouver dans la section « EndPoint » de l'Alexa Developer Console. Ajouter l'identifiant et enregistrez la fonction (bouton en haut à droite). Une fois cela fait, copiez en retour l'ID ARN situé en haut à droite de la console AWS Management et collez cet identifiant dans le champ « DefaultRegion » de la section « EndPoint » de l'Alexa Developer Console (remplacez ce qui est déjà écrit), puis enregistrez.

Dans l'AWS Management Console désormais, il faut ajouter un fichier Zip de votre application (programme Python ici). En cliquant sur le nom de l'application (« abondance »), vous pouvez ajouter un zip de votre fonction dans la zone « Code de fonction ». La procédure de création du zip est expliquée dans la documentation technique qui nous a permis de programmer notre fichier Python. Il faut également remplir correctement le champ « Gestionnaire » en respectant la syntaxe suivante « nom_fichier.handler » (handler correspond à la dernière variable du programme que nous avons créé, qui lance l'application globale). Comme notre fichier Python intégré dans le zip s'appelle abondance.py, nous avons donc « abondance.handler ». Pensez à enregistrer, vous en avez fini avec l'AWS Management Console si tout a fonctionné…


Fig. 9. Ajout de l'ID de compétence pour relier la skill à AWS.

Retournez dans l'Alexa Developer Console et la section EndPoint pour enregistrer à nouveau. Ensuite, cliquez dans la section « Invocation » et sur le bouton « save models ». Une fois enregistré, cliquez sur « build models » pour créer l'application. Sauf erreur de code ou de configuration, votre skill est normalement terminée. 😉

La procédure peut sembler un peu complexe la première fois, mais on comprend le fonctionnement assez bien après quelques essais, rassurez-vous. Il faut scrupuleusement tout vérifier car une seule petite erreur, notamment dans le code Python, peut stopper le fonctionnement de la skill, sans plus d'explications que nécessaire par Amazon. Retenez également qu'à chaque modification dans la console Alexa, il convient d'enregistrer le « models » et de le reconstruire.

Tester une skill qui vient d'être créée

Voilà, nous avons désormais une skill toute fraîche, prête être utilisée. Pour ce faire, il faut lancer l'application, puis l'appeler et demander des définitions. Voici un exemple de fonctionnement classique :

  • « Alexa, lance abondance » : retourne la phrase de réponse de la méthode launch_request_handler() de notre programme et active la skill. Cette étape n'est pas toujours obligatoire…
  • « abondance, que signifie indexation » : fournit la réponse correspondante programmée dans la méthode de l'intention (que nous avons appelé definition_requete_handler() dans notre programme).
  • « abondance, aide-moi » : active la méthode help_intent_handler().

L'idée est donc d'appeler toujours la skill par son nom (s'il est court, c'est donc mieux) puis de lancer une « intent » qui lance une action particulière. Les slots renforcent l'intérêt de la skill et créent du dynamisme, mais on pourrait imaginer des cas encore plus fort.

Pour tester votre skill, vous pouvez cliquer sur le bouton « Test » du menu de l'Alexa Developer Console. Vous obtenez une interface de test dès que vous optez pour l'option « Live » ou « In development ». Il suffit de maintenir de taper les requêtes dans le champ de formulaire ou de cliquer (et maintenir) le bouton en forme de micro pour développer les requêtes à la voix. C'est simple comme tout, et ça fonctionne bien. Si des erreurs persistent dans votre programme, vous vous en rendrez vite compte ici.


Fig. 10. Test de la skill abondance.

Si vous préférez d'autres outils, il existe notamment Echosim (source : https://echosim.io) pour effectuer des tests de skills, mais vous ne pourrez pas profiter des entrées/sorties comme dans la console de développement, il faut davantage voir cet outil comme une solution pour utiliser l'assistant dans un navigateur web.

N'oublions pas que les assistants vocaux sont parfois imprécis dans la compréhension des mots ou phrases que nous prononçons. Nous avons volontairement intégré des définitions qui nous imposent de lire les intitulés à la française, car avec l'accent anglais, Alexa s'y perd. Par exemple, si vous demandez « abondance, donne la définition de crawl budget » en le prononçant avec le bon accent, Alexa ne comprend pas et pense souvent à « crawl bud jet », il faut donc prononcer la définition comme « crawl budgé » pour qu'Alexa comprenne. Dites également « S euh O » pour « SEO » et non pas « S i O » comme à l'anglaise, etc. Ces systèmes restent encore quelque peu perfectibles mais dans l'ensemble, la compréhension est plutôt de bonne facture.

Vous savez désormais comment créer une première skill simple, laissez place à votre talent et votre imagination pour concevoir des skills bien plus avancées et intelligentes. 😉


Mathieu Chartier
Consultant-Formateur et webmaster indépendant, Internet-Formation (https://www.internet-formation.fr)