31 octobre 2018

L'IA associée aux Assistants Vocaux (voicebots)

Bien que j'avais entendu parler avant 2017 de l'intérêt grandissant des chatbots, je n'avais pas compris le rôle de l'Intelligence Artificielle associé à leur conception. Lors de la sortie des premiers Assistants Vocaux en France avec, entre autres, l'enceinte connectée Google Home, je n'ai pas non plus perçu immédiatement le rôle qu'apportait l'IA dans l'architecture des voicebots. Je me rappelle m'être posé la question, mais ou est l'IA mise en avant par le marketing dans ces solutions. Sans bien comprendre, j'avais toutefois pressenti qu'elle ne pouvait être associée qu'à la distinction des phrases émises par l'utilisateur. Par contre, j'étais incapable de savoir comment cela se traduisait techniquement. Lors de la création de mes premières applications VUI: Voice User Interface pour Google Assistant, puis pour Alexa, j'ai compris l'importance de fournir un nombre assez conséquent d'énonciations potentiellement possibles fournies par l'utilisateur pour être reconnues par l'application. Le dessin ci-dessous montre la phase de capture de la voix et de son traitement dans l'architecture. En premier lieu, la voix captée est transformée en MP3 depuis un périphérique quelconque (ex: enceinte connectée avec un Assistant Vocal) pour être acheminée dans le Cloud afin d'être transformée en texte (Speech to Text) puis d'être interprétée en langage naturel (fonction NLU: Natural Language Understanding, voire NLI: Natural Language Interpretation qui apporte en plus la couche d'IA nécessaire à la compréhension de la demande utilisateur). En effet, pour pouvoir associer un traitement (fonction déportée, de préférence en mode serverless) à une demande utilisateur, il est nécessaire d'avoir un taux de probabilité élevé que la demande soit en adéquation avec le traitement associé.

Pour cela, on fait appel à l'IA lors de la construction de la partie front-end de l'application VUI (interaction model) du voicebot en utilisant l'apprentissage profond (Deep Learning) en mode supervisé  avec probablement un algorithme de régression logistique associé. Cela consiste à construire un modèle des différentes énonciations possibles cohérentes, puis à l'utiliser pour effectuer des prédictions. Ce modèle sera donc utilisé lors de la remontée de toutes demandes utilisateur au voicebot pour garantir la bonne adéquation. En conséquence, si l'énumération des énonciations d'une demande utilisateur potentielle fournie par la voix est faible (20 à 30 variantes d'énonciations) le traitement d'apprentissage sera rapide (quelques secondes). Par contre, si l'énumération est importantes (10 000 variantes), le temps d'apprentissage pourra être de l'ordre de l'heure selon l'environnement d'exécution associé. En tenir compte lors de la construction du voicebot. L'IA peut aussi se trouver embarquée dans le coeur applicatif du voicebot (partie back-end avec les différentes fonctions en architecture serverless) pour rendre les actions plus intelligentes, en fonction des demandes utilisateur effectuées.



Informations complémentaires:

  • article AWS paru, le 24/11/2018: IA en mode cloud (ici),

30 octobre 2018

Lumière sur les ampoules connectées

Équiper une maison avec plusieurs ampoules connectées pour une utilisation principale et régulière n'est pas si facile que cela à mettre en place et à manipuler au quotidien. En l'état, cela reste encore du domaine du gadget ou de la démonstration ponctuelle. Si votre habitat comporte plusieurs pièces et que chacune d'elles dispose de plusieurs lumières (ampoules de lampes, de lustres, d'appliques murales, etc.), cela devient vite fastidieux de vouloir que toutes les ampoules soient pilotables par d'autres interfaces que les interrupteurs associés. De plus, on peut se poser la question de la réelle utilité qu'elles soient toutes pilotables en dehors des interrupteurs classiques. Les applications mobiles, voire web pour Assistants Vocaux (Google Home, Alexa, ….) prennent en compte les objets connectés, dont les ampoules connectées relatives à différentes offres partenaires (Philips Hue, Trädfri, LifX, Awox,  Xiaomi, …) qui utilisent un protocole de communication sans fil avec ou sans Hub (Wifi, Bluetooth, Zigbee, Z-Wave, …), ainsi que de nombreuses autres applications dédiées directement à la gestion des objets connectés sans prendre en compte l'interface de la voix (ex: Smart Home, Home Assistant, Jeedom, …).


Personnellement, j'ai initialement (2017) exploité un mixte des deux modes de gestion, c'est-à-dire avec et sans l'utilisation de la voix, soit respectivement avec l'application Google Home et l'application Home Assistant. Le constat a été mitigé avec un pilotage à la voix de 2 ampoules Hue et 2 prises Wemo de Belkin auxquelles étaient associées chacune une lampe sans ampoule connectée. Au quotidien pour toute la famille ce n'est pas immédiat et sans dysfonctionnement. Malgré tout, il y a quelques avantages, dont les suivants: allumage et extinction automatique d'un groupe de lumières à des créneaux horaires définis, possibilité de piloter en dehors de la maison certaines lumières, confort de piloter à la voix certaines lumières éloignées, variateur d'intensité lumineuse des ampoules, etc.

Au début de l'été 2018, un an après Google, Amazon a commercialisé en France son offre d'Assistant Vocal Alexa avec une partie de sa gamme Echo (Dot, Plus et Spot), sachant que beaucoup de partenaires ont intégré l'assistant à leur solution matérielle (ex: Sonos,  Sony, Bose, mais aussi des constructeurs automobiles, tels que BMW, Toyota, Ford, Lexus, ...). Il est tout à fait possible d'allumer par la voix une ampoule à l'aide d'un Google Home et de l'éteindre toujours à la voix avec un périphérique Echo. L'inverse est naturellement vrai aussi.


La prise en compte des ampoules dans les applications mobiles de ces deux assistants n'est pas tout à fait similaire. Il y a quelques semaines de cela, les interfaces des applications mobiles de ces deux solutions ont été reprises de façon importante (plus conviviale et plus riche fonctionnellement). Il en résulte actuellement qu'il est possible de gérer un groupe d'ampoules connectées (ex; celles d'un lustre) depuis Alexa, car ce dernier récupère depuis le Hub Hue (fréquemment retenu dans une configuration d'habitat) les différents objets configurés (ex: ampoules, groupes d'ampoules, …), ce qui n'est pas le cas avec Google Home. Il en résulte pour ce dernier, la nécessité de créer des actions groupées de plusieurs actions individuelles, sachant qu'une ampoule ne peut être attachée qu'à une seule pièce. Une pièce pouvant être la dénomination propre à votre imagination (ex: salle lampe principale), car plusieurs ampoules sont possibles dans une seule pièce réelle. En final pour allumer et éteindre les ampoules d'un lustre via Google Home, la phrase suivante évoquée "Dis Google allume le lustre" se traduit par "OK, j'allume l'ampoule N°1", puis "OK, j'allume l'ampoule N°2", … En conséquence, les ampoules du lustre s'allument les unes après les autres. Ceci n'est pas le cas avec Alexa, il suffit de dire "Alexa allume le lustre" et toutes les ampoules du lustre s'allument en même temps.


