Raspberry PI ~ 09 : Créer une interface vocale

Ce post est le neuvième d’une liste de tutoriels sur le raspberry PI, cliquez ici pour accéder au sommaire ! :D

En attendant la suite de mon article sur le raspberry PI et la gestion des interrupteurs par ondes radio, je vous propose quelque chose de plus concret a vous mettre sous la dent :).

En effet si vous avez bien suivis mon article “Raspberry PI ~ 07 : Allumer/éteindre une vraie lampe OU comment faire de la domotique low cost.” vous devez pouvez allumer et éteindre une lampe grâce à votre interface web.

 

Oui mais !! On à pas toujours une interface web sous la main pour commander le raspberry PI… alors que diriez vous de tout diriger par la voix ? :D

 

Ce qu’on cherche à faire :

Moi : “Yuri, allume la lampe du salon”
Raspberry PI (oui je l’ai appelé Yuri ;p) : “jawohl mein kapitän !!” (oui je lui donne un accent allemand alors qu’il a un nom russe :p)

*Lampe du salon s’allume*

Moi : “Yuri quelle heure est il ?”

Yuri : “Il est 18h41”

Ma chérie : “Idle, arrête de jouer avec ce machin con de geek inutile, ton WAF baisse a vue d’œil”

Moi : “Yuri Insulte la“

Yuri : “L’insulte aléatoire est : espèce de cheveux sans racine”

 

Bon okay on pourrait se passer d’aller aussi loin mais on vas le faire quand même, le but étant d’apprendre à simuler et a personnaliser une personnalité qui comprends vos ordres, effectue une action (contrôler une lampe, envoyer une requête, faire une recherche sur le web, dire un truc inutile etc…) et qui vous réponds en prime.

Tenez une petite vidéo horriblement mal filmée à base de canard albinos et de drogue dure pour vous prouver que je n’affabule pas :) :

 

 

https://vimeo.com/52886695

 

 

Bref nous allons simuler une IA type Jarvis dans le film “Iron Man” ou Sarah dans la génialissime série “Eureka”, je dis bien simuler puisqu’au final, il n’y aura aucune intelligence derrière, juste une “bête machine à réagir” (mais c’est déjà pas mal pour cette fois :p).

Ce qu’il vous faut :

  1. Un pc avec windows 7 ou vista minimum
  2. Un micro (celui de votre portable conviendra très bien)
  3. Votre raspberry PI configuré selon le tutoriel “Raspberry PI ~ 07 : Allumer/éteindre une vraie lampe OU comment faire de la domotique low cost.

 

Le principe :

Votre PC vas utiliser(via notre petit programme) la librairie Speech To Text de Microsoft qui permet de faire de la reconnaissance vocale (le pc vous écoute), si la commande vocale est reconnue, il vas envoyer une requête web (http) à votre raspberry PI

 

Votre raspberry PI vas recevoir la requête et effectuer l’action : ouvrir/fermer un port gpio (donc allumer/éteindre une lampe ou tout autre objet électrique raccordé), ou encore récupérer l’heure serveur et vous la retourner, aller chercher les films qui passent au ciné en ce moment etc… et retourner un texte de réponse a la librairie Text To speech de Windows qui fait de la synthèse vocale (le pc vous parle).

 

Bref rien de sorcier en somme, certains déplorerons l’utilisation d’une librairie microsoft: c’est vrai que c’est bof, mais cette librairie a plusieurs avantages :

  • elle fonctionne bien
  • elle est installé par défaut sur tous les windows vista/seven et +  (donc accessible à beaucoup de gens)
  • elle ne nécessite pas internet
  • elle fait la synthèse ET la reconnaissance vocale
  • elle est configurable avec de simples fichiers XML
  • il est possible d’avoir plusieurs voix et plusieurs langues gratuitement

 

Et croyez moi pour trouver l’équivalent sous linux il faut se lever tôt (des lib comme sphinx et autres je ne veux plus en entendre parler, quand je dis lampe elle comprend canard albinos, c’est drôle les 10 premières minutes…)

 

Okay mais il vas falloir développer un truc ne C# pour adapter tout ça non?

C’est la que le génie de l’un de nos prédécesseur 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 clés configurable avec de simple fichier xml etc…

Le soucis c’est que le mec utilise un serveur nodejs, et qu’il ne manœuvre aucun rpi avec, donc j’ai modifié et surtout beaucoup allégé S.A.R.A.H pour créer Y.U.R.I qui fonctionne avec apache, et qui est un peu plus léger.

nb : Je tiens a préciser que le code source est intégralement de sarah, seuls quelques binaires (nodejs standalone, phantom etc..) ont été enlevés et quelques xml modifiés

Assez discutaillé : au boulot !!

 

Installation de Y.U.R.I sur le PC

  • Téléchargez Y.U.R.I en cliquant ici
  • Décompressez le .zip
  • Ouvrez le dossier ./macroscontenant les XML de configuration et éditez le fichier rpi.xml
  • Modifiez l’adresse http://mon.rpi.fr/yuri.php par votre adresse de serveur rpi+/yuri.php ( ex : http://192.168.0.47/yuri.php )

Nb : Vérifiez que votre pc Windows et votre raspberry PI sont bien sur le même réseau et que vous pouvez bien accéder aux pages web de votre raspberry PI depuis le navigateur web de votre pc Windows

Installation de Y.U.R.I sur le raspberry PI

  • Téléchargez le script yuri.php en cliquant ici
  • Décompresser et placez le script dans le répertoire web de votre raspberry PI (/var/www par défaut)
  • Vérifiez que le port GPIO 7 est bien branché a votre carte relais comme définis dans le tutoriel 7 de ce blog.

Test du programme

  • Sur votre PC, Cliquez sur l’exécutable micro.exe à la racine du dossier pour lancer Y.U.R.I
  • Prononcez « Yuri, allume la lampe du salon », YURI vas bien envoyer une requête vers votre page de Rapsberry PI qui vas allumer votre lampe

 

Et voila !! Enjoy !!

 

Pour ajouter des action vous même, il vous suffira de créer un nouveau fichier xml avec la requête et les ordres associés, et de créer l’action qui correspond dans yuri.php, vous pourrez ainsi pousser les choses très loin, le concepteur de S.A.R.A.H a créé plusieurs requêtes d’exemples pour récupérer la météo, gérer un google agenda, trouver les films sur allociné etc…

Je suis tout à vous pour d’éventuelles (voir certaines) questions et commentaires :)

 


Follow us on Facebook

www.webpoint.fr
webpoint.e-monsite.com  www.prestatic.fr  www.epart.fr/demo 4  www.support-prestashop.fr  www.maxibazare.com  www.conseils-web.fr  referencement-annuaire-web.fr  facebook.com/Webpointfr-622797134842872  facebook.com/prestatic.fr  webpointfr.simplesite.com  webpoint.e-monsite.com  contact29364.wixsite.com/www-webpoint-fr  webpoint.space  webpoint.byethost7.com  akimania.webnode.fr  Dropshipping shopify Retour