Zibase Multi : reconnaissance vocale et reconnaissance faciale

La Zibase multi, c’est une version de la Zibase sous forme d’application, donc une Zibase qui peut s’exécuter sur une tablette tactile disposant d’Android. Concrètement, c’est ensuite la tablette elle-même qui sert de contrôleur domotique, soit par le biais de ses propres protocoles de communications, soit en utilisant une Zibase Classic (la Zibase en tant que box domotique) comme « antenne » pour les différents protocoles de communication sans fil.

L’idée étant que la tablette elle-même soit un contrôleur domotique, vous pourrez ajouter un dongle de communication Z-Wave pour permettre à la Zibase Multi de communiquer avec des éléments Z-Wave. Ceci nécessite bien sûr que la tablette comporte un port USB.

(Re)découvrez notre article de présentation de la Zibase Multi !

S’adressant aux utilisateurs débutants comme aux confirmés qui n’ont pas peur de bidouiller, la Zibase multi offre à la fois des fonctions accessibles à tout le monde, et des fonctions pour les « power user », les gens qui ont fait de l’informatique leur métier ou un de leur loisirs. Par exemple, le Javascript avait été ajouté à la Zibase Multi en fin d’année dernière pour démultiplier les possibilités du système.

Voir notre article présentant le JavaScript sur Zibase Multi

Zodianet ne s’est pas arrêté en si bon chemin dans l’exploitation des fonctionnalités propres au tablettes, et nous allons vous le montrer dans cet article en vous présentant certaines de ces fonctionnalités, ainsi que des ressources pour tirer parti de la Zibase Multi si vous avez une Zibase d’un autre genre.

ZibaseMulti reconnaissance

Nous aborderons notamment la reconnaissance vocale et la reconnaissance faciale. Même si leurs noms sont proches, leur fonction sont quelques peu différentes :

  • La reconnaissance vocale sert à vérifier ce qui est dit par l’utilisateur et l’exploiter dans des scénarios
  • La reconnaissance faciale sert à reconnaître un utilisateur présent devant la caméra de l’appareil

Passer à la Zibase Multi depuis une Zibase Classic

Nous commençons par vous proposer un article de blog, dont l’objectif est de vous aider à franchir le pas et passer à la Zibase multi si vous avez déjà une Zibase Classic.

Cet article vous propose divers éléments très intéressants :

  • Comment vérifier si votre tablette est compatible avec Zibase Multi
  • Comment effectuer la migration de licence de la Zibase Classic vers la Zibase Multi (et ce qu’il faut absolument faire avant d’effectuer la manoeuvre)
  • La méthode d’importation des éléments de la Zibase Classic pour les récupérer sur la Multi
  • Tout ce qu’il faut penser à faire à posteriori pour bien finaliser la migration

Vous pouvez consulter ce guide ici, sur le blog Domotique ZIBASE : migration de la Zibase Multi depuis la Zibase Classic.

Si vous ne disposez pas déjà d’une Zibase, vous pouvez acquérir séparément une licence scénario pour Zibase Multi (également compatible Zibase Mini) pour pouvoir tirer parti des différentes possibilités de la solution.

Reconnaissance vocale et sythèse vocale

Une tablette, c’est généralement un micro et un haut parleur. Dès lors, nous pouvons tout simplement donner des ordres en vocal à sa box domotique, tout comme c’est possible avec la majorité des smartphones et tablettes d’aujourd’hui. Il peut être également utile d’avoir un retour vocal de la tablette sur ce qui se passe, pour indiquer par exemple qu’un scénario s’exécute.

La reconnaissance vocale sur la Zibase Mini peut être effectuée de deux façons :

1. En cliquant sur le micro sous le logo Zodianet et en donnant directement un ordre

En effet, sur la tablette, l’icone de micro juste sous le logo Zodianet permet de prononcer un ordre vocal.

Zibase Multi Reconnaissance vocale

Le plus simple est de commencer par demander « Aide » quand l’invite se présente.

L’appareil vous donnera alors l’explication sur les commandes existantes. Vous pouvez lancer le scénario de votre choix ou démarrer un périphérique.

Dire « exécuter <nom d’un scénario> » (ou « lancer … ») vous permettra de lancer directement le scénario correspondant.

Vous pourrez aussi commander directement un périphérique via le verbe « allumer » « ouvrir » « éteindre » « fermer » etc.

