L’objectif du Projet S.A.R.A.H est d’avoir une maison intelligente connectée à l’internet des objets un peu dans l’esprit de la série TV Eureka.
Le principe est de déclencher des requêtes HTTP via:
- la reconnaissance vocale de phrases exprimées en XML
- la reconnaissance de gestes exprimés en XML
- la reconnaissance faciale (machine puissante !)
- une planification Google Calendar
- la reconnaissance de QRCodes
- des scripts joués périodiquements, …
Ces requêtes HTTP déclenchent des scripts NodeJS pour interagir avec les boîtiers domotiques, le karotz ou simplement aller chercher de l’information sur internet (scraping): horaires de cinéma, météo, horaires de bus, …
La configuration de ces actions est simple (XML et JavaScript) et modulaire (plugins).
La v2.8 chez les utilisateurs
L’article de Jérôme VEYRET.
Installation
Le framework est générique ! Partagez vos idées, plugins, créations ! Et parlez de S.A.R.A.H autour de vous
Télécharger le zip v2.8
(juste un zip, pas d’installation)
- Getting Started
- Mon premier module
- Modules avancés
- Lire la Foire aux Questions
- Participer au groupe de discussions
- Voici la liste des plugins
Architecture
Une description complète de l’architecture se trouve sur cette page.
- Un programme C#
- Ecoute des phrases/gestes/qrcode (grammaires XML).
- Envoie une requête HTTP
- Vocalise la réponse HTTP
- Un programme NodeJS
- Reçoit une requêtes HTTP qui exécute un script associé
- pour scraper de l’information sur internet (avec PhantomJS)
- ou simplement exécuter des programmes
- Exécute périodiquement des scripts (CRON)
- Qui peuvent déclencher des requêtes HTTP
- Reçoit une requêtes HTTP qui exécute un script associé
Interface web
SARAH est accessible depuis une interface web (HTML5, CSS3, Bootstrap, Responsive…).
Le portail permet d’avoir une vue d’ensemble des plugins installés. C’est un moyen simple pour véhiculer de l’information ou de la documentation.
Les plugins installés sont automatiquement configurables depuis le tableau de bord de la page d’accueil. Les données sont ensuite stockées au format JSON dans le fichier custom.prop.
Planification d’actions

Depuis la version 1.9, en plus de la vocalisation, les évènements de calendrier peuvent déclencher des scripts. Cela permet de profiter de toute la souplesse de Google Calandar: IHM, Périodicité, Collaboration, Planification, …
Google Calendar étant un des channels de IFTTT, cela permet d’avoir un pont entre les actions qui se déroulent en ligne et les objets de la maison.
Bibliothèque d’applications
Depuis la version 2.2, l’interface web propose une bibliothèque d’application contenant de nombreux plugins pour SARAH:
Karotz, Freebox, Météo, Dictionnaire, … ou Domotiques (Eedomus, Vera, Zibase, …)
Il est possible d’installer ces plugins, hébergés en ligne (dans ma DropBox), directement depuis le store. Les plugins sont téléchargés puis décompressés dans l’application.
Voici un tutorial décrivant toutes les étapes de création d’un plugin XBMC.
Moteur de règles
Depuis la version 2.3, il est possible de définir des règles pour enchaîner les scripts de la même manière que les services en ligne comme IFTTT ou Zapier.
Par exemple: quand la météo se déclenche, si je ne suis pas présent, faire une notification Push sur l’iPhone et envoyer un mail plutôt que de vocaliser le message dans une pièce vide.
L’idée est de faire le pont entre les services de la maison (internet des objets) et les services en ligne (de IFTTT)
Reconnaissance gestuelle
Utilisé avec un Kinect, SARAH permet de faire de la reconnaissance gestuelle pour déclencher des scripts. la grammaire de geste est décrite en XML.
Le plugin gesture propose plusieurs geste prédéfinis à brancher directement via le moteur de règles à d’autres scripts
Reconnaissance de QRCodes
Utilisé avec un Kinect, SARAH permet de faire de la reconnaissance de QRCode pour déclencher des scripts. Le plugin Loups garous de Thiercelieu en est un très bon exemple.
Les QRCodes sont gratuits et ont l’avantage de pouvoir encapsuler n’importe quelle URL.
Reconnaissance Faciale
La version 2.6 embarque la librairie OpenCV afin, dans une premier temps, de faire de la détection et reconnaissance faciale.

Quand la reconnaissance est activée, une requête est envoyée à NodeJS chaque fois (min 5s) que le visage est détecté.
Serveur WebSocket
Depuis la version 2.7, le serveur websocket a été modifié pour streamer des images jpg ou png en mode fond vert.

En jouant avec les styles CSS3 il est alors très simple de construire un hologramme.
Ressources
A little pitch
Présentation pour conf.
Avec une vidéo lors de ParisJS.