Tout ceci milite pour retenir qu'un seul assistant vocal pour la maison. Mais lequel, sachant que la couverture fonctionnelle globale est différente et en pleine évolution (potentialité de l'IA associée, streaming vidéo, appel téléphonique, etc.) entre les deux leaders actuels (Amazon et Google), il semble préférable de retenir les deux solutions. Cela complexifie l'installation et la gestion, mais cela préférable. Personnellement, naviguant entre plusieurs habitations connectées, j'apprécie la prise en compte de différentes habitations pour un compte applicatif dans l'interface de l'application Google Home.



Pour rassurer les personnes désireuses d'intégrer ces ampoules connectées dans leur habitat, il faut rappeler que la cohabitation de la voix et du toucher est possible pour les piloter, il suffit simplement de comprendre que l'interrupteur doit être en position ON pour que la voix puisse être opérationnelle. Si toutefois par inadvertance ou par besoin, vous appuyez sur l'interrupteur et que l'ampoule a été éteinte préalablement par la voix, il vous faudra effectuer deux opérations de ON / OFF pour allumer les ampoules associées à l'interrupteur. Une fois allumées, elles pourront être éteintes à la voix. C'est simple, mais cette logique peut déconcerter plusieurs d'entre nous.



Côté ampoules LED à durée de vie importante, on trouve maintenant des prix attractifs pour des ampoules classiques en lumière blanche. Les ampoules colorées ont un usage limité. 


