Igor, le voice manager personnalisable

Tous ceux qui s’intéressent de près ou de loin à la domotique couplé a la reconnaissance vocale connaissent S.A.R.A.H, le projet de JP Encausse.

Ce projet est basé sur la reconnaissance vocale offline de Microsoft. C’est très réactif, ca fonctionne plutot pas mal, et la communauté fournit les plugin.

Filrip, mon développeur .NET préféré, a décidé de mettre au point une version sensiblement différente de ce projet, tout en gardant l esprit de personnalisation de SARAH.

L’objectif du projet est d’avoir un logiciel léger, et ultra personnalisable, et pas forcément dédié a la domotique, mais un vrai assistant personnel capable de s’adapter a tout type d’utilisation.

Voici donc aujourd’hui I.G.O.R, en version BETA 3 :

Tout d’abord les prérequis :

– Windows Vista minimum 🙁
– .NET Framework 4.5  ( http://www.microsoft.com/fr-fr/download/details.aspx?id=30653 )
– Un Kinect ou un micro (usb / jack / webcam…)
– Igor : http://ptreille.free.fr/igor/VoiceServerV310.zip

Il vous suffit ensuite de dézipper le tout.

Vous trouverez à la racine le fichier config.ini , qui représente la configuration général d’IGOR, et se présente ainsi :

; Nom de la machine (nom à appeler pour le commander)
name=igor
; Ce que répond la machine lorsqu’on l’appelle
answer=Oui maitre
; Temps d’attente des ordres (en millisecondes)
timeToListening=5000
; Vitesse de la synthèse vocale
vitesseSyntheseVocale=1
; Volume de la synthèse vocale (0-100)
volumeSyntheseVocale=100

 

Vous pourrez-donc ici renommer Igor, lui fournir une reponse prédéfinit qu’il prononce quand il se met en ecoute, le temps pendant lequel il prendra en compte vos ordres (par défaut, 5 secondes après avoir prononcé « igor ? »). Vous pourrez paramétrer également la vitesse et le volume de la synthèse vocale.

Je ne vais pas détailler ici tous les plugins que FilRip développe (les plugins peuvent être développé en langage VB.NET ou C#, non compilé, juste le script dans un fichier .vb ou .cs), comme le Gcal, qui vous informe de votre prochain rendez-vous, ou encore la météo et bien d’autres, mais je m’attarderai sur le paramètre « reqhttp », qui ouvre énormément de possibilité pour ma domotique.

Pour ce faire, je me rend alors dans le répertoire plugin de l’application, puis le sous répertoire « reqhttp ». FilRip a fait en sorte que ce soit utilisable pour le commun des mortels, via un .ini.

Pas besoin de taper de script dans un langage de développement pour envoyer une simple requête http.

J’édite donc le fichier .ini :

; Un nom d’identification unique
name=reqhttp
; Liste des phrases reconnaissable (séparées par des virgules)
phrase=execute requete
; Adresse http d’une requête à exécuter (ceci n’a pas besoin de script)
requetehttp=http://www.google.com

Domotiquement parlant, équipé de ma veralite, il me suffit de modifier le paramètre « phrase » par phrase=ouvre les volets du salon

et requetehttp=http://IP:3480/data_request?id=lu_action&DeviceNum=XX&serviceId=urn:upnp-org:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1

Pour mes autres périphériques, je n ai qu’a modifié les phrase et les ID dans ma requetehttp.

Il suffit ensuite de lancer l EXE et c est parti.

Vous trouverez un répertoire « ini » qui contient tous les paramètres que l’on peut utiliser sans script, comme le faire envoyer des touches, peut être utiliser dans un jeu videos.

C est très simple, ça fonctionne bien, c est léger, et entièrement configurable. N’oubliez pas qu’il faut l’appeler avant de lui donner un ordre.

Alors je vous laisse tester et donner vos idées.