Release de S.A.R.A.H. v2.8
Voici la version 2.8 de S.A.R.A.H. qui se faisait attendre !
J’ai essayé d’intégrer un maximum de trucs ! Malgré toute la doc, le marketing et le support nécessaire ces derniers mois 🙂
Quelques Chiffres
Tout d’abord un grand MERCI à toute la communauté qui semble s’amuser autour de SARAH. Bienvenue aux gens qui l’ont découvert via DevoxxFR, ParisJS, GeekInc, etc… J’ai essayé de réaliser mon Poisson d’Avril mais ça n’a pas encore marché ^^
La version 2.7 a été téléchargée 870 fois ! Il y a 41 plugins dans l’appstore. Ainsi que tous les plugins persos. Certains plugins ont été téléchargés plus de 250 fois !
Documentation
J’ai mis en ligne plusieurs screencasts de manière à étoffer l’aide à la création de plugins:
- SARAH: Getting Started
- SARAH: Mon premier module
- SARAH: Modules avancés
- SARAH: Persistance des données
Ces docs et la FAQ pointent des sous articles qui détaillent une bonne pratique, une fonction, un plugin, etc, … La communauté G+ est aussi très active !
JARVIS !
Une variable dans le custom.ini
permet de remplacer à chaud SARAH par {NOM} dans toutes les grammaires. Il y a de nombreux échanges dans la communauté pour trouver une voix d’homme.
Edition Web
Il est maintenant possible d’éditer les fichiers des plugins depuis le web.
Les plugin.js
sont rechargés après modification. Il n’est plus nécessaire de relancer NodeJS.
Audio
SARAH sait jouer des WAV. Donc par exemple jouer les messages de répondeur FreeMobile 😉 (si quelqu’un fait le plugin)
SARAH surveille un dossier « audio ». Les WAV déposés seront interprétés par le moteur !
SARAH peut recevoir une requête POST contenant un WAV à déposer dans le dossier « audio ». Ou une requête GET indiquant un chemin de fichier à interpréter.
Bon @Guiguiabloc le streamming depuis un Raspberry Pi sera pour la 2.9 😉
Filtres de règle
Il est maintenant possible de brancher un script avant et après toutes les règles. L’idée étant de pouvoir faire un traitement transverse à tous les plugins. Comme un bruitage ou clignoter une LED, etc…
Au passage la confidence
est envoyée en paramètre (tout comme directory).
Contexte
J’ai rajouté un timeout de 60s (custom.ini
) sur les contextes ce qui évite de dire « SARAH j’ai fini de te poser des questions ».
Autres nouveautés
Linux
J’ai mis dans une variable le chemin de PhantomJS. Un utilisateur a tenté le portage de SARAH sur Ubuntu. un autre tente le portage sur RaspberryPi.
Helpers
La fonction SARAH.last(res)
permet d’exécuter la dernière commande. Vous pouvez maintenant créer des règles vocales ou gestuelles pour dire « Encore »
La fonction SARAH.exists(cmd)
permet de tester si un plugin est disponible.
Bugs et RFE
- La variable SARAH est dispo dans les CRON
- Option pour activer les gestures en mode assis (expérimental)
- Try/Catch sur les grammaires
- Try/Catch sur les connexions réseau
- Correctif d’un bug sur le texte simulé
- Correctif sur la gestion des versions dans le custom.prop
- Correctif concernant QueryString dans les grammaires
Plugins
Karotz
Mise à jour avec le code Java et le JRE pour avoir de meilleurs temps de réponse. Le code C# plantait trop souvent.
ChatterBot 2.0
J’ai réécris le plugin en intégrant un ChatterBot Riverscript traduit en Français.
Je ne l’ai pas encore modifié, mais son cerveau persisté sous la forme d’un objet JSON offre de nombreuses possibilités à creuser.
Dictionary 2.0
Le plugin a été réécrit pour utiliser la librairie Cheerio
présent dans la v2.8. L’idée est de se passer de PhantomJS quand c’est possible.
Meteo 2.0
Le plugin a été réécrit pour utiliser la librairie Cheerio
présent dans la v2.8. L’idée est de se passer de PhantomJS quand c’est possible.
Il va certainement évoluer pour attaquer un site web plus générique de manière à afficher la météo à nos amis Québécois et Réunionnais.
Allocine 2.0
C’est le plugin movies
réécrit avec Cheerio
. J’ai gardé l’ancien et changé de nom pour avoir un exemple évolué d’usage de PhantomJS.
TV Samsung
Un exemple d’envoi de requête en SOAP pour piloter certaines TV Samsung (j’ai une UE55C6000) et afficher des messages. D’autres fonctions arriveront par la suite.
La communauté travaille sur un plugin TVSony
. +Cédric Locqueneux j’espère qu’on va réussir à trouver un tronc commun pour un max de TV.
TV Sony
EDIT: Le temps que j’écrive cet article Remy De Diego et Jerome Veyret ont proposé la v1.0 du plugin TVSony
Linknx
EDIT: Delphine Fabrice et Tanguy THEBLINE viennent collaborativement de concocter un plugin pour la box domotique Linknx.
Simsimi
Un plugin de Johnny Baillargeaux permettant de discuter avec un ChatterBot en ligne.
Izipedia
Un plugin de Johnny Baillargeaux permettant de poser des questions à une base de connaissances développée par Hicham TAHIRI.
Infotrafic
Un plugin de Loic Lucas inspiré par celui de Wilsto pour indiquer le trafic en Ile de France.
XBMC
Une mise à jour de Jerome VEYRET pour générer automatiquement un bout de grammaire avec les artistes de la base XBMC.
Attention le mode « assis » des gestures est à « true »
EDIT: Je viens d’uploader une nouvelle version de manière à corriger des traces, ce mode seated, tester plusieurs plugins
EDIT2: Si vous observez un crash du client ou du serveur je suis preneur de logs, je n’arrive pas à reproduire
Elle a l’air plutôt complète cette maj. Je « suis » le projet depuis une quinzaine de jour, et je suis totalement impressionné par l’effervescence (surtout sur G+) provoqué par cette S.A.R.A.H !
Encore bravo pour le chemin accompli et vivement la suite (prometteuse!) ;D
C’est une superbe idée. Je vais m’intéresser au portage sur Linux et tenter d’apporter de l’aide. 😉
@Tanouky oh c’est courageux ! Tous les projets qu’on a référencé sur la communauté ont soit abandonné soit utilisent des API connectées (AT&T, Google, Android) avec les problèmes associés
Bonjour,
Votre projet a l’air très intéressant. Est-il possible de l’utiliser avec une installation KNX. Par exemple piloter son installation knx à la voix et si oui comment ?
Bonjour, A partir du moment ou il y a une API accessible depuis NodeJS il n’y a pas de problèmes.
Il existe peut-être déjà un plugin sinon il faut en développer un.
Bonjour,
oOOoohh je suis amoureux de Sarah (!!)
J’adore le projet, le concept, moins le nom cependant.
J’ai vu que l’on pouvait changer le nom, mais rien n’y fait
elle ne répond qu’au nom de Sarah…
😉
Il faut modifier le nom dans le custom.ini puis redémarrer le client. On remplace à chaud les SARAH par le nom dans les grammaires
Merci pour cette rapide réponse,
Je m’acharnais à relancer le serveur node JS.
😉
@Hearty non ce n’est pas le serveur NodeJS qu’il faut relancer mais le client C# (la maison en bas dans la barre des taches) qui lit les XML
Oui oui, c’est bien rectifié, je parlais au passé, « je m’acharnais ».
Quoiqu’il en soit merci du suivi j’aurais pu avoir mal compris.
Encore une fois,
j’adore ce que je découvre et ce que j’entrevois comme utilisations possibles.
😉