Alexa Skill Blueprints

La solution logicielle "Alexa Skill Blueprints"permet de créer facilement, très facilement une skill en quelques clics. Le problème est qu'actuellement cette solution n'est pas (encore) disponible pour la langue française.


La facilité limite toutefois la richesse fonctionnelle de la skill, mais cela peut-être éventuellement intéressant pour certains besoins basiques. Pour plus amples détails, consulter ce lien (ici).

25 octobre 2018

Ampoules connectées Trädfri

Après avoir acheté chez Ikea plusieurs ampoules Trädfri (tarifs: 9,99€ et 19,95€ pour environ 100 lumens au culot E27) compatibles avec le Hub Philips Hue, leur mise en oeuvre dans l'habitat est assez facile. Le premier tarif est pour de la lumière blanche uniquement, alors que le second est relatif à des ampoules avec variation sur le blanc et lumière chaude. Il n'y a pas d'ampoules de couleur pour le moment dans la gamme Trädfri.

save image


Il faut procéder de la sorte depuis son smartphone. A l'aide de l'application mobile Hue Essentials, il est possible d'ajouter de nouvelles ampoules. Depuis l'onglet "Lumières" (menu vertical de gauche), il est possible d'ajouter de nouvelles ampoules à celles existantes, en appuyant sur [+]. La recherche se fait de 2 façons (ampoule allumée près du Hub); en appuyant sur le  bouton [RECHERCHER LES LUMIÈRES] ou quand la lumière de l'ampoule change d'intensité sur à un arrêt / marche de l'interrupteur associé à l'ampoule, appuyez sur la touche [TOUCHLINK]. Dans l'un des deux cas, l'ampoule doit apparaître dans la liste des ampoules pris en charge par le Hub.


La prise en compte des ampoules gérées par le Hub Philips Hue est différente sous l'application mobile Alexa et Google Assistant. Pour la première, il suffit de cliquer sur l'icône maison en bas à droite de l'écran pour afficher l'ensemble des appareils (devices Echo et partenaires Alexa, lumières, prises, etc.). Ensuite cliquer sur "Lumières" ou logiquement le nom associé à l'ampoule dans l'application Hue Essentials apparaît. Il faut changer son nom selon son choix et l'associer à une pièce existante ou à créer. Côté Google Assistant, c'est différent. Il faut d'abord sélectionner la maison retenue (fonction inexistante à ce jour sur Alexa) et pour celle-ci appuyer sur [+] (Ajouter), puis "Configurer un appareil". Deux cas se présentent; "Nouveaux appareils" et "Fonctionne avec Google". Retenir le 2ème cas et dans la liste des services associés, vous devez trouver celui de Philips Hue, si vous avez  déjà des ampoules opérationnelles. Si vous appuyez dessus, il vous est demandé de supprimer l'association. Faites-le et ajouter le service supprimé avec la connexion au service et son autorisation d'emploi de confiance. Alors, pour la maison retenue, dans la listes des ampoules (icone "Allumer"), vous devriez voir l'ampoule ajoutée. 

Ces petites manipulations pour intégrer quelques nouvelles ampoules montrent les différences suivantes entre Amazon et Google suite à leur actualisation logicielle récente pour mieux gérer les objets connectés de la maison associés à leur assistant vocal.

  1. La notion de maison n'est pas encore disponible sous Alexa,
  2. La notion de groupe d'objets sous la nouvelle IHM de Google Assistant n'est pas limpide et difficile à utiliser,
  3. Le look & feel de la gestion des objets connectés est très intuitive sous Google Assistant, moins sous Alexa,

Ces applications mobile associées aux assistants vocaux et à la maison connectée sont en perpétuelle évolution. En conséquence, il faut souvent les utiliser pour appréhender leurs fonctions et leurs mises à jour.