En cours de rédaction/développement …
J’ai hate de voir la suite
Ca va être génial !
Hop,
- Petite vidéo de démonstration
- Upload des sources sur GitHub
- Gros Zip Portable avec tout
Je testerais le zip sur une machine vierge un peu plus tard…
Trop fort ! Valérie a été très impressionnée !
Jp tu es fou ! C’est impressionnant. On voit que SARAH est encore une adolescente vu qu’il faut souvent lui répéter les choses ;o)
Félicitations JP ! C’est trop fort ton truc !
Et au passage bravo aussi pour la vidéo ! C’est très clair, très didactique et les démos sont parlantes…
Encore bravo
Bonjour,
problable source de pb:
WSRMacro.cs ligne 301, vous utilisez une IP fixe ’192.168.0.8′.
Si notre PC n’a pas la même IP, on gère comment ?
cdlt.
En fait si les URL de la grammaire sont en 127.0.0.1 je les convertis en 192.168.0.8. Mais si elle ont déjà la bonne IP il n’y a pas de problèmes.
Mais c’est très moche, je vais rajouter un hook ! Merci !
J’upload une nouvelle version (j’ai aussi mis à jour le ReadMe) l’IP est passée en paramètre.
(J’ai prévu de l’installer sur une autre machine pour identifier tous les problèmes, SDK à installer, …)
Merci pour ce retour rapide.
Le projet manque un peu de documentation, mais je le suppose "jeune".
Il serait également bon de mettre en paramètres (dans le .prop ou en ligne de commande) le paramétrage de "CONFIDENCE" et "CONFIDENCE_DICTATION".
Cela permettrait à ceux qui comme moi n’ont pas de quoi compiler d’ajuster la reconnaissance
On peut même dire que la doc est inexistante j’avoue. D’ailleurs les TBW (To be Written) dans ce billet montre que j’avance petit à petit
Pour la confidence j’ai mis 0.8 car "a priori" tout est relativement bien reconnu à ce niveau. Mais je voudrais tester plusieurs algos qui pourraient améliorer le résultat.
Sur la dictée … je trouve que c’est inutilisable.
Il est possible de surcharger pour un script la confidence (cf. time.xml):
Je l’ai mis dans le time.xml car les phrases sont très courtes et reconnues rien qu’avec des bruits de fond.
Pour le tag, je m’en doutais, mais changer la valeur n’avait pas d’impact lors de mes tests… mais je viens de réaliser qu’il faut relancer le programme pour que le changement soit pris en compte
J’ai noté de rajouter la confidence en paramètre de WSRMacro. Normalement les XML sont monitorés et rechargé automatiquement (entre 2 phase d’écoutes)
En fait le principe:
- Quand une phrase "match" un XML sémantique est construit
- Tous les <tag> sont exécutés
- Dans WSRMacro je parse ce XML et sérialise tous les sous éléments de en paramètre de requête
- Et avant je test si l’attribut confidence est valide
J’ai fait une petite mise à jour 1.2 avec la confidence.
Et sinon globalement ça marche ? ça réponds ? Vous arrivez à avoir au moins l’heure ? La voix s’installe correctement ?
Je suis sous Windows 7, j’avais déjà des voix (venues de je ne sais plus ou), mais j’ai rajouté pour test celle fournie dans le ZIP. Elle est claire, mais j’ai ralenti un peu le phrasé.
Mon micro est pas top, du coup, je doit baisser le niveau de "confidence". Actuellement j’ai l’heure à 99% des fois.
Pour le ciné, j’ai trouvé comment changer votre ville par la mienne. ça marche, mais la vocalisation des titres en anglais, c’est pas top.
Par contre, impossible d’obtenir une reconnaissance pour avoir les horaires d’un film
Pour l’agenda, ça ne marchait pas en utilisant le protocole https (que j’utilise par défaut sur ma gmail), en http ça marche. Toutefois j’ai une erreur lors de l’ajout d’événement (erreur: connect EACCES) que je suppose lié à ce soucis http/https.
Je regarderais dans les prochains jours pour un module zibase.
Il serait bien d’avoir également un module météo, mais je pense qu’il doit y avoir un gros boulot de copier/remplacer à faire pour une vocalisation propre.
N’étant pas doué en programmation js, je vais y aller doucement…
j’ai fait une correction dans movie.js.
Au niveau des remplacement des jour abrégés, j’ai changé en:
replace(/Lun[ -,]/g,’Lundi ‘) (idem pour les autres) au lieu de replace(/Lun/g,’Lundi ‘)
car le retour est "Lun, Mar, "
Ma modif remplace aussi bien s’il y a un espace, un tiret ou une virgule.
Les plus belles voix sont celle de Loquendo mais elles sont payantes et la boite s’est fait racheter par Nuance
Pour les horaires d’un film il faut:
1. Vérifier que le XML est bien écrit dans la zone "generated"
2. Parler avec l’accent français: "The Dark Knight" => "Ze Dirque Nitche"
Effectivement on a ensuite envie de faire du Scrapping de plein de sites Meteo, Bourse, … J’ai mis une mini explication dans les commentaires ici.
Concernant l’URL GoogleCalendar
- Déjà il ne faut pas avoir de GoogleAuthenticator
- Il faut mettre l’URL privée en terminant avec : "/full?alt=json" à la place de "/basic"
(Je ferai un test avec un autre compte)
[...] S.A.R.A.H. Unboxing Makey Makey Deluxe Kit [...]
Je viens de publier la version 1.3
- Amélioration du scraping
- Ajout de la météo (simple)
C’est un super projet, je vais le suivre avec attention.
Dans le Readme il est indiqué ceci :
"Remplacer les [FIXME] du fichier script/wsrnode.prop"
Il faut faire quoi au juste?
@tabletactile pour le moment la configuration des modules se fait en chargeant un fichier de propriétés: /script/wsrnode.prop
Il faut donc:
1. copier le wsrnode.prop.release en wsrnode.prop
2. saisir les bonnes valeur à la place des [FIXME]
- Mettre l’IP de ta machine
- Le répertoire d’upload (pour le Karotz)
- L’URL du flux privé Google Calendar
- …
Voici un fichier ultra simplifié sans Kartoz, Calendar, Eedomus:
{ "http" : { "ip" : "127.0.0.1", "port" : 8080 }, "cron" : [ ], "module" : { } }Et ne pas oublier de modifier "WSRKinect.cmd" pour mettre "127.0.0.1"
[...] Cette page fait suite à un précédent article. L’objectif du projet est de développer un “Personal Digital Assistant Domotique” avec reconnaissance vocale. L’utilitaire Micro… [...]
Merci pour les explications, maintenant WSRNode démarre.
Je n’ai pas de kinect donc je n’ai pas installé son driver, j’ai ce message dans la console:
System.IO.FileNotFoundException: Impossible de charger le fichier ou l’assembly
‘Microsoft.Kinect, Version=1.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad36
4e35′ ou une de ses dépendances. Le fichier spécifié est introuvable.
C’est normal?
Je pense qu’il ne trouve pas les .dll de kinect effectivement
Il faut éditer le fichier "WSRKinect.cmd" pour utiliser "WSRMacro.exe" à la place de "WSRKinect.exe". (‘rem’ indique une ligne en commentaire)
(Je n’ai pas encore eu le temps de faire le test sur une autre machine)
Merci, sa fonctionne maintenant et c’est génial
[...] il faut avouer que le projet est prometteur, et déjà bien abouti ! N’hésitez donc pas à suivre la page de notre ami Jean Philippe pour avoir tout le détail sur ce projet et son [...]
Beau projet !
j’ai pas eu le temps de lire les commentaires, je suis sur mon tel en chemin vers le boulot, donc désolé si redite.
je suis étudiant (développeur) et j’imaginais depuis longtemps développer un projet identique lorsque les moyens viendrais.
Vu que tu l’as fait, serais tu intéressé par du travail collaboratif via github ?
@Terry merci
En fait j’ai très peu de temps et je travaille dessus par lot "au feeling". J’essaye d’intégrer dans le projet tous les inputs que me remontent les gens (dès que possible).
A priori il y a déjà toutes les briques pour faire les scripts, YaPluKa ! Mais les scripts deviennent rapidement spécifiques à l’habitation.
Bonjour,
Félicitation pour ce projet, j’espère que vous aurez le temps de le faire perdurer.
Pour le coup, est-il possible (ou envisageable) de le faire fonctionner avec une autre box domotique comme la Zibase ?
Serait-il aussi possible de prendre en compte plusieurs micros ? J’aimerais pouvoir parler à ma maison depuis n’importe ou… Je suppose que vous avez déjà du y penser…
Et y a t-il possibilité d’avoir une fonction "réveil" ? Genre le matin à 6h00 : "Bonjour. Nous sommes lundi 17 Septembre, il est 6h00 du matin. La température extérieure est de 13° et la température intérieure est de 19°5. Aujourd’hui, n’oubliez pas de sortir les poubelles, et de fêter les Renaud, si vous en croisez un."
Enfin vous voyez le genre
Et forcement, fonction réveil vers plusieurs chambre distinctes. 6h00 pour les parents, 6h30 pour les gamins, etc. Ça pourrait être sympa.
Enfin bref, avant de savoir si c’est réalisable, est-ce que ce serait possible déjà ?
Merci pour ce travail, j’ai hâte de pouvoir le tester.
Bonne continuation, et bon courage.
Merci,
- N’importe quelle box du moment qu’il y a une API (regardez le fichier eedomus.js) on envoie une bête requête HTTP
- Plusieurs micros c’est techniquement possible (si ils sont reliés à un PC). La partie C# ne fais qu’envoyer une requête HTTP à NodeJS qui fait le traitement.
Par contre il faudra aussi embarquer NodeJS sur chaque PC pour tous les CRON car pour le moment c’est NodeJS qui fait le TTS (faudrait que j’améliore cela).
- Réveil matin sans problème,
1. Soit avec un petit script CRON qui se déclenche tous les matins et fait ce que vous souhaitez.
2. Soit plus basiquement avec une règle IFTTT qui crée un évènement de calendrier sous tel ou tel condition qui sera ensuite lu par le script CRON de calendrier.
Le framework est là "il ne reste plus" qu’a développer les usages. Et même idéalement faire apprendre les usages au programme (bcp plus compliqué)
Il faut que je test un connecteur Squeezbox aussi, mais le lapin est pas mal déjà pour parler dans toutes les pièces.
Je suis entrain de réfléchir pour mettre un mini serveur web (expressJS) pour administrer la configuration depuis un navigateur ou iPhone
Note: Un Microphone Array (genre Kinect) est plus adapté en pratique pour avoir une bonne reconnaissance.
Sinon dans les projet du même genre avec de vrai entreprise derrière il y a Ubi
Merci pour la réponse.
Je suis du genre à me faire les choses dont j’ai besoin moi-même. Et je suis aussi développeur (web, le PHP et le JS c’est mon truc), et bricoleur.
J’aimerais beaucoup avoir une solution comme S.A.R.A.H. à la maison, mais pouvoir gérer du multi-room.
En gros, je voudrais (vais) mettre des haut-parleurs et des micros dans chaque pièce de la maison, et je voudrais (vais) les piloter indépendamment. Savoir de quelle pièce viens la commande vocale, et pouvoir répondre dans la dite pièce, ou si c’est un message du genre "on mange" diffuser l’annonce dans toutes les pièces.
Il y aura bien sur un seul et unique PC qui fera office de serveur. Un petit truc qui consomme rien, je ne sais pas encore quoi.
Je vais étudier ça quand j’aurais le temps (pas tout de suite du coup). Si je peux aider, je n’hésiterais pas
Bonne continuation !
@playmo Je vois tout à fait, j’aimerai faire la même chose.
Tout ce que je peux dire:
- Les microphones c’est pas top pour de la reconnaissance vocale. Car il faut un réducteur de bruit. Il suffit d’un parquet qui craque ou la tv en fond pour que ça rate. Et les Microphone Array c’est souvent de l’USB :-/
- Sur les enceintes, je ne peux pas passer de cable donc je vais faire l’option Karotz ou SqueezBox dans les pièces (mais SqueezBox est arrêté
)
- Sur les détecteurs de présence, Eedomus propose une API sympa, et ca doit être simple de savoir les pièces "active" pour envoyer un message.
- Sur le PC, j’ai un vieux Asus eee box EB1012P planqué au dessus de la TV avec un Windows 7. Les driver SAPI qui fournissent le "speech" sont drôlement bien. (Bon je suis un dev Java à la base donc C# je maîtrise mal ^^)
bravo, très beau travail! ca donne envie! respect! Par contre le coté déplaisant est que ca me rappelle mes filles : répéter 10 fois quelques chose pour que ce soit respecté. Quoique je vais peut etre adopter SARAH puisqu’il n’y a besoin que de 2 fois. ca va me reposer
))
Normalement ça marche du premier coup (même si il faut que j’optimise le tout)
Pour plein de raisons, l’algo est un automate qui attends une phrase > action > …
Du coup dans la vidéo, comme je parle, elle commence a matcher un bout de phrase et plante. En plus le niveau était faible et je n’avais pas fait l’exercice de la reconnaissance.
Bref faut ajuster tout ça.
c’était une boutade bien sûr
je voulais twitter l’article et suivre par rss le blog et rien de tout cela! suis je si myope ?
Oui
- Twitter: en fait j’ai pas mis d’icone
, je copie l’URL ^^
- Suivre le flux RSS: Il suffit de copier/coller l’URL dans GoogleReader (mais a priori l’url est: http://encausse.wordpress.com/feed/)
Bonjour,
Je viens de découvrir ce projet dans le cadre d’une recherche sur ce sujet qui m’intéresse énormément. Plusieurs croquis trainent sur mon bureau depuis quelques temps et je souhaitais lancer le développement dans les jours à venir.
Je vais donc te suivre avec un grand intérêt !
Malheureusement, après avoir tout installé et préparé, impossible de lancer WSRNode, la fenêtre se referme aussitôt, ce qui engendre des requêtes http sans réponses dans WSRKinect.
En lançant WSRNode à partir d’une fenêtre de commande j’obtiens ceci :
C:\SARAH>WSRNODE.cmd
C:\SARAH>set NODE_PATH=C:\SARAH\NodeJS\node_modules\npm\node_modules;C:\SARAH\No
deJS\node_modules\npm;C:\SARAH\script\lib;C:\SARAH\script\vendor
C:\SARAH>"C:\SARAH\NodeJS\node.exe" script/wsrnode.js
node.js:201
throw e; // process.nextTick error, or ‘error’ event on first tick
^
SyntaxError: Unexpected token ´╗┐
at Object.parse (native)
at Object. (C:\SARAH\script\wsrnode.js:8:19)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)
Merci d’avance si tu as une idée.
Au vu de l’erreur, c’est javascript dans wsrnode.js
Au "feeling" il ne doit pas réussir à parser le fichier de configuration (le parser est très chiant) il faut une syntaxe JSON.
Fait un test avec un fichier ultra minimaliste (cf. commentaire plus haut)
PS: Je vais voir si il est possible de mettre un gros try/catch dans node pour avoir des erreurs plus parlantes.
A vrai dire, je tourne déjà avec la version minimaliste qu’à réussi à faire tourner TableTactile et que tu avais fournis.
Je te remercie
Moi j’utilise une Caméra Playstation Eye qui dispose de 4 micros et qui est en plus très bon marché +/- 15€ => http://makezineblog.files.wordpress.com/2009/08/ps3eyecam_cc.jpg?w=600&h=450
De plus on pourrait imaginer que la caméra face office de détecteur de présence.
Sinon dernière chose ça serait sympa que Sarah disent "Dsl je n’ai pas comprise la question" un peu comme le Karotz.
@MatthewD
je vais voir ce que je peux faire.
arf
@tabletactile
Le karotz réagit a un stimuli (appuie sur le bouton) alors que Sarah écoute tout le temps (dans la vidéo tu vois les phrases défiler) donc ce serait pénibles qu’elle parle tout le temps.
=> Je réfléchis à une astuce pour essayer de forcer "Sarah" comme terme très important à matcher
Pour le détecteur de présence, une camera vidéo peut marcher mais ton pauvre PC va consommer à lire le flux vidéo tout le temps. A mon sens il est plus sage de passer par des périphériques domotiques dédiés.
@MatthewD en attendant je mets en ligne une v1.4 avec un peu plus de logs et le fichier minimaliste.
Je pensais aussi à ça, la phrase se déclenche juste quand le mot Sarah est détecté mais qu’il ni à pas d’action reconnu.
Pour la détection de présence la résolution peut être très faible, un peu comme sur une sourie optique ou l’on compare le changement d’état des pixels.
Roadmap:
1. Je suis partis pour intégrer ExpressJS + TwitterBootstrap afin d’avoir un vrai mini serveur web qui simplifiera la configuration.
2. Ensuite j’espère pouvoir actionner les modules depuis une page web / et mobile.
3. Ensuite je verrais si je peut mettre un mode "Veille" en disant "Sarah" ou voir ce qu’il est possible de faire pour améliorer le machin
4. En parallèle je vais réfléchir pour faire un XML de "gesture". En gros comme pour la grammaire pouvoir dire tel gesture Kinect entraîne tel requête HTTP.
Mais bon on verra suivant mes dispos …
Très intéressant, je viens de tester et ça fonctionne très bien !
Je pense qu’un mode veille où madame attende qu’on parle d’elle serais intéressant.
Je viens de tester avec la release 1.4 tout en gardant mon ancien fichier minimaliste et mon WSRKinect.cmd et là ça passe.
Cela fonctionne donc très bien avec le simple micro de mon iMac, j’essayerais demain avec mon Kinect si j’arrive à réparer mon alim.
Histoire d’éviter d’apprendre des phrases préparées ou leurs variantes, je pense qu’il pourrait être intéressant de travailler avec des contextes, une fois le contexte définies (tâches, cinéma, playeur…), il suffit de définir une action et l’objet de l’action. Cela permettrait à l’automate non pas d’attendre des phrases spécifiques, mais de se concentrer sur des termes spécifiques, sachant que chaque terme d’action est lié à un contexte dont la liste est définie.
Pour simplifier la configuration, il y a possibilité via nodejs de réaliser une page web qui ira modifier les [fixme] du fichier de conf je pense. Je regarderais ça demain si ça peut t’aider.
[...] l’avez surement vu dans d’autre blog, mais je voulais à tout prix souligner ce que Jean Philippe Encausse, était en train de développer ; un assistant domotique [...]
super projet JP, merci pour le partage
je me demandais pourquoi pas avoir l’option d’un clavier midi ou autre interface physique, a la place de la voie ? une touche une phrase ? Sarah peut alors poser des question au besoin de parametres. comme ca l’envoie d’une commande est assuré a 100%, en gros une interface entre le stimuli et le lanceur de l’action.
en tout cas super projet,
merci
@MattewD j’ai mis en place ExpressJS + Bootstrap + un moteur de template pour faire un mini site web de config et d’action. Je le releaserais un peu plus tard.
Sur le principe des "context", "mot-clef", … ça va dans un sens différent de ce qu’a prévu Microsoft.
Ils ont un moteur de règle qui "apprends" des phrases et est censé lever les ambiguïté.
Par contre comme nous n’avons pas tous le même background nous n’utilisons pas les mêmes tournures de phrase c’est pour cela que le XML est éditable pour adapter les phrases.
Tu peux même mettre 1 mot mais c’est dangereux car il risque d’être très facilement reconnu par les bruits de fond. Et ce n’est pas très SF
@oceatoon tout est possible, le WSRKinect est découplé du serveur NodeJS. Mon besoin de départ est d’avoir une interaction avec la maison sans bouger du canapé
Mais oui j’aimerai plugguer des trucs sympa:
http://encausse.wordpress.com/2012/08/26/unboxing-makey-makey-deluxe-kit/
J’attends juste mon RasberryPi
[...] S.A.R.A.H. « jAlias L’utilitaire Microsoft WSR Macro n’étant pas assez souple, j’ai choisis d’en développer un autre. Voici l’architecture mise en place dans le cadre de ce projet: Non, l’article d’aujourd’hui ainsi que le prochain article seront pour ainsi dire un compte rendu (certes trés superficiel) du travail réalisé avec l’aide de plusieurs membres du forum arduino. [...]
Ah j’avais zappé: http://msdn.microsoft.com/en-us/library/hh362835.aspx
L’attribut weight sur un item permet d’augmenter le poids du mot. je testerais ce soir. A priori ca permettra d’augmenter le poids du mot "sarah" et de réduire globalement la confidence de 0.8 à 0.7…
Teasing: Amélioration du serveur web de SARAH
http://encausse.wordpress.com/2012/09/19/teasing-amelioration-du-serveur-web-de-sarah/
Tu a testé l’attribut weight ?
Pas encore
Bonsoir,
je teste SARAH depuis quelques jours maintenant, et j’adore…
A noter pour ceux qui débutent:
- la qualité du micro et ses réglages sont très importants. Chez moi, j’ai mis le niveau sonore du micro à 80% (en enregistrement, pas en lecture) et un gain de 20dB. Si je monte le niveau ou le gain, la reconnaissance est moins bonne (ça sature). Si je les baisse, SARAH n’entends pas… Chez moi, les paramètres sont dans le panneau de configuration, "gestionnaire audio realtek". Chez d’autres ça peut être ailleurs (selon la marque du matériel)
- J’ai fortement amélioré la reconnaissance de ma voix en réalisant le tutoriel de la section "reconnaissance vocale" du panneau de configuration. Je suis passe (à niveaux sonores égaux) d’un taux de reco de 0.60 à 0.80 malgré mon micro tout pourri.
Je suis intéressé par des retours sur "weight", car le mot sarah est bien reconnu, on pourrait alors descendre la sensibilité à 0.6 sans faux positifs.
Hello, j’ai un petit problème pour faire fonctionner SARAH, je pense que la requête http n’abouti pas, j’ai désactivé le fw sans succés voici un screenshots http://hpics.li/a378d4b
Une idée ?
Merci
@johan c’est un problème lié à la "confidence" et le réglage du micro (tu es sur 127.0.0.1 a priori pas de problème de Firewall).
Dans la console de gauche il est indiqué "Setting confidence level: 0.85". Pour le script time.xml (j’ai indiqué un niveau plus élevé de 0.85)
Mais si tu regarde les phrases de la console tu es à :
- 0.4631
- 0.2171
- 0.8139
- 0.2084
- 0.8384
Tu peux modifier la grammaire time.xml pour réduire la confidence. Et je pense que tu peux aussi optimiser ton micro.
@V.Elvik merci super retours !
L’attribut weight marche, ne plante pas le parser XML et est bien pris en compte. Maintenant je n’ai pas poussé plus les tests.
<item weight="2" >Sarah</item> <one-of> <item>quelle est la météo pour demain</item> <item>il fait quel temps demain</item> </one-of>On doit pouvoir mettre un fort poids sur le prénom pour lever l’ambiguïté et réduire la pertinence globale.
Enfin faut tester et jouer avec
Je viens de découvrir l’utilité du "repeat". c’est super utile pour construire des grammaires.
Un signifiant que la chaine qui suit doit être présente 0 ou 1 fois, cela permet d’avoir des morceaux de phrases optionnelles.
Oui il y a peu de balise XML mais elle sont bien pensée.
Par contre attention ! La balise ruleref qui permet de référencer une règle dans une règle ne marche QUE dans le fichier XML. Je n’ai jamais réussi a référencer une règle externe (dans un autre fichier).
C’est la raison pour laquelle calendar.xml est gigantesque et contient des règles génériques pour la gestion des dates "Demain, dans 3 jours, mardi prochain, …"
C’est un bug "référencé" sans réponses.
J’ai utilisé "repeat" pour optimiser la météo. Certains éléments sont optionnel:"aujourd’hui" ou "demain", ainsi que la ville. Cela permet plus de liberté dans les phrases:
sarah quelle est la meteo à paris ?
sarah quelle est la meteo aujourd’dui ?
sarah quelle est la meteo ?
etc….
Excellent !
Bon, j’ai pas mal modifié la météo.
Dans mon code précédent, j’ai changé de nouveau au niveau des villes, afin d’ajouter leur nom:
<item repeat="0-1"> <item>à</item> <one-of> <item> <tag> out.action.zip="Troyes/10000"; </tag> <one-of> <item> Troyes </item> <item> Troyes dans l'aube </item> <item> trois </item> </one-of> </item> <item> Rouen <tag> out.action.zip="Rouen/76000"; </tag> </item> <item> Paris <tag> out.action.zip="Paris/75001"; </tag> </item> </one-of> </item>Dans le script .js correspondant, au début, j’ai changé en:
var url = 'http://mobile.meteofrance.com/france/ville/'; var options = {'zip' :'Troyes/10000', 'date' : '1'};(j’ai retiré la ville qui était en dur dans l’url et j’ai changé la valeur par défaut en conséquence)
Plus bas dans le script, vers la ligne 64:
var vv=$('TITLE'); // reccup du titre var ville=vv.text().split(' '); // on decoupe la chaine var tr = $('DIV#prevision TABLE.prevSem1 TR:nth-child('+pos+')'); // 1 = aujourd'hui 3=demain 4=ap.demain results.tts = tr.find('TD:nth-child(1)').text() + ' à ' + ville[5] + ', '; // Days results.tts += tr.find('TD:nth-child(2) IMG').attr('alt') + ', '; // Sun results.tts += tr.find('TD:nth-child(3)').text().replace('/','à'); // Temperature return results;Ici je reprends le nom de la ville depuis la réponse de la météo pour l’inclure dans le speech et j’ai légèrement modifié la fin "x°C / y°C" en "x°C à y°C"
Cela donne un meilleur rendu à mon avis
Hé hé
Avec tous ces supers échanges je sent que ce Week-End je vais mettre en place un Google Groups pour échanger bonnes pratiques autour de SARAH.
je pense que ce serait plus pratique que via des commentaires.
Ok pour le niveau de sécurité ça fonctionne je vois bien la construction de requête et le retour par contre je n’ai pas de son qui sort (les enceintes sont allumées et le son fonctionne sur le pc)
Une idée ?
@johan
Est ce que tu peux aller ici: "%windir%\SysWOW64\speech\SpeechUX\sapi.cpl" et valider que les voix marchent ? (Win7/64bit)
De même tu peux lancer l’execuable /bin/WSRSpeak.exe "du texte".
Quelques pistes:
- Il faut peut-être installer SAPI (http://www.microsoft.com/en-us/download/details.aspx?id=27225)
- Il faut peut-être installer une voix française (cf répertoire ReadMe)
Je n’ai pas encore analysé les pré-requis pour faire marcher Sarah. (A priori Win7 / Voix Française / SAPI )
j’avais installé le sdk et runtime est compris dedans par contre je suis en 64bit et effectivement quand je teste la voix depuis
%windir%\SysWOW64\speech\SpeechUX\sapi.cplje n’ai pas de son qui sort donc pas de prob depuis SARAHEn fait c’est le bordel, il y a des voix 32bit et des voix 64bit. Dans le ReadMe le soft installe une voix 32bit "correct" et mon précédent lien ouvre la liste des voix 32bit.
Sous Win7, par defaut il liste que les voix 64bit. il faut donc passer par le lien pour activer la voix 32bit.
Mais bon ca devrait marcher dans tous les cas (32 ou 64) donc ca semble être lié aux APi de speech qui ne sont pas présente ou configuré ou …
Je viens de créer un groupe de discussion qui fait aussi Questions/Réponses.
D’ici ce week-end je vais trier et transférer les commentaires de cette page vers la page communautaire.
Si vous avez le temps, allez vous inscrire !
Salut,
tout d’abord merci de partager ton travail
j’ai fais quelques tests rapidement, je n’ai fais "que" suivre le "readme" et donc installer la voix virginie et cela fonctionne sans rien de plus à priori (windows7 famillial premium 64bit sur un pc portable)
pour ma part la "seule" partie qui m’intéresse est la reconnaissance vocale qui "sur reconnaissance d’une phrase" envoi des requêtes http
ayant déjà un "serveur domotique" qui tourne ("PC" sous linux) et a un serveur web apache pour gérer la visu domotique notamment
il serait donc intéressant de pouvoir configurer la partie TTS comme le reste et/ou pourvoir la désactiver (j’utilise déjà la TTS sous linux)
pourquoi avoir choisi node.js comme serveur web et pas genre xamp ?
j’ai donc fait des tests et arrive a commander la lumière de ma maison a la voix c’est sympa… donc perso je ne me sert donc pas du serveur node.js
n’ayant pas de kinect c’est le micro du PC qui n’est donc pas top il faut donc être près du micro, est-ce que cela fonctionne beaucoup mieux avec un kinect ? je vais peut-être investir …
je vais suivre le projet avec grand intérêts …
merci encore
@+
Anthony
@Anthony
1. De mémoire tu dois pouvoir utiliser "que" WSRMacro.exe + le répertoire des macros (grammaires xml). Il faut juste que ton serveur réponde un 200 à la requête.
2. Pourquoi NodeJS ?
- Pour jouer avec et apprendre
- Je viens du monde Java/Web, (je travaille sur un CMS/Portal/Collaboratif/RéseauSocial,… depuis +10ans) mais pour SARAH je voulais un truc simple:
=> Portable dans ma DropBox
=> Avec des scripts indépendants
=> Avec un langage "universelle" (cf. stats GitHub)
=> Avec beaucoup de connecteurs (PhantomJS, FileSystem, …)
3. Kinect
Impressionnant ! Le son de la vidéo est celui de Kinect. Un bon moyen de se rendre compte de ce qu’entends Kinect à 2-3mètres.
merci pour ta réponse rapide
pour le point 1, oui c’est ce que j’ai fais je n’utilise "que" WSRmacro et des macros que j’ai écrites à partir des autres que tu as mises en exemple
cela fonctionne bien, le seul point "négatif" reste le micro et je vais donc surement investir dans un kinect …
ce que je ne peux pas "débrancher" c’est la synthèse vocale…
merci
@+
@Anthony Je ne comprends pas
WSRmacro ne vocalise que le texte envoyé dans la réponse de la requête HTTP. Si tu ton serveur ne renvoie rien elle ne dira rien (en théorie).
A moins que tu n’ai pas la main sur la réponse ?
Re,
c’est bien le cas si aucune réponse de la requête http cela ne dit rien cela appel donc le "module" TTS avec "rien"
j’ai la main sur la réponse
sinon j’ai quelques propositions d’évolutions/améliorations :
– pouvoir changer le confidence global en "dynamique", par exemple dans le cas ou on allume/étaint la tv pourvoir augmenter/diminuer celui-ci
la config des "macros" étant mise à jour dès qu’une modification est faite dans le répertoire
il serait surement possible de gérer un fichier xml pour gérer le confidence "global" de la même manière et donc dès que l’on met a jour le fichier cela en tiens compte
– pouvoir mettre en "pause", avec une phrase, la reconnaissance sauf pour certaines phrases qui permettrais de "réactiver"
– avoir un call back "global" à chaque "détection" lancer une requête http
– possibilité de log dans un fichier (voir base mysql) la détection avec date, phrase et "actions" pour piste d’audit et pour analyser les "fausses" détections ça serait plus facile
@+
Anthony.
Très bonnes idées viens t’inscrire sur le Google Groups pour en discuter !
Je note plusieurs points dans mon EverNote.
Bon après le boulot de détection c’est le rôle de Microsoft. Ses algos sont censés s’adapter aux situations, phrases, contextes, etc, … il ne faut pas réinventer la roue juste ajuster.
[...] S.A.R.A.H. Teasing: Amélioration du serveur web de SARAH [...]
[...] Cette page fait suite à un précédent article. L’objectif du projet est de développer un “Personal Digital Assistant Domotique” avec reconnaissance vocale. L’utilitaire Micro… [...]
Félicitations !! Je teste depuis 2-3 jours S.A.R.A.H. et cela répond très bien.
J’ai adapté le fichier eedomus pour piloter une fibaro Home center et tout marche très bien ..avec un micro intégré à un portable.
Vivement le gestuel
Un grand merci à toi JP pour ton investissent, le partage et les évolutions.
Y a t’il un moyen de contribuer pécuniairement à ce projet. Il me semble normal de pouvoir te verser quelque chose du moment où en l’utilise.
Est il possible de l’utiliser sur un autre environnement que Windows ?
A+ Martial
Félicitations, JP !! et merci beaucoup pour ton travail et le partage.
cela fait 3 jours que je test et cela fonctionne relativement bien (pour l’instant j’utilise un portable avec micro intégré et les résultats sont très bon si il n’y a pas trop de bruit parasite) J’ai modifié le script eedomus pour l’utiliser avec une fibaro home center. tout fonctionne correctement.
Est il possible d’installer le pack sur un autre environnement (android ou linux)
Est il possible de te rétribuer car je trouve cela normal d’une part pour ton investissement dans ce projet, ta disponibilité et le fait qu’on l’utilise.
Merci et bonne continuation
Pou info games propose 40€ de ristourne sur le kinnect …
Oups pardon c’est chez micromania.fr, le kinetc à 99€ au lieu de 139€
Merci, j’ai réécris la partie C# dans la1.7 je la releaserais bientôt mais j’ai encore des petites choses à faire.
Pour la version linux
- C# c’est mort vu que c’est les API de Microsoft faudrait tout re coder avec les API Google.
- La partie Node par contre doit marcher sous linux faut juste porter les scripts. Il est même possible d’attaquer un autre serveur web.
OMG ça fait le kinect à quel prix ? Je vais m’en acheter un autre si il est livré avec la prise USB.
Sur le groupe il y a une section IFTTT, cela permettra quoi?
Désolé des pti soucis de santé mon retardé le planning. La section IFTTT sert a regrouper les idées de recette IFTTT avec Sarah.
Par exemple Flux RSS => Google Calendar pour que Sarah vocalise certains évènements.
Version 1.7.1 mise en ligne
[...] S.A.R.A.H. S.A.R.A.H: Une grammaire enrichie [...]
[...] S.A.R.A.H. S.A.R.A.H. Vera (lite) bien si ça marche ? [...]
Arrrgsss avec la v1.8 et la reconnaissance de gestuelle je vais devoir refaire mon schémas … T_T
Pour info ci joint une macro pour une fibaro home center 2 :
Sarah allume cuisine out.action=new Object(); Sarah allumeout.action.periphId='setBinaryLight'out.action.periphValue=100 cuisineout.action.periphDevice=2 out.action._attributes.uri="http://127.0.0.1:8080/sarah/fibaro"; out.action._attributes.threashold="0.70";le script fibaro.js:
exports.action = function(data, callback, config){ var url = 'http://@IP/fibaro/externalRequest?'; url += 'id='+data.periphId; url += '&deviceID='+data.periphDevice; url += '&value='+data.periphValue; console.log('URL:' + url); // Send Request var request = require('request'); request({ 'uri' : url }, function (err, response, body){ if (err || response.statusCode != 200) { callback({'tts': "L'action a échoué"}); return; } console.log(body); // Callback with TTS callback({'tts': "Commande exécutée !"}); }); }Excellent ! (J’ai mis des balises )
Faudra en faire un petit plugin je le mettrais dans une prochaine release
Salut !
))
Est-ce queSARAH pourrait marcher sous mac ???
- La mécanique NodeJS oui (ou n’importe quel serveur http)
- La mécanique Speech non (c’est du C# windows)
- Les .exe (karotz) lancé par NodeJS non (c’est du C# windows)
Maintenant en mode émulation ça devrait marcher, j’ai vu hier que Microsoft avait sorti un driver ou sdk qui rends Kinect compatible sur les OS virtualisés.
Super et merci pour ta réponse !
Mon idée serait d’associer mon projet domotique avec le tien.
Il n’est pas basé sur le même socle de logiciel que le tien. Moi c’est du linux/apache/mysql/php/perl/bash. Les technologies sont interconnectées avec un bus xPL-perl. C’est l’équivalent de ta boite Edomus.
Penses tu qu’avec un plugins xPL SARAH, nous pourrions déporter une partie de la gestion des scénarios et l’intelligence sur ton projet ?
Si besoin n’hésites pas à me contacter en MP, j’ai pleins d’autres questions à te poser !
Cordialement
- La partie C# tu seras obligé d’avoir un Windows (virtualisé)
- La partie NodeJS peut avoir un plugin qui interroge ton bus xPL-perl
- Ou si tu veux juste exploiter le connecteur C# alors il suffit que les URL attaquent directement le serveur Apache. Et tu traitera directement les commandes.
N’hésite pas a venir échanger sur le groupe de discussion:
https://groups.google.com/forum/#!forum/sarah_domotique
Bonsoir Jean Philippe ,
Je m’appelle Benjamin Gardès j’ai 34 ans et je dirige la société EKHOM qui conçoit et construit des maisons écologiques. Je travail en ce moment, à titre personnel, sur le projet E.V.A (Entité de Vie Autonome) qui sera une habitation urbaine totalement autonome dans un container de 40 pieds. Je me suis renseigné sur vos travaux et j’avoue être impressionné.
J’ai dans l’idée d’intégrer un système de domotique à interface vocale dans mon projet et j’aimerais beaucoup en discuter avec vous.
Cordialement.
Benjamin.
Bonsoir, oui avec plaisir vous trouverez mes différentes coordonnées sur ce site ou par mail Jp [at] encausse [dot] net ou via la communauté Google Groups.
Bravo JP ! Continue comme ça et nous réussirons enfin un jour à avoir une maison comme dans les films de SF…
Bonjour JP !
Je trouve ton projet E-X-T-R-A-O-R-D-I-N-A-I-R-E !!! tu es en avance sur ton temps ! félicitation à toi et ton équipe de "Geek" (Humour) ! bravo pour le boulot abattu !
je souhaiterais pouvoir vous aider mais mes connaissances sont loin des vôtres…
Cependant avec ton accord je souhaiterais te suivre et voir l’évolution de ton projet et proposer des idées d’évolutions !
Courage à vous les gars !
Bonjour Jp,
Grace à Geek Inc j’ai pu connaitre ce projet extraordinaire. Juste une question bête SARAH est compatible avec toute les solution domotique ?
Merci à tous pour votre travail. Bon courage.
@Aunshi_Oshovah en fait c’est mieux que ça:
SARAH exécute des scripts javascript en fonction de requêtes vocales, gestuelles, QRCode, …
Donc SARAH est compatible avec tout "internet des objets" qui peut recevoir une commande. Le plus simple étant les requêtes HTTP. En pratique EEdomus, Vera Lite ont une API REST (qui marche avec des requêtes HTTP)
Pour le Karotz c’est un code spécifique, et dans la v2.1 on pourra envoyer des mails.
Bravo JP ! Ça commence à devenir vraiment concret !
En plus je vois qu’une petite communauté se monte…
Je l’achète des que tu as fini
Hello !
Effectivement SARAH est à la croisée des chemins et intéresse pas mal de monde pour des raisons différentes
Je n’ai pas prévu de monter un business
Je souhaite surtout faire bouger l’écosystème pour véritablement connecter tous les objets de la maison:
- Que Microsoft et Google lâche le mobile et pensent maison, voiture, …
- Que les box domotique lâchent les prises et pensent out of the box ^^
- Qu’on ai du multimedia dans tout ça et pas seulement un XBMC, Apple TV, Skype dans un coin.
- Qu’on ai a terme des l’e-sante, etc, … the sky the limit !
Je vais trouver de ce pas un peu de temps pour mettre en place.
Super job. Y a un projet identique ici : http://www.youtube.com/user/twinrawk?feature=watch
@CaptainIgloo j’ai l’impression que "synozwave" c’est un framework équivalent à ce que propose les box domotiques comme eedomus ?
- sans les notions de reconnaissance vocale, gestuelle, qrcode
- sans les notions de se connecter à plus que les composants zWave
Je ne suis qu’un contributeur au projet SynoZwave. L’idée initiale est de se passer d’une box quand on dispose d’un serveur Synology dont l’utilité est nettement plus générique dans ses fonctions de NAS. Cependant, les performances de ces serveurs dépassent largement celles d’une box. Ce passer d’une box est donc l’objectif.
Les perspectives de ces plateformes serveurs permettent tellement plus d’évolutivité logiciels qu’une box, qu’il n’y pas beaucoup de limite à l’imagination.
SynoZwave pourra dans le futur s’ouvrir à d’autres technologies périphériques et protocolaires (en vrac RFXCom, Zigbee, blockly, xPL, iOS, Droïd ….) . Les périphérique virtuel HTTP et/ou XML permettent la collecte d’informations et le déclenchement d’évènements sur des tierces parties.
Ah oui je comprends tout à fait. J’espère que les constructeurs de box feront des machines plus puissantes pour qu’elles deviennent le coeur de la maison.
L’idée avec SARAH, n’est pas de réinventer la domotique mais au contraire de se plugguer dans les centaines d’API de box, de services web, de projet kickstarter de technos, karotz, photo frame, etc, … et de connecter ces objets un peut comme IFTTT
Et il y en a plein: ProgrammableWeb.com
Bonjour,
Je tourne aussi essentiellement sous linux. Est ce que le projet ne pourrait pas être compilé avec Mono à tout hasard ? http://www.mono-project.com/Main_Page
Merci pour ce projet !
Je suis un n00b en C#, je note la RFE et regarde ce qui est faisable sachant qu’il y a de nombreuses dépendances (dont kinect).
Bonjour,
tout d’abord merci pour cette mise à disposition de ton travail. J’ai une question d’autre logique, est-il possible (ou imaginable) le fait d’avoir un argument vocal ?
Exemple: Sarah, quel temps fait-il à VILLE
de là, l’argument VILLE détecté est passé en variable afin de pouvoir l’exploiter derrière ?
Merci
@Clust3r la reconnaissance vocale de wildcard n’est pas de bonne qualité.
1. Une première astuce est de préciser les villes dans le XML de la météo ce qui permet d’avoir plusieurs choix précis. mais n’est pas générique
2. Une deuxième approche est de faire la reconnaissance du mot inconnu.
=> L’API Microsoft ne sait pas faire, donc je passe par GoogleSpeech mais l’audio étant cours ca marche pas a tous les coups:
http://encausse.wordpress.com/2012/10/04/s-a-r-a-h-un-grammaire-enrichie/
Il y a un exemple dans le plugin dictionary
Merci pour ces précisions, mon idée n’est pas en rapport avec la météo, mais cela imagé parfaitement ma requête.
Je vais explorer cette piste.
Ah oui sinon j’oubliais une autre approche, dans le plugin movie
- La personne demande les films de la salle X
- Je construit à la volée la grammaire des films
- Ensuite la personne peux demander les horaires du film Y
Il faut aussi tenir compte des wildcard anglais, typiquement une chanson avec un titre anglais devra être prononcé à la Française "The dirque nitch" pour The dark knight"
Ce truc est génial, je l’ai découvert grâce à idleman et j’adore, merci à toi.
Quand je pense que 5 personnes de mon école ont bossé 11 semaines à Casto sur leur BlissBox pour ajouter le reconnaissance vocale et qu’ils ne sont arrivés à rien, et que moi en 5 minutes j’ai un truc fonctionnel et facilement configurable, je suis bluffé.
Ah bah c’est cool !
Faut surtout remercier Microsoft et ses API. Ainsi que NodeJS ^^
Mon message précédent ne concernait que yuri. J’ai "installé" sarah, qui continue de faire tourner yuri. C’est indécent de simplicité. Jamais, au grand jamais, je n’aurais pensé faire des choses pareilles. JE PARLE A MON PC, ET BIENTÔT A MA MAISON BORDEL ! Sinon, joli choix de licence
Bonjour,
Super projet et quel beau partage.
J’ai un projet de domotique à titre perso et le fait de pouvoir intégrer une commande vocale m’intéresse beaucoup.
Pour le moment, je suis en phase de test et j’essaye de comprendre le principe de programmation : pas simple pour l’amateur qui vous parle ! Mais bon… avec un peu de patience…
Une question : SARAH peut donc commander (via EEDOMUS) ou aller chercher une information (exemple : Météo) sur le Web. Il serait, à mon avis, parfois, souhaitable de pouvoir accuser réception du message.
Exemple 1:
Utilisateur : "SARAH : quelle est la météo pour demain"
Sarah : " Un instant, je consulte météo france"
…
Exemple 2 :
Utilisateur : "SARAH : peux-tu éteindre les lampes du 1er étage"
Sarah : "Je m’en occupe"
pilotage de l’EEDOMUS => les lampes sont Off
Sarah :"les lampes du 1er étage sont maintenant éteintes"
L’idée :
J’échange de manière vocale avec SARAH et j’ai en retour une information également vocale. Le moniteur devient alors inutile (sauf pour l’administrateur bien entendu) et l’utilisateur est informé que son ordre est bien interprété (bien utile si le dispositif à éteindre est hors de la vue ou si la réponse demande un peu de temps).
Qu’en pensez-vous ?
Salut et merci,
Sur ton exemple 1, tu peux le faire en positionnant un attribut "tts" dans le XML de la grammaire en question. Il sera vocalisé immediatement.
(D’ailleurs je songe à le faire car je trouve que c’est super long sur ma petite machine de prod, Je ne le faisais pas avant car c’était instantané sur ma grosse machine.)
Sur ton exemple 2, faudrait que je regarde si je peux avoir un feedback plus précis d’Eedomus dans la "response" (pour le moment je me base juste sur la réponse du serveur et je fais confiance. ok/ko)
Au pire faire une deuxième requête au serveur pour valider que tout est éteint. Et avoir au passage une commande vocale "SARAH est ce que toutes les lampes sont éteintes ?"
Donc oui, très bonne remarque, il faut un feedback vocale pour toute action un peu lente.
Note: Je n’ai pas eu le temps mais faut absolument que j’intègre mon détecteur de mouvement pour déclencher des actions
Merci pour ta réponse. C’est super sympa.
Je regarde cela dès que j’ai un moment (intégration du tts).
Pour ce qui est du détecteur de mouvement, je vois que tu utilises le Kinect. C’est intéressant mais l’idée de pouvoir parler à SARAH dans toute la maison serait un +.
Que penses-tu d’utiliser des Webcams avec micro intégré… un peu comme avec HAL dans 2001 et d’intégrer alors une reconnaissance de mouvement. Pas forcément, dans un premier temps, pour détecter la position d’un bras ou d’une main, mais simplement pour repérer la position de l’interlocuteur et donc de déclencher des actions de proximité (exemple : si je demande à allumer les lampes… ce sera la plus proche de la Webcam qui vient de détecter le mouvement ou l’ordre vocal – les 2 car il faut pouvoir fonctionner dans le noir). Il y a aussi un intéret économique car pour le prix du Kinect, on peut disposer quelques webcams via un hub USB dans différentes pièces de la maison.
J’avais par le passé (1 à 2 ans en arrière) testé un peti soft qui permettait de détecter les mouvements des bras et mains par une Webcam et de jouer sur son PC façon Wii mais beaucoup plus rudimentaire … mais voilà, impossible de remettre la main dessus.
Au plaisir de te lire…
Je me suis mal exprimé.
Les box domotique ont des détecteurs de mouvement, porte, etc, … et sont capable d’envoyer une requête à SARAH pour lui indiquer une présence. Faut juste que je mette en place cette mécanique ultra simple.
Tu dois confondre avec la reconnaissance gestuelle que propose nativement le Kinect.
Concernant le Kinect, ce que j’explique dans la FAQ, Forum et ailleurs:
- 100€ c’est le prix de 2-3 composants Z-Wave. Pour équiper une maison il en faut plein donc le prix est tout relatif.
- Le Kinect profite d’année de R&D et de prix réduit par la production de masse.
=> Dans le même esprit la WiiMote et la Playstation Eye sont aussi imbattable.
- En pratique, les micros ne sont pas adaptés, suffit de tester la différence de qualité à 5 Mètres. Il faudrait "inventer" un Microphone Array gigantesque pour approcher un résultat correcte.
J’ai énormément de retours de gens qui voudraient une super reconnaissance vocale et gestuelle le tout sur un RaspberryPi sous Linux pour 50€. Malheureusement il n’y a pas de magie, pour avoir de la qualité il faut de la R&D.
Le projet qui se rapproche le plus de cela c’est Ubi et je n’y crois pas. A mon avis il y a beaucoup de marketing mais les gens seront déçu.
Concernant tout ce qui est Image Processing, j’ai pas mal de billes dans les cartons (reconnaissance de visage, d’objets, tracking, etc, …) mais j’ai pas le temps de tester les algos, ça viendra.
La philosophie de SARAH est d’assembler des briques de Lego simple et qui marchent. Dès que j’arrive à l’étape "papier de recherche" je m’arrête car je n’ai pas le temps.
hello juste pour te dire que le .zip est considéré par Chrome canary comme malveillant
Ah merci pour l’info, c’est peut-être lié à la présence de JS, EXE, etc, … ?
Sur un chrome normal je n’ai pas eu d’erreur j’espère que ce n’est que transitoire.
Bonsoir,
Je suis sur XP sans kinnect mais avec un micro et j’ai l’erreur suivante : WSRMACRO.exe doit fermer. cela ne fonctionne pas. Avez-vous une idée?
Merci d’avance
Bonsoir, difficile à dire avec peu d’info.
Je t’invite à vérifier par rapport à la FAQ (pts 6.) il y aura peut-être des indices. ou sinon venir sur le Google+ poster un screenshot.
Pour que le programme crash si brutalement il y a quelques chose qu’il n’aime vraiment pas.
- Peut être le framework .Net 4 qui peut manquer (souvent installé par les jeux)
- Peut être la partie speech recognition (SAPI) souvent en standard dans windows
Bonsoir,
J’ai eu le même problème, il semble que la version de phantomjs.exe soit infecté par un malware. J’ai récupéré la version sur le site http://phantomjs.org/download.html et ça corrige le problème.
Le fichier de la version 2.4.1 a le même symptôme. La console crashe avec le plugin météo par exemple.
Super application et bonne continuation.
Ouah merci pour l’infos ! je vais corriger cela de suite. Pourtant j’avais fait un scan avec Microsoft Security Essential.
Tu as utilisé un autre outil que Google pour le détecter ? Visiblement MalwareBytes ne le détecte pas
Re,
Non c’est mon antivirus AVIRA free version,qui m’a alerté.
Voici le résultat généré a l’instant en téléchargeant la Zip à l’instant.
Le fichier ‘C:\temp\Toto\PhantomJS\phantomjs.exe’
contenait un virus ou un programme indésirable ‘TR/Injector.aio’ [trojan].
Action(s) exécutée(s) :
Le fichier a été déplacé dans le répertoire de quarantaine sous le nom ’56c25420.qua’ !
A bientôt
Bon dans le doute j’ai fait une 2.5.1 avec le dernier PhantomJS et je vais essayer de détecter ce Malware. Je ne trouve pas beaucoup d’infos dessus sur le net.
Bonjour, Effectivement, pas trouv grand chose de mon cot aussi. Ni sur le site de d’Avira ou Mcafee, je continue les recherches demain. Bonne soire.
Re, Plus d’alerte sur la version 2.5.1. Bonne nouvelle
Le 25 janvier 2013 23:17, Laurent BASSEVILLE a crit :
> Bonjour, > Effectivement, pas trouv grand chose de mon cot aussi. > Ni sur le site de d’Avira ou Mcafee, je continue les recherches > demain. > Bonne soire. > >
Bon tant mieux, c’était peut-être un faux positif de Avira (Comme PhantomJS est une sorte de Chrome qui injecte des scripts)
Au moins Phantom aura été mis à jour
Merci !
Salut.
Je viens de tomber sur ton projet qui m’a l’air vraiment super bien foutu grâce à un autre blog ( blog.idleman.fr )!
J’ai juste un petit problème : mon Windows est en anglais, et c’est étrange je n’arrive pas à installer d’autres langues pour le Text-To-Speech (j’avais pourtant installé des langues anglaises sur ma version française… mais là j’ai beau lancer les installers, je ne les vois pas dans la liste déroulante des langues installées O_o). J’ai donc une reconnaissance en français, mais une diction en anglaise !
Bref, de toute façon, j’aimerais bien utiliser ton projet mais avec de la reconnaissance vocale en anglais, j’ai donc passé le tag « xml:lang=fr-FR » à « en-US » (ou en-EN, en-UK) dans les xml de grammaire, mais le programme plante avec une erreur qui dit :
« The language for the grammar does not match the language of the Speech Recognizer ».
Donc ma requête est la suivante : pourrais tu modifier ton programme (tu ne distribues pas les sources je suppose, si ?) de façon à ce que l’on puisse choisir la langue lors du lancement, afin de fonctionner avec des grammaires dans toutes les langues. Ca rendrait tout le bazard « international », car il faut bien le dire : en voulant faire du français, on réduit énormément le public ciblé.
Merci d’avance !
Salut Alexandre,
Oui Idleman a fait une opération chirurgical sur SARAH pour l’appeler Yuri et le faire rentrer dans un Raspberry
Concernant la langue, j’ai eu plusieurs retours sur le sujet. Dernièrement un Canadien qui voulais faire du fr-CA
Il faut effectivement
1. Avoir le language pack SAPI dans la bonne langue (lié à l’OS)
2. Télécharger le language pack kinect dans la bonne langue
3. Modifier les Grammaires XML (actuellement fr-FR)
4. Dans la 2.6, dans le .ini tu peux préciser la langue du recognizer)
Bon après je n’ai pas eu le temps de "plus" tester. J’ai mis en variable tous les endroits ou il y avait des dépendances à la langue.
PS: Si si les sources sont dispo sur GitHub (lien dans la section architecture)
Bonjour,
Deux questions :
1 : Ce projet fonctionne-t-il sur XP ?
2 : Suite au précédant commentaire, fonctionne-t-il sur un Raspberry en français ?
Merci d’avance.
Je ne suis pas certain qu’il marche sous XP. Plusieurs utilisateurs ont eu des problèmes. La plateforme cible est Win7 (un utilisateur a déjà testé sur Win8)
- La partie C# nécessite Windows pour profiter des API Speech de Microsoft.
- La Partie NodeJS doit fonctionner dans un environnement linux. Il y a même un utilisateurs qui attaque directement son Serveur Web (mais ne profite pas de l’intelligence côté NodeJS).
Re-bonjour Jp,
Désolé je n’avais pas vu pour les sources. Je vais peut-être y jeter un oeil.
Car en fait, après maintes et maintes recherches sur Google, il semblerait qu’il y ai bien un problème sur Windows 7 version 64bits, qui, malgré l’installation d’autres langues pour la SAPI, ne propose toujours QUE "Anna (English – US)" dans sapi.cpl. (A moins de passer par la version qui se trouve dans SysWOW64, mais même quand je fais ça, j’ai beau choisir une langue FR [virginie] que j’ai réussi à installer, la sortie de SARAH se fera toujours en anglais, avec Anna. Autre chose étrange, j’ai installé plusieurs langues françaises, mais Hortense ne s’affiche toujours pas dans la liste. Rien à faire, je n’ai pas Hortense, il n’y a que Virginie et sa voix robotique atroce qui s’y trouve).
Pourtant je me rappelle avoir codé un "bot intelligent" pour Teamspeak qui couplait un bot AIML et la SAPI pour parler aux gens de façon vocale, et j’arrivais dans le code C# à forcer une langue de Text-To-Speech. Va falloir que je retrouve ce vieux projet pour voir comment je faisais ça, et essayer de modifier et recompiler ton code !
Bref, merci pour la réponse, quand j’aurai du temps j’essaierais de debugger tout ce bazard…
Attention, il y a des voix 32bit et 64bit, pour accéder sous Win64 aux voix 32bit il faut exécuter la ligne de commande (décrite dans le .txt): %windir%\SysWOW64\speech\SpeechUX\sapi.cpl
Bon en tout cas, avec le .ini j’arrive à configurer la reconnaissance en anglais sans problème. J’ai donc le système complet qui fonctionne en anglais (avec mon propre .php côté serveur sur un raspberry pi qui se charge de renvoyer les réponses à lire avec le TTS).
Du coup, la petite question qui me reste c’est : serait-il possible de rajouter (dans le .ini par exemple) la possibilité de choisir exactement la langue à utiliser pour le TTS ? Car pour le moment, j’ai l’impression que Windows 7 x64 retourne comme tout le monde le dit à la langue par défaut qui est "Anna (English US)". Il me resterait plus que ça à faire basculer sur une autre langue (tant pis j’utiliserai Virginie et son accent moisi…) pour faire passer le tout en français.
J’avais utilisé la fonction SelectVoice() de l’objet SpeechSynthesizer. Et visiblement j’utilisais aussi Virginie. (Au passage tu peux lister les voix installées avec GetInstalledVoices => http://msdn.microsoft.com/fr-fr/library/ms586869.aspx )
En espérant aider celles et ceux qui rencontreront ce problème de voix sur Win7 x64…
(Désolé pour le double commentaire mais j’ai pas trouvé si on pouvait éditer ses commentaires).
Justement ce qui est bizarre c’est que j’ai beau avoir installé des voix françaises Microsoft (Hortense par exemple, trouvée ici : http://www.microsoft.com/en-us/download/details.aspx?id=27224 ), elle n’apparaissent ni dans %windir%\SysWOW64\speech\SpeechUX\sapi.cpl, ni dans le sapi.cpl qui se trouve dans system32 ! Je n’ai que certaines voies US installées autrement, ainsi que la voix Virginie qui traine sur le net, qui apparaissent dans la liste de %windir%\SysWOW64\speech\SpeechUX\sapi.cpl
Ah merci pour le retour je vais noter tout cela !
Pour les voix a priori, il prends celle par défaut configuré dans Windows 32/64. Je vais voir si je peux imposer une voix via les paramètres.
Normalement tu peux, en passant à "SelectVoice()" le nom de la voix voulue. C’est juste une string qui contient le nom de la voix, et les voix installées sont récupérables avec GetInstalledVoices.
En attendant, on va dire que ma Sarah à moi elle est américaine :p. Tant mieux, ça fait encore plus film ou série de science fiction ^^
@Alexandre, j’ai fais une petite 2.6.1 pour préciser explicitement une voix dans le .ini
[...] L'objectif du Projet S.A.R.A.H est d'avoir une maison intelligente connectée à l'internet des objets un peu dans l'esprit de la série TV Eureka. Le principe est de déclencher des requêtes HTTP via:… [...]
Ca m’a l’air déja sympa, et très prometteur…. Je teste ça.
nb: je rejoins ton analyse sur les freins à l’essor de la domotique. Pour ma part, je ne m’intéresse qu’aux cartes Ip relay.
[...] Celui-ci n’est pas de moi, je vous laisse donc le découvrir sur l’excellent blog du créateur ! Je tiens d’ailleurs à le remercier pour ce projet aux innombrables possibilités. Dans [...]
[...] S.A.R.A.H. est une interface TextToSpeech développée par un français et qui repose sur les bibliothèques vocales de Windows (mouarf). [...]
JP excellent travail, J’ai testé ta solution qui me semble intéressante.
J’ai par la suite téléchargé les sources et visual C# express.
Par contre lorsque je veux compiler WSMACRO(F6) pour générer la solution, il m’indique qu’il y a 32 erreurs et 15 avertissements.
ex :
Erreur 1 Le type ou le nom d’espace de noms ‘ZXing’ est introuvable (une directive using ou une référence d’assembly est-elle manquante ?)
idem pour :
- Nlog
- BarcodeReader
- NHttp
- NAudio
- Mp3FileReader
- …
Peux-tu dire ce qu’il y a à faire et/ou tenter de ton côté de donner les étapes sur une VM
Merci
En plus j’ai commité la 2.7 RC hier ^^
Ce sont des packages externes qu’il faut installer via NuGet. Si c’est comme en Java je ne crois pas qu’il soit d’usage de commiter les libraires tiers ?
Pour une VM ?
- A priori il faut installer un Windows 7 ou 8 sur la VM
- Installer le SDK 1.6 de Kinect + le language Pack
- Dézipper et Lancer SARAH
Maintenant ce n’est pas certain de marcher.
- Je crois que depuis la 1.6 le Kinect fonctionne sur une VM
- Les lib que j’utilise sont "assez" connues
- Je ne sais pas trop au niveau de l’allocation des ressources
Merci JP, en fait j’ai installé l’ensemble hors VM sur mon PC, j’ai lier les dll par celles qui se trouvent dans le répertoire de la version exécutable.
Donc là je n’ai plus les erreurs et j’arrive à regénérer le projet et obtenir un exécutable mais lorsque je le lance immédiatement après compil depuis le rep release : WSRMacro_Kinect.exe (je n’ai pas de kinect)
il se plante et m’indique que le programme a cessé de fonctionner.
Pour le moment je n’ai rien modifié. J’ai dézippé le source puis lier les DLL manquantes.
Si d’autres personnes essayent de compiler sous seven et y arrivent je suis preneur aussi des infos.
Ah une piste:
Dans les sources WSRKinectMacro et WSRMacro il y a en commentaire
- Microsoft.Speech.* => C’est pour utiliser le code Kinect
- System.Speech.* => C’est pour utiliser le code micro
Donc en gros il commenter / décommenter l’un ou l’autre suivant ton usage
Puis le .exe généré doit s’appeler WSRMacro_Kinect.exe ou WSRMacro.exe suivant ton usage
JP,
Cela semble fonctionner, dans le code j’ai vu aussi à d’autres endroits qu’il y avait des parties commentées pour kinect et non kinect, J’ai tenté aussi de décommenter / commenter mais cela généré d’autres pb.
Il serait intéressant de définir une constante et en fonction de celle-ci activer ou désactive les portions de code.
Bon maintenant, je vais décortiquer le fonctionnement pour voir ce qu’il se passe et par où cela passe lorsque l’on parle, …
Je ne sais pas si cela est possible avec SAPI mais je voudrais voir/tenter l’auto apprentissage en utilisant les contextes.
Pour voir de quoi je parle voici quelques liens :
ECTOR : fr.wikipedia.org/wiki/ECTOR
Pyborg : http://sebastien.dailly.free.fr/pyborg.html
Il n’y a que les 2 lignes d’import des 2 fichiers à commenter le reste marche tout seul et profite de l’héritage.
Pour la partie vocale, tout est centralisé dans WSRMacro avec un SpeechEngine qui est utilisé. C’est très simple.
Pour la partie ChatterBot, c’est compliqué
- Tu peux faire de l’apprentissage simplement comme je le fais dans le plugin movie qui apprends les derniers films
- Mais ensuite pour faire un vrai chatterbot avec la complexité de la langue française faut rentrer dans les travaux de recherche de LISA, etc, … En gros des centaines de tournure de phrase. Je ne suis même pas certain que le moteur de Microsoft sache gérer.
- Dernière approche, regarde le plugin "dictionary" qui passe par GoogleSpeech pour faire la reco. Et qu’il faudrait ensuite rediriger vers un moteur tiers ou parser avec un moteur de recherche flou comme lunr.js (lucene en js)
Bref, c’est très très complexe
J’utilise déjà movie lors de son retour pour les films, il construit la grammaire à la volée.
Par contre dans movie.js je ne vois pas d’appel à movie.node.jd
Le système recherche t il automatiquement in fichier du style nom_plugin.node.js?
Oui il y a une horrible ruse pour appeler nom_plugin.node.js en retour à un script phantomjs
[...] en m’appuyant sur le projet node-freebox-sdk. Mais peut être que jpEncausse le créateur de SARAH prendra le temps de le faire. Pour rappel je quitte Free pour les raisons [...]
woow j’adore ton projet man ! la domotique c’est l’avenir et là ton projet est une sacrée avancée. mais as tu penser à un portage sous linux ?
@AnonymousFan nop, linux ne fourni pas les billes nécessaires pour faire de la reconnaissance vocale sérieuse. La partie NodeJS à été portée sur RaspberryPi je crois.
[...] L'objectif du Projet S.A.R.A.H est d'avoir une maison intelligente connectée à l'internet des objets un peu dans l'esprit de la série TV Eureka. Le principe est de déclencher des requêtes HTTP via:… [...]
[...] S.A.R.A.H. est une interface TextToSpeech développée par un français et qui repose sur les bibliothèques vocales de Windows (mouarf). [...]
[...] projet S.A.R.A.H. afin de gérer la partie vocale. Après reconnaissance d’une phrase, elle génère un script [...]
Bonjour,est ce que l’auteur a mis ce projet en Open Source ?
J’aimerai si possible recuperer pour voir si on pouvais l’adapter sous linux .
Bonjour,
Il me semble que l’auteur fournie ses sources, cependant, pour le fonctionnement de la reconnaissance vocale, il utilise les API Microsoft, impossible à porter donc (tout du moins pour la partie reco).
@UsersRpi oui j’ai mis les sources sur GitHub (http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-architecture/) en licence WTFPL (Do What The Fuck You Want To Public License)
Une personne de la communauté (Idleman) s’est amusé à porter SARAH (serveur) sous Raspberry.
Ca me semble très très compliqué pour la partie cliente qui est très dépendante des API Microsoft.
[...] S.A.R.A.H. | Encausse.net [...]
[...] geeks entre en jeu : quelqu’un y a déjà pensé et a développé un petit programme au poil, S.A.R.A.H : pas d’installation, fonctionne avec micro simple ou avec kinect (meilleur reconnaissance), mots [...]
[...] tous les projets que l’on peut trouver sur internet, il y a l’excellent projet S.A.R.A.H. de JP [...]
Superbe projet! Les fonctionnalités sont vraiment intéressantes. Et les vidéos explicatives très biens également. Continue comme ça!
Christophe
ne fonctionne pas.
il detecte ma phrase puis plante.
@sebastien je t’invite à en discuter et poster les logs sur la communauté (https://plus.google.com/u/0/communities/105964514508504667709) le problème est certainement lié à ton environnement
[...] L'objectif du Projet S.A.R.A.H est d'avoir une maison intelligente connectée à l'internet des objets un peu dans l'esprit de la série TV Eureka. Le principe est de déclencher des requêtes HTTP via:… [...]
[...] L'objectif du Projet S.A.R.A.H est d'avoir une maison intelligente connectée à l'internet des objets un peu dans l'esprit de la série TV Eureka. Le principe est de déclencher des requêtes HTTP via:… [...]
[...] Pour plus d’info : http://encausse.wordpress.com/s-a-r-a-h/ [...]
Bonjour JP ,
Bravo pour votre projet ! vous avez posé les bases d’un système prometteur,
et je vous en remerci !
en ce qui concerne le problème micro, pourquoi ne pas simplement utiliser un micro
Oreillette Bluetooth ? cela permet de régler le problème de multiple-micro , câblage, perturbation ambiante etc …
étant dans la sécurité informatique , je vais étudier votre système pour une utilisation
de sécurité serveur/réseaux passive (notification tentative intrusion scan etc..) et active (lancement antivirus, script etc … )
Bonne continuation !!!
@FLY69000 merci,
Un utilisateur de la communauté utilise une oreillette bluetooth, mais je ne suis pas fan
- Car dans ce cas autant hacker SIRI pour faire le reste
- Obligé d’avoir un truc à l’oreille, le recharger, etc, …
L’idée est vraiment d’être libre dans une pièce et poser des questions à une "entité" comme SARAH, JARVIS, JOSHUA, …
- C’est amusant de voir comment cela change les habitudes des gens
- Et le kinect est une superbe pièce de hardware vraiment très peformante
Est-il possible d’utiliser sarah comme retour d’état ? Je m’explique ma box domotique détecte une ouverture de fenetre elle exécute une requete (LUA pour la vera) pour faire parler sarah et dire que la fenêtre est ouverte.
A partir du moment ou tu peux balancer une requête à NodeJS c’est bon.
Dans l’eedomus tu as la même notion d’actionneur qui peuvent balancer une requête lors d’un événement.
Le but étant de seulement la faire parler je peux donc faire comme ce qui suit ? http://192.168.0.15:8888/?tts=ma phrase
Oui ça marchera. mais a mon avis par la suite tu auras peut-être d’autres besoins ^^
Typiquement j’ai en tête (pas encore eu le temps) de faire la même chose avec les détecteurs de présence pour tracker côté NodeJS ou sont les gens. Et du coup effectuer des actions en fonction.
Les voix Loquendo sont elles compatibles avec SARAH ?
Normalement oui si tu as la chance de pouvoir faire tourner ce produit
Il faut juste la voix ou le logiciel aussi ?
Ah tu ne l’as jamais installé ^^ Il faut les deux, si tu as une version "non officiel" c’est très compliqué à installer.
C’était plus par curiosité car c’est vrai que les voix sont vraiment meilleure.
faut-il alors modifier le code de SARAH ou il suffit de choisir la voix dans la liste comme pour Virginie ?
Il faut juste choisir dans la liste Windows.
Je t’invite à en discuter sur la communauté car je crains que les commentaires explosent sur WordPress.
Bonsoir!
)
D’abord un grand merci pour le boulot accompli
J’avoue d’entrée que je n’ai pas encore vraiment chercher comment faire, mais vous semble-t-il possible d’exécuter des requêtes SSH grâce à S.A.R.A.H?
Ca permettrai d’avoir une machine dédier en Windows et de pouvoir attaquer n’importe quel machine sur n’importe quel OS (je pense entre autre à piloter un Rpi en SSH ou mon Mac
Sinon, je suis présentement en train de préparer un plugin "Info Presse" qui lit les Unes de quotidien en ligne. Déjà fonctionnel avec "Le Monde", je vous le soumettrai dès qu’il saura lire au moins 3 magasines
@Maxime_ROSITO Cool ! hésite pas à t’inscrire sur la communauté (https://plus.google.com/u/0/communities/105964514508504667709) je mettrais ton plugin sur l’AppStore
Pour les requêtes SSH techniquement un module NodeJS doit exister. Sinon il faut mettre directement la partie serveur sur le Mac ou le RPi des gens de la communauté travaillent sur le sujet.
Bonsoir,
existe t’il des variateurs de couleur pour led RVB domotique ou un moyen de le faire,
je sais qu’il existe un module z-wave IR pour les télécommandes, mais faut encore que ce soit compatible …
Merci
Il y a les LIFX du projet KickStarter qui vont arriver et pour lesquel je ferais un plugin SARAH. Et les Philips HUE qui ont déjà leur plugin.
Sinon dans l’absolut si il y a une API pour ces machins, il doit être possible de faire un plugin.
Pour le plugin répondeur il faudrait pouvoir lire le wav si l’extension est .au car le wav a cette extension sur le gestionnaire de messagerie
Ah ? sur freemobile j’avais cru voir .wav
Je n’ai pas réfléchit à l’implémentation mais j’avais en tête de télécharger le fichier et lui mettre un nom dédié.
freemobile je sais pas. Sur freebox c’est en .au. On pourrait en effet downloader mais SARAH permet de streamer donc je pensais me passer de l’étape de download ^^
Streamer oui sauf que j’imagine qu’il y a une phase d’authentification, de session, etc, … donc le fichier risque de ne pas être accessible depuis SARAH ?
Les url pour lire les messages sont de la forme https://adsl.free.fr/ecoute_message.pl?id=%5Bclé1%5D&idt=%5Bclé2%5D&fichier=%5Bnom du fichier].au et les clés sont récupérables. Pour faire propre je suis d’accord il faudrait download le fichier peut être.
bonjour super projet en plus avec l’esprit du partage bravo.
mon problème et que quand je lance WSRKinect la petit maison en bas a droit reste si je test un script météo,allocine ou autre wsrkinect s’arrête et icon diparait; sarah ne fonctionne plus sentinel m’écrit (context): time out. j’ai test la version du projet yuri(qui utilise ton projet comme base ) avec mon serveur pas de problème de plantage, a tu une solution merci .
Salut,
Il faudrait que tu viennent en discuter sur la communauté et poster une partie des logs (qui sont dans le /bin)
J’imagine que tu as déjà checké les "en cas d’erreur" du getting started ?
bonsoir ,
J’ai trouvé le problème, framework n’était pas a jour.
Merci de la réponse rapide et de m’avoir conseillé de vérifier le "Getting Started" !
Et je compte venir discuter avec la communauté du projet !
Bonsoir,
Est ce que une kinect acheté aux usa est compatible ? genre pas de problème de driver fr etc ? merci
Bonne question, aucune idée, le seul problème que je vois c’est la prise secteur 220V
de ce coté je ne pense pas qu’il y ai de problème, le kinect possède une prise de donnée standard, après le chargeur avec usb existe sous plusieurs format de pays ?!
La prise est moulée d’un bloc donc a priori il faudra mettre un adaptateur. C’est pas une alimentation "standard" USB mais un truc tordu et propriétaire qui se branche sur le secteur et le PC.
as tu une photo ? que je puisse comparer, avant que mon pote d’Atlanta me la ramène ,
J’ai installé SARAH sur un portable vista 64bit et ca marche super, par contre je l’ai installé sur un PC fix sous seven 64, et la, il n’y a que la reconnaissance qui ne marche pas , alors que les logs ne m’indiquent pas de prob au lancement , mic marche bien le WSRMicro aussi , tts aussi …
Vérifie toutes les étapes:
http://encausse.wordpress.com/2013/05/02/sarah-getting-started/
Merci pour ce travail !
C’est exactement ce que je cherchais depuis des années !
J’en avais parler à un amis développer afin de réaliser ce travail mais celui-ci n’a jamais eu le temps.
Je vais me faire un plaisir afin de tester votre superbe réalisation et d’y apporter mes modestes commentaires