Si votre ordre n’est pas compris, vous pourrez voir sur le retour d’état pourquoi la phrase a mal été comprise et sur quel(s) mot(s) il faut modifier ou accentuer la prononciation (pour l’exemple suivant l’ordre vocal donné était « Mise en marche lampe » :

Zibase Multi reconnaissance vocale erreurs

2. Via l’utilisation du système de scripts

Sur Zibase multi, une des fonctions spéciales vous permet d’utiliser directement du JavaScript. Parmi les fonctions disponibles sur la Zibase Multi, il y a la fonction startVoiceRecognition.

Vous pouvez l’utiliser de la même manière que le micro, c’est à dire que l’utilisation de la fonction dans un scénario permettra d’afficher une fenêtre demandant à l’utilisateur de donner un ordre comme vu ci-dessus.

Mais vous pouvez également l’utiliser avec un paramètre JSCallBack. Ce paramètre fera que la reconnaissance vocale va récupérer un certain nombre de propositions depuis la phrase qui a été dite et vous pourrez ensuite l’utiliser dans le script. Si un chiffre est précisé, ça sera le nombre de propositions prises en compte. En l’absence de chiffre, il y aura 5 propositions.

Par exemple :

startVoiceRecognition("Quel est votre nom", JScallback)

Va afficher une demande de commande vocale avec l’intitulé « Quel est votre nom », puis va injecter dans la fonction « JScallback » les 5 propositions retenues.

startVoiceRecognition("Quel est votre nom", JScallback, 1)

Va afficher une demande de commande vocale avec l’intitulé « Quel est votre nom », puis va injecter dans la fonction « JScallback » la première proposition retenue.

En terme de synthèse vocale, c’est d’une grande simplicité : la fonction speaks(« Phrase ») va faire annoncer la phrase par la synthèse vocale de la tablette.

Zibase Multi synthèse vocale

Voici un exemple de script utilisant la reconnaissance vocale et la synthèse vocale :

  • Tout d’abord la tablette demande vocalement « Quel est votre nom ? ».
  • Ensuite, elle affiche un invite intitulé « Votre nom ? », dans lequel l’utilisateur peut parler.
  • Enfin, elle dit bonjour en reprenant le nom de l’utilisateur et lui dit « Bienvenue sur Zibase ».

Scénario Synthese vocale reconnaissance vocale Zibase Multi

Si vous savez manier le javascript, vous pouvez par exemple utiliser cette fonction pour comparer la phrase dite à une liste de possibilités. Par exemple déclencher directement un scénario ou modifier une variable sur certains mots clés énoncés à haute voix. Dans ce cas il est recommandé de vérifier les différentes propositions.

Même là, vous disposerez du suivi d’activité pour savoir quel mot a été reconnu. Par exemple, j’ai fait un test qui devait se déclencher sur « Pierre », grâce au suivi d’activité j’ai vu pourquoi il n’avait pas fonctionné : ce que j’ai dit a mal été compris par la reconnaissance vocale.

Erreur reconnaissance vocale pieuvre

Fonction très utile qui permet de savoir si nous avons plutôt fait une erreur dans le script ou s’il faut plus ouvrir la synthèse vocale pour prendre en compte les autres propositions de la reconnaissance vocale.

Reconnaissance faciale via la caméra intégrée

L’effet « Waouh ! » est au rendez-vous pour cette fonctionnalité qui donne l’impression d’être très futuriste mais qui s’inscrit bien dans l’évolution des technologies : l’utilisation de la caméra frontale de la tablette sur laquelle Zibase Multi est installée pour déterminer quel est l’utilisateur actuel, et éventuellement déclencher des scénarios selon cet utilisateur.

Afin de pouvoir utiliser la reconnaissance faciale dans les scripts JavaScript, il va d’abord falloir apprendre à la tablette à reconnaître votre visage.

La Zibase va vous proposer de créer chaque utilisateur invidieullement. Pour chaque utilisateur créé, il vous faudra faire une série de photos (« Premières photos ») qui permettra à la Zibase Multi de vous reconnaître par la suite. La Zibase vous demande de prendre une série de photo en orientant votre visage vers différents points qui s’affichent à lécran.

Reconnaissance faciale : étalonnage

Il est conseillé de prendre ces premières photos dans la situation (luminosité, sources de lumières…) la plus proche possible des conditions réelles dans lequels vous exploiterez la reconnsaissance faciale par la suite.

Cependant même après l’étalonnage initial, il reste possible d’ajouter des photos supplémentaires pour affiner la reconnaissance, et précisément, dans le cas d’échec de reconnaissance faciale, il est conseillé d’ajouter directement de nouvelles photos pour que la reconnaissance soit plus fiable.

Une fois ces premières étapes achevées, et une fois que vous avez ajouté au minimum deux utilisateurs, la tablette détectera les images et affiche le visage qu’elle a reconnu avec un indice de certitude entre 0 et 5.

Zibase Multi reconnaissance faciale Pierre

Ici, l’utilisateur « Pierre » a été reconnu avec une certitude de 5/5.

Vous pouvez activer la caméra avec le système de reconnaissance faciale via cette fonction. « front » ou « back » définit la caméra frontale ou la caméra du dos de la tablette.

startFaceScanner("front");

Là aussi, il faudra saisir cette fonction, ainsi que les autres que nous allons voir, dans l’action dédiée à la saisie d’un code javascript.

Android script reconnaissance faciale

N.B. : lors des essais, il s’avère que ça ne fonctionne pas si la tablette a basculé en mode veille et que l’écran est éteint. Pour exploiter la reconnaissance faciale, il vaut mieux désactiver les fonction de mise en veille / extinction auto de l’écran.

La fonction a utiliser par la suite est armFaceRecognition, littéralement « l’armement » de la reconnaissance faciale, où vous pouvez définir un utilisateur parmi ceux qui sont enregistrés, une évaluation de fiabilité et de proximité, une fonction javascript où le résultat est réinjecté et optionnellement un délai de déclenchement.

int armFaceRecognition (String user, String threshold , String JScallBack, int delay)
  • user : le nom d’utilisateur tel que défini lors de l’apprentissage par l’outil de reconnaissance faciale
  • threshold : au format x ou x-y (c’est bien un tiret, pas une soustraction). x est le seul de fiabilité entre 1 et 5.
    En option, il est possible de définir si l’utilisateur est proche ou loin en fonction de la taille que prend son visage sur l’écran (y exprimé sous forme d’un pourcentage, sans le symbole)
    Par exemple : avec 2-30, la reconnaissance ne se déclenchera que si l’indice de fiabilité est au minimum de 2 et que le visage de l’utilisateur fait au moins 30% de la hauteur de l’écran.
  • JScallBack : comme pour la reconnaissance vocale, la fonction définie ici se déclenchera lors d’une détection.

Voici un exemple d’utilisation, où la Zibase Multi indique « Pierre a été reconnu » lorsque le visage de l’utilisateur Pierre est reconnu avec 5/5 de certitude.

android.startFaceScanner ("front");
android.armFaceRecognition ("Pierre",5,"jsroutine")
function jsroutine (str) {
  android.speaks("Pierre a été reconnu");
}

Voici un autre exemple où la Zibase Multi déclenche un scénario appellé « bienvenue » lorsque l’utilisateur Pierre se rapproche (de façon à ce que la hauteur détectée de son visage soit égal à 30% de la hauteur de l’écran), avec un indice de fiabilité de 4/5 minimum.

android.startFaceScanner ("front");
android.armFaceRecognition ("Pierre",4-30,"jsroutine")
function jsroutine (str) {
  zibase.launch("bienvenue");
}

Voilà pour cette présentation des fonctionnalités de reconnaissances faciales et vocales de la Zibase Multi. Évidemment, ce n’est qu’une partie de ce que propose cette solution, il y a bien d’autres possibilités que nous pourrons découvrir à l’occasion de futurs articles. Vous pouvez d’ores et déjà retrouver ces possibilités dans la documentation officielle de Zibase Multi : Référence Javascript des fonctions de la Zibase Multi.

Avec quelques connaissances en JavaScript, en faisant appel à un script plus long hébergé sur un serveur ou sur la tablette, ces deux fonctions ouvrent de nombreuses possibilités.

Ressources complémentaires

A propos Pierre

Technophile, ludophile et bidouilleur dans l'âme, j'aborde les nouvelles technologies avec passion, curiosité et ouverture d'esprit. Je faisais partie de l'équipe de Planète Domotique de juin 2013 à mai 2017, d'où l'écriture de nombreux articles de blog pendant cette période.

A voir aussi

Remontée de température d'un module Qubino sur la Zibase

Tutorial : température d’une sonde Qubino sur la Zibase

Les modules Z-Wave de la gamme Qubino ont la capacité d’accueillir une sonde de température …

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *