Assistants personnels: Développer sa propre app

En mai 2016 Google lançait Google Assistant lors de la conférence Google I/O. Un peu plus tôt, en 2014, Amazon annonçait le lancement d’Alexa. Ces deux assistants personnels intelligents (virtual personal assistant) sont désormais matérialisés par deux objets connectés qui semblent avoir un certain succès aux États-Unis et en Europe.

La firme de Moutain View commercialise Google Home, doté d’un haut-parleur et d’un micro permettant d’interagir simplement avec Google Assistant. Le produit Amazon Echo embarque les mêmes propriétés matérielles avec Alexa. Si officiellement ces deux produits ne sont pas encore sortis en Suisse, il est possible de commander la version allemande ou française de ceux-ci. C’est chose fait au MEI où nous avons voulu tester réellement les possibilités de ces deux objets connectés.

Le marché des assistants vocaux et des applications qui y sont liées semble plein de promesses. Les marques découvrent ici un nouveau moyen d’interagir avec leurs clients et de vendre leurs produits. Concrètement certaines sociétés se sont déjà lancées dans l’aventure. Il est par exemple possible de commander une pizza chez Domino’s en dictant sa commande à l’assistant vocal. Bon nombre de fabricants d’objets domotiques (Somfy, Philipps, Nest,…) ont également pris les devants et proposent déjà de piloter simplement avec la voix leur éclairage, leur chauffage, etc. Enfin, les applications de streaming vidéos ou musicaux comme Netflix ou Spotify permettent de lancer facilement une série sur un téléviseur ou une chanson directement sur le haut parleur de l’assistant.

Si ces grandes marques ont pour la plupart eu un accès anticipé et privilégié aux plateformes de développement d’applications dédiées, chacun peut désormais développer une application pour Google Assistant ou Alexa.

Au MEI nous avons choisi d’explorer ces deux univers de développement afin de pouvoir les comparer et envisager de futurs développements d’applications dans le cadre de projets de services ou de recherche appliquée. Pour cela nous avons décidé de développer une application de confort simple, capable d’indiquer la température de nos différents bureaux baptisée Office Temp. Pour cela nous disposons déjà d’un petit service “maison” basé sur Mother et ses Cookies. Ce système de capteurs intelligents permet de faire à peu près tout et n’importe quoi. Au MEI l’utilisons entre autre pour vérifier la température de nos bureaux.

Si l’aspect technique de ce test vous intéresse, un tutoriel complet et le code source associés sont disponibles ici.

Les principes de développement d’une application Google Home ou d’une compétence (Skill) Alexa sont les mêmes. Leur logique de fonctionnement est similaires à celle d’un agent conversationnel (chatbot), ce qui n’est pas surprenant puisqu’il s’agit essentiellement d’analyser et de traiter des ordres vocaux.

La première chose à déterminer lorsque l’on veut développer une telle application, c’est la suite de mots que l’utilisateur devra prononcer pour y accéder (ex: Ok Google, parle à …, Alexa, demande à …). Lorsque l’assistant a identifié l’application, il peut gérer la suite de la conversation. Une application vocale démarre en général avec une phrase de bienvenue qui donne certaines indications à l’utilisateur. Dans le cas de notre application, nous avons imaginé une interaction du type:

  • “Ok Google, lance Office Temp”
  • “Pour quelle pièce souhaitez-vous la température?”

Si l’utilisateur maîtrise déjà les fonctionnalités en question, cette étape peut être ignorée. Il s’agit alors pour l’application de détecter ses intentions. Pour cela, il faut définir les différentes manières dont l’utilisateur pourra interroger un service. Toujours dans notre cas, l’utilisateur pourrait par exemple dire:

  • “Pour le bureau S108”
  • “J’aimerais la température de la cafétéria”

Si l’application ne détecte pas l’intention, elle tentera de poser la question une nouvelle fois et peut être d’une manière différente. Si elle la détecte, elle activera sa logique de traitement. L’application peut alors à se connecter à un service externe (via une API), lequel lui enverra les informations nécessaires (dans notre cas il s’agira de la température), afin qu’elle puisse les traiter et les transmettre à l’utilisateur.

Le service renverra ensuite une réponse formatée et prête à être dictée par l’assistant vocal. Toujours dans notre cas, voici un exemple de réponse

  • “La température du bureau S108 est de 18°C mesuré il y a 1 heure”

Notre application ne comporte ici qu’une étape, mais il est possible d’engager une “discussion” plus longue entre l’utilisateur et l’assistant. C’est notamment le cas lors d’une commande de pizza puisque l’application aura besoin de connaître la commande du client, puis son adresse de livraison.

Après avoir développé et testé cette application, il est nécessaire de la faire passer à travers les processus de contrôle (review) d’Amazon ou de Google. Ces processus imposent quelques restrictions et obligations. Une fois cette étape franchie, l’application devient directement accessible (sans installation) au grand public.

En conclusion

Les logiques de développement d’application Google Assistant et de skill Alexa sont assez similaires. Toutefois l’environnement de développement proposé par Google nous a semblé pour l’instant plus convivial.

Le marché des applications vocales ne fait que démarrer et il est difficile de dire aujourd’hui si un assistant vocal prendra le dessus en terme de popularité. Pour toucher un large public il faudra donc développer une application pour chacune des plateformes. Cela devrait même se compliquer un peu plus lorsque Apple aura lancé son HomePod et Microsoft ouvert sa plateforme Cortana. Tout ceci n’est pas sans nous rappeler les problématiques de développement d’applications natives pour les plateformes mobile iOS et Android. D’ailleurs des solutions de développement hybrides commencent déjà à émerger pour répondre à ce besoin.

+ There are no comments

Add yours