{"id":1936,"date":"2021-07-05T10:34:58","date_gmt":"2021-07-05T08:34:58","guid":{"rendered":"http:\/\/miniprojets.net\/?p=1936"},"modified":"2022-12-17T17:08:55","modified_gmt":"2022-12-17T16:08:55","slug":"installation-de-rhasspy-avec-jeedom-un-assistant-vocal-open-source-et-free-software-adapte-a-la-domotique","status":"publish","type":"post","link":"https:\/\/miniprojets.net\/index.php\/2021\/07\/05\/installation-de-rhasspy-avec-jeedom-un-assistant-vocal-open-source-et-free-software-adapte-a-la-domotique\/","title":{"rendered":"Installation de Rhasspy avec Jeedom, un assistant vocal Open Source et Free Software adapt\u00e9 \u00e0 la domotique"},"content":{"rendered":"\n<p>Dans le cadre de mon stage au sein du G2ELab, j&#8217;\u00e9tudie actuellement les assistants vocaux afin de rendre plus interactif et \u00e9ducatif la gestion de l&#8217;\u00e9nergie. J&#8217;\u00e9volue sur la plateforme de d\u00e9monstration Pr\u00e9dis-MHI situ\u00e9e au sein du b\u00e2timent GreenER.<\/p>\n\n\n\n<p>Dans cet article, nous allons apprendre \u00e0 installer l&#8217;assistant vocal open source Rhasspy sur une RaspberryPi et \u00e0 le connecter \u00e0 Jeedom pour pouvoir g\u00e9rer sa maison intelligemment. On introduira le sujet sur les assistants vocaux de mani\u00e8re g\u00e9n\u00e9rale et \u00e0 la suite de l&#8217;introduction d\u00e9bute le tutoriel d&#8217;installation. Vous pouvez vous rendre directement au tutoriel en cliquant <a href=\"#Tutoriel-Installation\">ici<\/a>.<\/p>\n\n\n\n<h2 class=\"has-text-align-left wp-block-heading\">Introduction <\/h2>\n\n\n\n<p class=\"has-text-align-left\">Les assistants vocaux sont des outils, des services informatiques permettant un \u00e9change via une communication orale et audio entre des utilisateurs et leurs appareils connect\u00e9s. L\u2019usage est tr\u00e8s utile dans la domotique et l\u2019habitat intelligent qui \u00ab&nbsp;La domotique est l\u2019ensemble des techniques de l&#8217;\u00e9lectronique, de physique du b\u00e2timent, d&#8217;automatisme, de l&#8217;informatique et des t\u00e9l\u00e9communications utilis\u00e9es dans les b\u00e2timents, plus ou moins \u00ab interop\u00e9rables \u00bb et permettant de centraliser le contr\u00f4le des diff\u00e9rents syst\u00e8mes et sous-syst\u00e8mes de la maison et de l&#8217;entreprise (chauffage, volets roulants, porte de garage, portail d&#8217;entr\u00e9e, prises \u00e9lectriques, etc.). La domotique vise \u00e0 apporter des solutions techniques pour r\u00e9pondre aux besoins de confort (gestion d&#8217;\u00e9nergie, optimisation de l&#8217;\u00e9clairage et du chauffage), de s\u00e9curit\u00e9 (alarme) et de communication (commandes \u00e0 distance, signaux visuels ou sonores, etc.) que l&#8217;on peut retrouver dans les maisons, les h\u00f4tels, les lieux publics, etc.&nbsp;\u00bb. <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Domotique\" target=\"_blank\" rel=\"noreferrer noopener\">[1]<\/a><\/p>\n\n\n\n<p>Ces assistants qui ont comme leur nom l\u2019indique pour but d\u2019assister et permettent de faciliter la vie usagers en s\u2019int\u00e9grant parfaitement dans l\u2019environnement quotidien. Les assistants vocaux peuvent soit r\u00e9pondre \u00e0 des questions simples que lui posent l\u2019utilisateur (ex&nbsp;: \u00ab&nbsp;Quelle heure est-il&nbsp;?&nbsp;\u00bb, \u00ab&nbsp;Quelle est la m\u00e9t\u00e9o \u00e0 Grenoble&nbsp;?&nbsp;\u00bb, etc.) mais ils peuvent \u00e9galement effectuer des t\u00e2ches et donner des ordres \u00e0 des appareils \u00e9lectroniques connect\u00e9s au r\u00e9seau de l\u2019assistant (ex&nbsp;: allumer une lampe, fermer les volets, jouer de la musique sur une enceinte, etc.).<\/p>\n\n\n\n<p>Un assistant vocal est une interface homme-machine (ou homme-environnement) interactive qui permet d\u2019acqu\u00e9rir un signal (reconnaissance vocale), de le traiter, et d\u2019en renvoyer un autre (action \u00e0 effectuer, r\u00e9ponse \u00e0 l\u2019humain via un haut-parleur)<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Fonctionnement d&#8217;un assistant vocal par \u00e9tape : <\/h3>\n\n\n\n<ol class=\"wp-block-list\"><li>L\u2019utilisateur prononce un mot cl\u00e9 et \u00ab r\u00e9veille \u00bb l\u2019assistant. Ce mot cl\u00e9 utilise un algorithme interne de reconnaissance de sch\u00e9ma vocaux et ne n\u00e9cessitent donc pas d\u2019acc\u00e8s \u00e0 internet. Ensuite un canal d\u2019\u00e9coute s\u2019ouvre et le contenu audio est transmis \u00e0 la vol\u00e9e (stream).<\/li><li>Dans bien des cas, si le traitement est r\u00e9alis\u00e9 de fa\u00e7on distante, une seconde v\u00e9rification de la prononciation du mot-cl\u00e9 est faite c\u00f4t\u00e9 serveur afin de limiter les d\u00e9clenchements intempestifs.<\/li><li>\u00c9ventuellement, et s\u2019il a \u00e9t\u00e9 pr\u00e9alablement enr\u00f4l\u00e9 \u2013c\u2019est-\u00e0-dire si un apprentissage de ses caract\u00e9ristiques vocales a \u00e9t\u00e9 r\u00e9alis\u00e9 \u00e0 partir d\u2019\u00e9chantillons de voix qu\u2019il aura produits \u2013 le locuteur peut \u00eatre identifi\u00e9 (speaker identification).<\/li><li>L\u2019utilisateur \u00e9nonce sa requ\u00eate et celle-ci est transmise aux instances de traitement. Il peut s\u2019agir de serveurs distants, ou dans le cas d\u2019un traitement local, de ressources mat\u00e9rielles embarqu\u00e9es dans l\u2019\u00e9quipement. La s\u00e9quence de parole prononc\u00e9e est alors automatiquement transcrite <strong>(speech to text).<\/strong><\/li><li>\u00c0 l\u2019aide de technologie de traitement automatique du langage naturel <strong>(TALN)<\/strong>, la parole est interpr\u00e9t\u00e9e. Les intentions du message sont extraites et les variables d\u2019informations (slots) identifi\u00e9es.<\/li><li>Un gestionnaire de dialogue permet de pr\u00e9ciser le sc\u00e9nario d\u2019interaction \u00e0 mettre en \u0153uvre avec l\u2019utilisateur en apportant le sch\u00e9ma de r\u00e9ponse appropri\u00e9.<\/li><li>Une r\u00e9ponse adapt\u00e9e \u00e0 la requ\u00eate de l\u2019utilisateur est identifi\u00e9e et le cas \u00e9ch\u00e9ant, des ressources distantes sont utilis\u00e9es : base de connaissance publiquement accessibles (encyclop\u00e9die en ligne, etc.) ou par authentification (compte bancaire, application musicale, compte client pour achat en ligne, etc.).<\/li><li>Les variables d\u2019informations (slots) sont remplies avec les connaissances r\u00e9cup\u00e9r\u00e9es.<\/li><li>Une phrase de r\u00e9ponse est cr\u00e9\u00e9e et\/ou une action est identifi\u00e9e (monter les stores, augmenter la temp\u00e9rature, jouer un morceau de musique, r\u00e9pondre \u00e0 une question, etc.).<\/li><li>Cette phrase est synth\u00e9tis\u00e9e <strong>(text to speech)<\/strong> et\/ou l\u2019action \u00e0 op\u00e9rer est envoy\u00e9e \u00e0 l\u2019\u00e9quipement.<\/li><li>La r\u00e9ponse et\/ou la commande est mise en \u0153uvre par l\u2019\u00e9quipement embarquant l\u2019assistant vocal.<\/li><li>L\u2019assistant vocal repasse en veille.<br><br><strong>Un assistant vocal n\u2019est donc pas \u00e0 proprement parler \u00ab intelligent \u00bb. Les \u00e9l\u00e9ments de connaissance proviennent de sources tierces : donn\u00e9es en libre acc\u00e8s (encyclop\u00e9dies en ligne), bases de donn\u00e9es contenant des informations renseign\u00e9es par l\u2019utilisateur (son agenda, son carnet d\u2019adresse, etc.), etc. <a rel=\"noreferrer noopener\" href=\"https:\/\/www.cnil.fr\/sites\/default\/files\/atoms\/files\/cnil_livre-blanc-assistants-vocaux.pdf\" target=\"_blank\">[<\/a><a href=\"https:\/\/www.cnil.fr\/sites\/default\/files\/atoms\/files\/cnil_livre-blanc-assistants-vocaux.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">2<\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/www.cnil.fr\/sites\/default\/files\/atoms\/files\/cnil_livre-blanc-assistants-vocaux.pdf\" target=\"_blank\">]<\/a><\/strong><\/li><\/ol>\n\n\n\n<p>Les assistants vocaux sont pourtant tous diff\u00e9rents, ils d\u00e9pendent tous des algorithmes et des logiciels utilis\u00e9s pour les faire fonctionner. Chacun de ces programmes peuvent \u00eatre diff\u00e9rents&nbsp;: programme de d\u00e9tection du mot cl\u00e9, la reconnaissance vocale effectu\u00e9 par des algorithmes de Speech To Text, le traitement des donn\u00e9es faites par des algorithmes de Machine Learning appliqu\u00e9es \u00e0 des base des donn\u00e9es, la cr\u00e9ation de la commande ou action \u00e0 effectuer, le calcul de la r\u00e9ponse \u00e0 donner, et la traduction de cette r\u00e9ponse en action et\/ou vocal par un Text-To-Speech.<\/p>\n\n\n\n<p>Selon le cr\u00e9ateur d\u2019assistant vocaux, tout peut \u00eatre cr\u00e9\u00e9e par le cr\u00e9ateur\/d\u00e9veloppeur de l\u2019assistant vocal (c\u2019est le cas des GAFAMs) ou alors passer par des programmes d\u00e9j\u00e0 existants qui sont Open Source ou alors utilisable gr\u00e2ce \u00e0 des API.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Comparatif entre les assistants vocaux libres et non-libres<\/h3>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table><tbody><tr><td><strong>Type d&#8217;assistants vocaux<\/strong><\/td><td><strong>Les Assistants vocaux &#8220;non-libres<\/strong>&#8220;<\/td><td><strong>Les assistants vocaux &#8220;libres&#8221;<\/strong><\/td><\/tr><tr><td><strong>Descriptif<\/strong><\/td><td>Les Assistants vocaux &#8220;non-libres&#8221; les plus utilis\u00e9s sont les assistants d\u00e9velopp\u00e9s par les GAFAM (Google Assistant, Siri de Apple et Cortana d\u2019Amazon -&gt; liste non-exhaustive).&nbsp;&nbsp;<\/td><td>Les assistants vocaux &#8220;libres&#8221; sont des assistants vocaux qui peuvent \u00eatre librement exploit\u00e9s ou \u00e0 minima analys\u00e9 (transparence du code).&nbsp;&nbsp;<\/td><\/tr><tr><td><strong>La propri\u00e9t\u00e9 (Libre ou priv\u00e9es, transparence, base de donn\u00e9es)<\/strong><\/td><td>Les assistants vocaux de cette cat\u00e9gorie-l\u00e0 appartiennent \u00e0 des grands groupes du num\u00e9rique (Google, Amazon, Apple, etc.), ils sont leur propri\u00e9t\u00e9 et donc ne sont pas libre d\u2019utilisation. Ces entreprises-l\u00e0 se veulent transparente sur le fonctionnement de leur assistant mais n\u2019en reste pas n\u00e9anmoins opaque sur le code source qui n\u2019est pas exploitable ou analysable. De plus, ces grands groupes ont le net avantage de poss\u00e9der des bases de donn\u00e9es gigantesques leur permettant d\u2019obtenir une qualit\u00e9 de produit tr\u00e8s importante.<\/td><td>Les assistants vocaux de cette cat\u00e9gorie-l\u00e0 sont libres et permettent au minimum de pouvoir \u00eatre analys\u00e9s (sans \u00eatre modifi\u00e9). Et la plupart sont des logiciels qui sont totalement modifiables. La transparence est totale.<br>Le probl\u00e8me majoritaire est que ce sont souvent des logiciels d\u00e9velopp\u00e9s par des entreprises beaucoup moins influentes que les GAFAM et qui n\u2019ont pas les avantages de poss\u00e9der des bases de donn\u00e9es gigantesques. Beaucoup de ces assistants libres utilisent les API de reconnaissance vocale des grands groupes (comme Google Speech API ou Bing Speech API).<\/td><\/tr><tr><td><strong>La confidentialit\u00e9 (Exploitation des donn\u00e9es, l\u2019\u00e9coute, l\u2019anonymat, s\u00e9curit\u00e9 des donn\u00e9es, etc.)<\/strong><\/td><td>La confidentialit\u00e9 de ces assistants vocaux est dite priv\u00e9es, que les donn\u00e9es r\u00e9cup\u00e9r\u00e9es sont s\u00e9curis\u00e9es et prot\u00e9g\u00e9es, qu\u2019elles ne servent qu\u2019\u00e0 l\u2019am\u00e9lioration du logiciel. De plus, les assistants vocaux ne sont pas cens\u00e9s \u00e9couter en ligne jusqu\u2019\u00e0 la d\u00e9tection du mot cl\u00e9. Cependant, diff\u00e9rents scandales ont \u00e9clat\u00e9 accusant les entreprises d\u2019avoir \u00e9cout\u00e9 des utilisateurs \u00e0 leur insu.<\/td><td>La confidentialit\u00e9 de ces assistants d\u00e9pend beaucoup des programmes utilis\u00e9s. Beaucoup de ces assistants vocaux sont l\u2019assemblage de plusieurs programmes (STT, TTS, Database) qui selon leur provenance assure une confidentialit\u00e9 des donn\u00e9es ou non. Si le programme de reconnaissance vocale est l\u2019API de Google, les donn\u00e9es seront r\u00e9cup\u00e9r\u00e9es par Google.<br>Beaucoup de programme peuvent fonctionner off-line ce qui pr\u00e9sentent un certain avantage mais l\u2019inconv\u00e9nient d\u2019\u00eatre bien moins efficace, pr\u00e9cis et peu \u00e9volutif.<\/td><\/tr><tr><td><strong>L\u2019accessibilit\u00e9 tarifaire (les assistants sont en tant que tel gratuits mais n\u00e9cessitent d\u2019avoir des appareils pouvant les exploiter qui eux ont un co\u00fbt)<\/strong><\/td><td>Les assistants sont gratuits cependant ils n\u00e9cessitent l\u2019achat d\u2019une enceinte pour pouvoir leur parler de plus, le nombre d\u2019appareils fonctionnant avec est limit\u00e9 par les protocoles impos\u00e9s par les entreprises. Ce qui renforce le co\u00fbt car pour un usage en domestique, l\u2019achat est guid\u00e9 par la compatibilit\u00e9.<\/td><td>Les assistants sont gratuits cependant ils n\u00e9cessitent l\u2019achat d\u2019un appareil pour l\u2019impl\u00e9menter, beaucoup de ces assistants sont l\u00e9gers et peuvent s\u2019impl\u00e9menter dans un Raspberry Pi. Pour un usage domestique, il est beaucoup plus simple d\u2019utiliser les composants comme on veut. Que \u00e7a soit des produits d\u00e9j\u00e0 en vente sur les march\u00e9s ou que \u00e7a soit de cr\u00e9er ses propres appareils connect\u00e9s avec capteurs etc.<\/td><\/tr><tr><td><strong>La facilit\u00e9 d\u2019utilisation (Est-ce que l\u2019assistant est simple \u00e0 mettre en place, est ce que le compl\u00e9ter par des appareils connect\u00e9s est simple (kit d\u00e9j\u00e0 tout pr\u00eat ?)<\/strong><\/td><td>C\u2019est surement l\u2019avantage premier de ce genre de logiciel non libre, c\u2019est la facilit\u00e9 d\u2019utilisation et de mise en place. Tout est guid\u00e9, ces assistants vocaux sont parfaits pour des personnes non-f\u00e9rus d\u2019informatique et d\u2019\u00e9lectronique.&nbsp;<\/td><td>Ces logiciels sont souvent plus durs \u00e0 mettre en place. Il est n\u00e9cessaire d\u2019avoir quelques connaissances de base en informatique, \u00e9lectronique\/domotique. Les assistants libres les plus c\u00e9l\u00e8bres sont relativement simple (ex : MyCroft) mais d\u2019autres comme OpenJarvis sont beaucoup moins accessible au grand public.<\/td><\/tr><tr><td><strong>Modifiable et modulable (Peuvent-ils \u00eatre modifi\u00e9s, modul\u00e9s, personnalis\u00e9s ?)<\/strong><\/td><td>Ces logiciels sont difficilement voire carr\u00e9ment impossibles \u00e0 modifier et \u00e0 personnaliser.&nbsp; Les entreprises ont quand m\u00eame chang\u00e9 un peu leur politique en d\u00e9voilant des API que les d\u00e9veloppeurs exploitent pour cr\u00e9er leurs propres modules. Cependant, ces modules sont limit\u00e9s par l\u2019API fournie et donc d\u00e9pendante de la volont\u00e9 de l\u2019entreprise.<\/td><td>Ces logiciels sont totalement modulable gr\u00e2ce \u00e0 la transparence dont fait par les cr\u00e9ateurs. De plus, cette libert\u00e9 permet de moduler l\u2019utilisation quasi \u00e0 volont\u00e9.&nbsp;<\/td><\/tr><tr><td><strong>Protocole d\u2019utilisation (WiFi)<\/strong><\/td><td>Ces assistants vocaux n\u00e9cessitent une connexion internet pour fonctionner (mis \u00e0 part la d\u00e9tection de mots cl\u00e9s.&nbsp;<\/td><td>Ces assistants vocaux fonctionnent pour la plupart \u00e0 l\u2019aide de connexion internet, mais cela n\u2019est pas syst\u00e9matique. (Rappel : certains programmes de reconnaissance vocale ou autre peut fonctionner off-line).<br>De plus, les capteurs et appareils connect\u00e9s peuvent utiliser d\u2019autres protocoles de communication (bluetooth, Z-wave, EnOcean).<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:104px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Comparatif entre les assistants vocaux Open Source <strong><em>(Cliquez sur l&#8217;image pour la voir en grand)<\/em><\/strong><\/h3>\n\n\n\n<p>Comparatif de diff\u00e9rents assistants vocaux Open Source (MyCroft, Jasper, S.A.R.A.H, OpenJarvis, Linto, Rhasspy). <strong>Pour voir l&#8217;image, cliquez dessus.<\/strong><\/p>\n\n\n\n<p>Nous avons choisi de travailler sur Rhasspy dans un premier temps car il s&#8217;agissait de l&#8217;assistant vocal le mieux document\u00e9, le plus accessible avec beaucoup de possibilit\u00e9s de personnalisation, et un plugin pour Jeedom.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><a href=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/Comparatif-Assistants-Vocaux-Open-Source-1-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/Comparatif-Assistants-Vocaux-Open-Source-1-1024x470.jpg\" alt=\"\" class=\"wp-image-2068\" width=\"1450\" height=\"665\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/Comparatif-Assistants-Vocaux-Open-Source-1-1024x470.jpg 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/Comparatif-Assistants-Vocaux-Open-Source-1-300x138.jpg 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/Comparatif-Assistants-Vocaux-Open-Source-1-768x352.jpg 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/Comparatif-Assistants-Vocaux-Open-Source-1-1536x704.jpg 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/Comparatif-Assistants-Vocaux-Open-Source-1-2048x939.jpg 2048w\" sizes=\"auto, (max-width: 1450px) 100vw, 1450px\" \/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div style=\"height:104px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"has-text-align-center wp-block-heading\" id=\"Tutoriel-Installation\">Tutoriel d&#8217;installation <\/h1>\n\n\n\n<p><strong>Sommaire :<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><a href=\"#Mat\u00e9riel\">Mat\u00e9riel<\/a><\/li><li><a href=\"#Installation-RPI-OS-LITE\" data-type=\"internal\" data-id=\"#Installation-RPI-OS-LITE\">Installation de RaspberryPi OS Lite<\/a><\/li><li><a href=\"#Installation-de-Rhasspy\" data-type=\"internal\" data-id=\"#Installation-de-Rhasspy\">Installation de Rhasspy<\/a><\/li><li><a href=\"#Configuration-de-Rhasspy\" data-type=\"internal\" data-id=\"#Configuration-de-Rhasspy\">Configuration de Rhasspy<\/a><\/li><li><a href=\"#Installation-et-Configuration-de-Jeedom\">Installation et configuration de Jeedom<\/a><\/li><li><a href=\"#Liaison-entre-Rhasspy-et-Jeedom\">Liaison entre Rhasspy et Jeedom<\/a><\/li><li><a href=\"#Usages\">Usages<\/a><\/li><\/ol>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"Mat\u00e9riel\">1. Mat\u00e9riel <\/h2>\n\n\n\n<p>Le mat\u00e9riel n\u00e9cessaire est le suivant :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Une RaspberryPi (RaspberryPi 4 dans notre cas)<\/li><li>Une carte SD (Minimum 16GB)<\/li><li>Un microphone USB (Plug and Play) (ou un autre type de microphone mais pas de configuration d\u00e9taill\u00e9e ici)<\/li><li>Un Haut Parleur (Ici, prise Jack 3.5mm)<\/li><\/ul>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"Installation-RPI-OS-LITE\">2. Installation de RaspberryPi OS Lite<\/h2>\n\n\n\n<p>Pour installer l&#8217;assistant vocal Rhasspy, il faut d\u00e9j\u00e0 installer une image adapt\u00e9e sur la RaspberryPi . (Dans notre cas, nous installons l&#8217;image RaspberryPi OS Lite (32-Bits). On peut pr\u00e9parer la carte SD sous n&#8217;importe quel OS, voici la proc\u00e9dure \u00e0 suivre sous Windows, ou sous Linux : <\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Sous Windows :<\/h3>\n\n\n\n<h5 class=\"wp-block-heading\">Installation de l&#8217;image <\/h5>\n\n\n\n<p>Dans un premier temps, il faut installer RaspberryPi Imager <a rel=\"noreferrer noopener\" href=\"https:\/\/www.raspberrypi.org\/software\/\" target=\"_blank\">ici<\/a> : <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-24-1024x444.png\" alt=\"\" class=\"wp-image-1950\" width=\"499\" height=\"215\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-24-1024x444.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-24-300x130.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-24-768x333.png 768w\" sizes=\"auto, (max-width: 499px) 100vw, 499px\" \/><\/figure><\/div>\n\n\n\n<p>Ensuite, on l&#8217;installe puis on ex\u00e9cute le logiciel.<\/p>\n\n\n\n<p>On doit arriver sur cette interface : <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-25.png\" alt=\"\" class=\"wp-image-1951\" width=\"645\" height=\"436\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-25.png 679w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-25-300x203.png 300w\" sizes=\"auto, (max-width: 645px) 100vw, 645px\" \/><figcaption><em>Logiciel RaspberryPi Imager<\/em><\/figcaption><\/figure><\/div>\n\n\n\n<p>Cliquez sur <em><strong>Choisissez l&#8217;OS<\/strong><\/em> puis sur <strong><em>Raspberry Pi OS (Other)<\/em><\/strong> puis sur <em><strong>Raspberry PI OS Lite (32-Bits)<\/strong><\/em>.<\/p>\n\n\n\n<p>Maintenant ins\u00e9rez votre carte SD puis cliquez sur <em><strong>Choisissez le stockage<\/strong><\/em> et cliquez sur votre Carte SD<\/p>\n\n\n\n<p>Enfin cliquez sur <strong><em>Ecrire<\/em><\/strong> <\/p>\n\n\n\n<p>Puis patientez jusqu&#8217;\u00e0 la fin de l&#8217;installation.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sous Linux (Ubuntu x86) <\/h3>\n\n\n\n<p>T\u00e9l\u00e9charger Raspberry Pi Imager dans le terminal : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>wget https:\/\/downloads.raspberrypi.org\/imager\/imager_latest_amd64.deb<\/p><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>dpkg -i imager_latest_amd64.deb<\/p><\/blockquote>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Autorisation de la commande par SSH et activation du Wifi <\/h3>\n\n\n\n<p>Une fois l&#8217;installation termin\u00e9e, rendez vous dans votre <strong><em>Gestionnaire de fichier<\/em><\/strong>, puis allez dans le volume de votre carte SD nomm\u00e9e <strong><em>boot <\/em><\/strong>(dans notre cas boot (E:) ) <\/p>\n\n\n\n<p>-&gt; Cr\u00e9er un nouveau fichier -&gt; Document Texte -&gt; nommez le ssh et supprimer .txt (enlevez l&#8217;extension).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"365\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-28-1024x365.png\" alt=\"\" class=\"wp-image-1955\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-28-1024x365.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-28-300x107.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-28-768x274.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-28.png 1267w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Vous devriez avoir un fichier comme ceci : <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"30\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-29.png\" alt=\"\" class=\"wp-image-1956\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-29.png 720w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/06\/image-29-300x13.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<p>Vous avez maintenant autoriser l&#8217;activation du SSH au d\u00e9marrage de la RaspberryPi.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Maintenant, on va permettre \u00e0 la RaspberryPi  de se connecter \u00e0 internet (\u00e0 la Wifi) au d\u00e9marrage :<\/h5>\n\n\n\n<p>De la m\u00eame mani\u00e8re, cr\u00e9ez un nouveau fichier dans le volume <em><strong>boot<\/strong><\/em> que vous nommez cette fois ci <code><kbd><span class=\"has-inline-color has-vivid-cyan-blue-color\">wpa_supplicant.conf<\/span><\/kbd> <\/code>(enlevez l&#8217;extension .txt).<\/p>\n\n\n\n<p>Ouvrez le avec un \u00e9diteur de texte et copiez ce texte : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>ctrl_interface=DIR=\/var\/run\/wpa_supplicant GROUP=netdev <\/code><br><code>update_config=1 <\/code><br><code>country=&lt;Insert 2 letter ISO 3166-1 country code here&gt; <\/code><br><code>network={<\/code><br><code> ssid=\"&lt;Name of your wireless LAN&gt;\"<\/code><br><code> psk=\"&lt;Password for your wireless LAN&gt;\"<\/code><br><code>}<\/code><\/p><\/blockquote>\n\n\n\n<p>En rempla\u00e7ant par vos valeurs : <\/p>\n\n\n\n<p class=\"has-small-font-size\"><em>Exemple : <\/em><br><code>ctrl_interface=DIR=\/var\/run\/wpa_supplicant GROUP=netdev<\/code><br><code>update_config=1<\/code><br><code>country=FR<\/code><br><code>network={<\/code><br><code>ssid=\"NomDeMaBoxInternet\"<\/code><br><code>psk=\"MotDePasseDeMaBoxInternet\"<\/code><br><code>}<\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Enrgistrez le fichier, retirez la carte SD, ins\u00e9rez la dans votre RaspberryPi et allumez la.<\/p>\n\n\n\n<p>Voil\u00e0, vous avez install\u00e9 l&#8217;image RaspberryPi OS Lite (32-Bits) en autorisant la connexion SSH et en actiavant la Wifi. <br>Vous n&#8217;avez plus qu&#8217;\u00e0 la contr\u00f4ler par SSH (ou via un Moniteur HDMI + un clavier). <\/p>\n\n\n\n<p>Pour le SSH, vous avez besoin de l&#8217;adresse IP de la carte Raspberry PI. Il y a plusieurs solutions, soit vous acc\u00e9der \u00e0 l&#8217;interface de votre routeur <em>(souvent 192.168.1.1 ou 192.168.0.1 dans votre barre de recherche URL de votre navigateur Web)<\/em> et cherchez dans les appareils connect\u00e9s la carte Raspberry Pi et vous r\u00e9cup\u00e9rez son adresse IP <em>(du plus souvent du type 192.168.1.XX)<\/em>. Soit vous scannez les appareils connect\u00e9s gr\u00e2ce \u00e0 des scanners IP <em>(Ex : Advanced IP Scanner)<\/em>. Soit vous avait un moniteur HDMI, et au d\u00e9marrage de la raspberryPi, lorsque l&#8217;\u00e9cran de connexion appara\u00eet, remonter dans les lignes jusqu&#8217;\u00e0 voir apparaitre <strong>&#8220;My IP adress is &#8230;&#8221;<\/strong><\/p>\n\n\n\n<p>Une fois l&#8217;adresse IP connue, vous n&#8217;avez plus qu&#8217;a vous connecter en SSH avec la commande :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>ssh pi@&lt;adresseIPRaspberryPI&gt; <\/code><em>(Ex : ssh pi@192.168.1.13)<\/em><\/p><\/blockquote>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"Installation-de-Rhasspy\">3. Installation de Rhasspy <\/h2>\n\n\n\n<p>Vous pouvez retrouver la documentation officielle de Rhasspy <a href=\"https:\/\/rhasspy.readthedocs.io\/en\/latest\/\">i<\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/rhasspy.readthedocs.io\/en\/latest\/\" target=\"_blank\">ci<\/a> (d\u00e9taill\u00e9e, mais en anglais).<br><\/p>\n\n\n\n<p>Nous allons maintenant proc\u00e9der \u00e0 l&#8217;installation de Rhasspy sur la RaspberryPi fra\u00eechement configur\u00e9e.<\/p>\n\n\n\n<p>A partir du terminal de commande, rentrez la commande suivante : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>$ curl -sSL https:\/\/get.docker.com | sh<\/code><\/p><\/blockquote>\n\n\n\n<p>Une fois que Docker est install\u00e9, on rajoute l&#8217;utilisateur Pi au groupe Docker comme ceci : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>$ sudo usermod -aG docker pi<\/code><\/p><\/blockquote>\n\n\n\n<p>Puis on red\u00e9marre la RaspberryPi :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>$ sudo reboot<\/code><\/p><\/blockquote>\n\n\n\n<p>Une fois, la Raspberry Pi red\u00e9marr\u00e9e, on lance la commande : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>$ docker pull rhasspy\/rhasspy<\/code><\/p><\/blockquote>\n\n\n\n<p>Une fois que l&#8217;image Rhasspy est t\u00e9l\u00e9charg\u00e9e et extraite, on va proc\u00e9der \u00e0 son installation avec la longue commande ci-dessous : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>$ docker run -d \\ <\/code><br><code>-p 12101:12101 \\ <\/code><br><code>--name rhasspy \\ <\/code><br><code>--restart unless-stopped \\ <\/code><br><code>-v \"$HOME\/.config\/rhasspy\/profiles:\/profiles\" \\ <\/code><br><code>-v \"\/etc\/localtime:\/etc\/localtime:ro\" \\ <\/code><br><code>--device \/dev\/snd:\/dev\/snd \\ <\/code><br><code>rhasspy\/rhasspy \\ <\/code><br><code>--user-profiles \/profiles \\ <\/code><br><code>--profile fr<\/code><\/p><\/blockquote>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>Voil\u00e0, vous venez d&#8217;installer Rhasspy !  Vous pouvez maintenant acc\u00e9der \u00e0 l&#8217;interface Web permettant de configurer Rhasspy graphiquement.<br>Pour acc\u00e8der \u00e0 cette interface Web, il suffit de taper dans votre barre de recherche : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>http:\/\/&lt;VotreAdresseIpdeRaspberryPi&gt;:12101  <em>(Ex : Dans mon cas : http:\/\/192.168.1.13:12101)<\/em><\/p><\/blockquote>\n\n\n\n<p>Vous devriez arriver sur une interface comme ceci :  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"475\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-15-1024x475.png\" alt=\"\" class=\"wp-image-2013\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-15-1024x475.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-15-300x139.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-15-768x356.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-15-1536x712.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-15.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Configuration-de-Rhasspy\">4. Configuration de Rhasspy<\/h2>\n\n\n\n<p>On peut maintenant configurer l&#8217;assistant Vocal Rhasspy en allant dans <strong>Settings<\/strong>. Puis pour chaque param\u00e8tre vous pouvez configurer comme ceci : <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"614\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-11.png\" alt=\"\" class=\"wp-image-2005\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-11.png 605w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-11-296x300.png 296w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<p>Pour le param\u00e8tre <strong>Audio Recording<\/strong>, j&#8217;ai choisi de passer par le programme de base de linux (<em>arecord<\/em>) et pour le configurer j&#8217;ai choisi <strong>Default Audio Device<\/strong>.<br>Vous pouvez voir ce que vous avez comme entr\u00e9es audio de disponibles en cliquant sur <strong>Refresh<\/strong>. Le bouton <strong>Test <\/strong>permet de voir quelles entr\u00e9es audio sont fonctionnelles en indiquant <em>Working!<\/em> \u00e0 leur c\u00f4t\u00e9.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-13-1024x166.png\" alt=\"This image has an empty alt attribute; its file name is image-13-1024x166.png\"\/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>(Si vous voulez savoir sur quoi est branch\u00e9 votre micro, dans un temrinal de commande tapez la commande<br><code><em>arecord -l<\/em><\/code> <br>Et cherchez votre micro. (Dans mon cas, le Microphone est branch\u00e9 sur la carte 1 et c&#8217;est le device 0) )<\/p><\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"87\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-14.png\" alt=\"\" class=\"wp-image-2009\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-14.png 701w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-14-300x37.png 300w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Pour le param\u00e8tre Wake Word, vous pouvez choisir votre mot-cl\u00e9 (dans mon cas, j&#8217;ai choisi &#8220;Jarvis&#8221;)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"378\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-12-1024x378.png\" alt=\"\" class=\"wp-image-2006\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-12-1024x378.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-12-300x111.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-12-768x283.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-12-1536x567.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-12.png 1783w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Pour les autres param\u00e8tres, mettez les configurations recommand\u00e9s, puis pour Intent Handling mettez <strong>Remote HTTP<\/strong>.<br>Ensuite sauvegardez, vous allez devoir red\u00e9marrer le Rhasspy et t\u00e9l\u00e9chargez des donn\u00e9es. Laissez vous guider.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Testez votre Rhasspy en allant \u00e0 la page d&#8217;accueil.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"295\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-16-1024x295.png\" alt=\"\" class=\"wp-image-2018\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-16-1024x295.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-16-300x86.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-16-768x221.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-16-1536x442.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-16.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-17.png\" alt=\"\" class=\"wp-image-2019\" width=\"329\" height=\"176\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-17.png 392w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-17-300x159.png 300w\" sizes=\"auto, (max-width: 329px) 100vw, 329px\" \/><\/figure><\/div>\n\n\n\n<p>On teste d&#8217;abord le<strong> STT :<\/strong> <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Par exemple, cliquez sur &#8220;Wake Up&#8221;, puis dites &#8220;Quelle heure est-il ?&#8221; Vous devriez voir \u00e7a &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&gt;<\/li><\/ul>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Puis on teste le <strong>Wake Word<\/strong> :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-18.png\" alt=\"\" class=\"wp-image-2022\" width=\"442\" height=\"73\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-18.png 681w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-18-300x49.png 300w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li>Dites maintenant votre mot-cl\u00e9 de r\u00e9veil (dans mon cas &#8220;Jarvis&#8221;), puis dites &#8220;Quelle est la temp\u00e9rature&#8221;. Vous devriez voir \u00e7a.<\/li><\/ul>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Et en dernier, testez le<strong> TTS :<\/strong><\/p>\n\n\n\n<p>Dans la barre \u00e0 c\u00f4te de &#8220;<strong>Speak<\/strong>&#8220;, tapez un texte que vous voulez que Rhasspy lise puis cliquez sur <strong>Speak<\/strong>. <\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>Si votre Rhasspy parle alors tout fonctionne.<\/strong><\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-background\" style=\"background-color:#effff0\">Voil\u00e0, vous avez un assistant vocal fonctionnel.<br>Votre assistant ne comprend qu&#8217;un nombre limit\u00e9 de phrases (vous pouvez les voir dans l&#8217;onglet &#8220;Sentences&#8221;).<br>Nous verrons dans le chapitre <strong>7. Usages<\/strong> comment augmenter la capacit\u00e9 de compr\u00e9hension de Rhasspy et comment l&#8217;utiliser avec Jeedom.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Installation-et-Configuration-de-Jeedom\">5. Installation et Configuration de Jeedom <\/h2>\n\n\n\n<p>Deux cas de figures s&#8217;offrent \u00e0 vous. Soit vous avez d\u00e9j\u00e0 install\u00e9 un serveur Jeedom et dans ce cas l\u00e0 vous pouvez directement vous rendre au chapitre <strong>Liaison et Connexion entre Rhasspy et Jeedom.<\/strong> Soit vous n&#8217;avez pas encore install\u00e9 Jeedom et dans ce cas, vous pouvez continuer \u00e0 lire la suite.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Vous pouvez retrouver toute la documentation officielle de Jeedom <a rel=\"noreferrer noopener\" href=\"https:\/\/doc.jeedom.com\/fr_FR\/\" target=\"_blank\">ici<\/a>. Mais on va r\u00e9sumer l&#8217;installation et la configuration ci-dessous : <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installation de Jeedom sur la Raspberry Pi contenant Rhasspy : <\/h3>\n\n\n\n<p>Rendez vous sur un terminal de commande de votre Raspberry Pi (comme avant, par SSH ou via un \u00e9cran et un clavier) puis rentrez cette commande : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>wget -O- https:\/\/raw.githubusercontent.com\/jeedom\/core\/master\/install\/install.sh | sudo bash<\/p><\/blockquote>\n\n\n\n<p>L&#8217;installation prend plusieurs dizaines de minutes.<\/p>\n\n\n\n<p>Une fois l&#8217;installation termin\u00e9e, red\u00e9marrez votre carte :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>sudo reboot <\/p><\/blockquote>\n\n\n\n<p>Voil\u00e0, votre serveur Jeedom est fonctionnel.<\/p>\n\n\n\n<div style=\"height:59px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Configuration de Jeedom<\/strong><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\"> Cr\u00e9ation d&#8217;un compte Jeedom<\/h3>\n\n\n\n<p>Si vous n&#8217;avez pas un compte Jeedom, il faut vous en cr\u00e9er un <a href=\"https:\/\/market.jeedom.com\/index.php?v=d&amp;p=register\" target=\"_blank\" rel=\"noreferrer noopener\">ici<\/a> et puis remplir les champs demand\u00e9s<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/doc.jeedom.com\/fr_FR\/premiers-pas\/images\/FirstStep_market1.jpg\" alt=\"S'enregistrer sur le Market\"\/><\/figure>\n\n\n\n<div style=\"height:64px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Configuration <\/h4>\n\n\n\n<p>Pour configurer votre Jeedom, il faut conna\u00eetre l&#8217;adresse IP du serveur qui g\u00e8re Jeedom. Il peut soit s&#8217;agir de votre installation Jeedom d\u00e9j\u00e0 faite au pr\u00e9alable, ou alors de la carte Raspberry Pi sur laquelle on vient d&#8217;installer Rhasspy et Jeedom. Dans ce cas l\u00e0, vous connaissez d\u00e9j\u00e0 l&#8217;adresse IP (Voir proc\u00e9dure du d\u00e9but).<\/p>\n\n\n\n<p>Pour acc\u00e8der \u00e0 l&#8217;interface Jeedom et pouvoir configurer votre serveur Jeedom, il suffit de taper dans la barre de recherche de votre navigateur web : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>http:\/\/&lt;AdresseIPduServeurJeedom&gt; <em>(Ex : Dans mon cas, ma Raspberry Pi contient l&#8217;assistant vocal Rhasspy et le serveur Jeedom, c&#8217;est donc la m\u00eame adresse IP. Je me connecte \u00e0 http:\/\/192.168.1.13)<\/em><\/p><\/blockquote>\n\n\n\n<p>Vous devriez arriver \u00e0 un \u00e9cran de connexion comme ceci : <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/doc.jeedom.com\/fr_FR\/premiers-pas\/images\/FirstStep_box_connect.jpg\" alt=\"Connexion \u00e0 votre Jeedom\"\/><\/figure><\/div>\n\n\n\n<p>Connectez vous en utilisant le nom d&#8217;utilisateur et mot de passe par d\u00e9fauts qui sont &#8220;admin&#8221;.<\/p>\n\n\n\n<div style=\"height:65px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"has-inline-color has-black-color\">L<strong>ier votre Jeedom \u00e0 votre compte Market.<\/strong><\/span><\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Une fois connect\u00e9 \u00e0 votre Jeedom, vous devez aller sur&nbsp;<strong>R\u00e9glages&nbsp;\u2192&nbsp;Syst\u00e8me&nbsp;\u2192&nbsp;Configuration<\/strong><\/li><li>Cliquez sur l\u2019onglet&nbsp;<strong>Mises \u00e0 jour<\/strong><\/li><li>En dessous, cliquez sur l\u2019onglet&nbsp;<strong>Market<\/strong><\/li><li>Cochez la case&nbsp;<strong>activer<\/strong><\/li><li>Remplissez l\u2019adresse :&nbsp;<code>https:\/\/market.jeedom.com<\/code><\/li><li>Renseignez \u00e9galement les champs&nbsp;<strong>Nom d\u2019utilisateur<\/strong>&nbsp;et&nbsp;<strong>Mot de passe<\/strong>&nbsp;en fonction de vos identifants (identifiants du Market et non pas de Jeedom)<\/li><li>Vous pouvez tester pour v\u00e9rifier que la connexion s\u2019effectue correctement.<\/li><li>N\u2019oubliez pas de sauvegarder !<\/li><\/ul>\n\n\n\n<div style=\"height:59px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Changer le mot de passe par d\u00e9faut de Jeedom<\/h4>\n\n\n\n<p>Une des \u00e9tapes importantes est de changer le mot de passe par d\u00e9faut de votre compte Jeedom, pour cela cliquez sur R\u00e9glages \u2192 Syst\u00e8me&nbsp;\u2192&nbsp;Utilisateurs&nbsp;:<\/p>\n\n\n\n<p>Une fois dessus, vous avez juste \u00e0 choisir la ligne avec l\u2019utilisateur&nbsp;<strong>admin<\/strong>&nbsp;et \u00e0 cliquer sur&nbsp;<strong>Mot de passe<\/strong>&nbsp;:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/doc.jeedom.com\/fr_FR\/premiers-pas\/images\/FirstStep_boxPassword.jpg\" alt=\"Mot de passe\"\/><\/figure>\n\n\n\n<p>Une fen\u00eatre va vous demander le mot de passe. Attention \u00e0 bien le retenir, ou vous ne pourrez plus acc\u00e9der \u00e0 votre Jeedom.<\/p>\n\n\n\n<p>Voil\u00e0, votre Jeedom est configur\u00e9. Vous pouvez en apprendre plus sur Jeedom, et les fonctionnalit\u00e9s de base en cliquant <a rel=\"noreferrer noopener\" href=\"https:\/\/doc.jeedom.com\/fr_FR\/\" target=\"_blank\">ici<\/a><a href=\"https:\/\/doc.jeedom.com\/fr_FR\/\">.<\/a> <\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"Liaison-entre-Rhasspy-et-Jeedom\">6. Liaison entre Rhasspy et Jeedom<\/h2>\n\n\n\n<p>Si on fait un \u00e9tat des lieux, on a d&#8217;un c\u00f4t\u00e9 un assistant vocal qui sait \u00e9couter, qui comprend ce qu&#8217;on lui dit et qui le traduit en &#8220;event&#8221; mais qui ne fait rien. De l&#8217;autre c\u00f4t\u00e9, on a un serveur de domotique qui ne comprend pas et qui n&#8217;\u00e9coute pas mais qui sait agir avec des &#8220;events&#8221;.<\/p>\n\n\n\n<p>Si on veut avoir une maison intelligente que l&#8217;on peut contr\u00f4ler vocalement, il nous suffit de lier notre assistant vocal \u00e0 Jeedom pour obtenir une interaction vocale entre nos \u00e9quipements connect\u00e9s et notre voix. <\/p>\n\n\n\n<p>Nous allons voir dans ce chapitre, comment lier Rhasspy et Jeedom pour avoir un assistant vocal fonctionnel appliqu\u00e9e \u00e0 la domotique.<\/p>\n\n\n\n<div style=\"height:37px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Installation du plugin Rhasspy pour Jeedom <\/h3>\n\n\n\n<p>Jeedom est un outil tr\u00e8s puissant gr\u00e2ce \u00e0 son grand nombre de plugins disponibles (officiels ou non-officiels), ce qui le rend tr\u00e8s modulable et tr\u00e8s personnalisable.<\/p>\n\n\n\n<p>Ici, nous allons utiliser un plugin qui se nomme jeeRhasspy et qui permet de lier et d&#8217;utiliser Rhasspy sous jeedom. Vous pouvez retrouver toute la documentation officielle <a rel=\"noreferrer noopener\" href=\"https:\/\/kiboost.github.io\/jeedom_docs\/plugins\/jeerhasspy\/fr_FR\/\" target=\"_blank\">ici<\/a> <\/p>\n\n\n\n<p>Dans un premier temps, on proc\u00e8de \u00e0 l&#8217;installation :<\/p>\n\n\n\n<p>Sur la page de Jeedom, dans la barre d&#8217;outil du haut, rendez vous dans<strong> Plugin -&gt; Gestion des plugins.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"295\" height=\"192\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image.png\" alt=\"\" class=\"wp-image-1988\"\/><\/figure><\/div>\n\n\n\n<p>Ensuite, allez dans <strong>Market <\/strong>et Cherchez le plugin <strong>jeeRhasspy<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-2-1024x546.png\" alt=\"\" class=\"wp-image-1990\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-2-1024x546.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-2-300x160.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-2-768x410.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-2-1536x819.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-2.png 1575w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Cliquez sur <strong>Installez stable<\/strong> et lorsque le t\u00e9l\u00e9chargement est termin\u00e9, vous devriez voir apparaitre cet onglet : <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"754\" height=\"134\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-3.png\" alt=\"\" class=\"wp-image-1991\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-3.png 754w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-3-300x53.png 300w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/figure><\/div>\n\n\n\n<p>Cliquez sur <strong>Ok<\/strong>.<\/p>\n\n\n\n<p>Vous \u00eates maintenant sur la page de configuration du plugin jeeRhasspy.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div style=\"height:62px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Configuration du plugin jeeRhasspy<\/h3>\n\n\n\n<p>En arrivant sur la page de configuration du plugin jeeRhasspy, vous devriez voir apparaitre cette fen\u00eatre : <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"321\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-6-1024x321.png\" alt=\"\" class=\"wp-image-1994\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-6-1024x321.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-6-300x94.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-6-768x241.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-6-1536x482.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-6.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>La premi\u00e8re chose \u00e0 faire est de cliquez sur <strong>Activer <\/strong>dans la barre <strong>Etat<\/strong>.<\/p>\n\n\n\n<p>On voit apparaitre alors une nouvelle barre <strong>Configuration <\/strong>et la barre <strong>Etat <\/strong>qui est pass\u00e9 au vert:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"328\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-7-1024x328.png\" alt=\"\" class=\"wp-image-1995\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-7-1024x328.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-7-300x96.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-7-768x246.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-7-1536x492.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-7.png 1918w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>On s&#8217;int\u00e9resse maintenant \u00e0 la barre <strong>Configuration<\/strong>.<br>On retrouve 5 param\u00e8tres : <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Adresse du Rhasspy ma\u00eetre :<\/strong> <em>On renseigne ici l&#8217;adresse IP de notre Raspberry Pi contenant l&#8217;assistant vocal Rhasspy (dans mon cas : http:\/\/192.168.1.13)<\/em><\/li><li><strong>Port du Rhasspy ma\u00eetre :<\/strong><em> On renseigne ici le port de notre Raspberry Pi contenant l&#8217;assistant vocal Rhasspy (dans  le cas g\u00e9n\u00e9ral si vous avez bien suivi la proc\u00e9dure : <strong>12101<\/strong>)<\/em><\/li><li><strong>Feedback :<\/strong> <em>C&#8217;est la r\u00e9ponse (que va lire votre Rhasspy) si Jeedom ne trouve pas de correspondance \u00e0 ce que lui demande le Rhasspy.<\/em><\/li><li><strong>Filtrer les Intents Jeedom :<\/strong> <em>Les Intents sont les mots cl\u00e9s que Rhasspy envoie \u00e0 Jeedom pour lui traduire la demande de l&#8217;utilisateur. <\/em>(Ex : On demande \u00e0 Rhasspy &#8220;Quelle heure est-il ?&#8221;, Rhasspy va envoyer le mot-cl\u00e9 [GetTime] \u00e0 Jeedom). <em><strong>Filtrer les Intents Jeedom<\/strong> revient \u00e0 ce que le plugin jeeRhasspy ne laisse passer \u00e0 Jeedom que les Intents de Rhasspy terminant par le mot Jeedom. (Ce param\u00e8tre est pratique lorsque Rhasspy ne sert pas qu&#8217;\u00e0 communiquer avec Jeedom. <strong>Dans notre cas on peut d\u00e9cocher la case<\/strong> pour simplifier les Intents \u00e0 envoyer de Rhasspy \u00e0 Jeedom (plut\u00f4t [GetTime] que [GetTimeJeedom])).<\/em><\/li><li><strong>Variables rhasspyWakeWord \/ rhasspyWakeSiteId :<\/strong> <em>Quand le wakeword est d\u00e9tect\u00e9, le plugin renseigne ces deux variables avec le wakewordId et siteId. Vous pouvez alors d\u00e9clencher un sc\u00e9nario sur&nbsp;<code>#variable(rhasspyWakeWord)#<\/code>&nbsp;pour par exemple couper la musique le temps de votre demande.<\/em><\/li><\/ul>\n\n\n\n<p>Remplissez tous les champs puis cliquez sur sauvegarder. La configuration donne \u00e7a : <\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"226\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-8-1024x226.png\" alt=\"\" class=\"wp-image-1999\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-8-1024x226.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-8-300x66.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-8-768x170.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-8.png 1277w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p> <\/p>\n\n\n\n<p>Maintenant, dans la barre d&#8217;outil Jeedom, allez dans<strong> Plugin -&gt; Communication -&gt; jeeRhasspy<\/strong>.<br>On arrive sur cette page : <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"349\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-9-1024x349.png\" alt=\"\" class=\"wp-image-2001\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-9-1024x349.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-9-300x102.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-9-768x262.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-9-1536x523.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-9.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Cliquez sur <strong>Importer l&#8217;Assistant.<\/strong><\/p>\n\n\n\n<p>A l&#8217;importation, il y a trois options possible:&nbsp;<em>Lors de la premi\u00e8re importation, ces options n&#8217;ont pas d&#8217;incidence<\/em>.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Conserver toutes les Intentions<\/strong>&nbsp;: Ne supprime aucun Intent, et cr\u00e9e ceux non pr\u00e9sent dans Jeedom.<\/li><li><strong>Supprimer les Intentions qui ne sont plus dans l&#8217;assistant<\/strong>&nbsp;: Supprime seulement les Intents de Jeedom qui ne sont plus dans Rhasspy.<\/li><li><strong>Supprimer et recr\u00e9er toutes les Intentions<\/strong>&nbsp;: Supprime tous les Intents de Jeedom, avant de recr\u00e9er les Intents pr\u00e9sents sur Rhasspy.<\/li><\/ul>\n\n\n\n<p>L&#8217;importation de l&#8217;assistant va cr\u00e9er :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Un Device : C&#8217;est votre machine Rhasspy.<\/li><li>Vos Intentions : Chaque Intent pr\u00e9sent sur votre assistant Rhasspy.<\/li><\/ul>\n\n\n\n<p>Dans l&#8217;onglet Devices, vous devriez voir appara\u00eetre trois boutons sous son ic\u00f4ne :<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"211\" height=\"219\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-10.png\" alt=\"\" class=\"wp-image-2002\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Configurer le profile Rhasspy<\/strong>&nbsp;: Permet de configurer automatiquement le profile Rhasspy du device. Voir ci-dessous.<\/li><li><strong>Test TTS sur ce device<\/strong>&nbsp;: Effectue un test TTS que vous entendrez sur le device sur lequel vous avez cliqu\u00e9.<\/li><li><strong>Ouvrir l&#8217;interface de ce device<\/strong>&nbsp;: Ouvre l&#8217;interface Rhasspy du device dans un autre onglet.<\/li><\/ul>\n\n\n\n<p>Vous pouvez alors tester si votre liaison Jeedom -&gt; Rhasspy est fonctionnel en cliquant sur le casque Bleu qui va envoyer le texte &#8220;Default, ceci est un test&#8221; au Rhasspy qui va vous le lire. Si vous entendez bien votre Rhasspy le lire alors la liaison est fonctionnelle.<\/p>\n\n\n\n<p>Maintenant cliquez sur le bouton orange de Configuration. 2 Options apparaissent : <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Utiliser l&#8217;URL interne<\/strong> (\u00e0 faire si votre Rhasspy et votre serveur Jeedom fonctionne sur le m\u00eame r\u00e9seau)<\/li><li><strong>Utiliser l&#8217;URL Externe<\/strong> (\u00e0 faire si votre Rhasspy et votre serveur Jeedom fonctionne sur des r\u00e9seaux diff\u00e9rents)<\/li><\/ul>\n\n\n\n<p>Laissez la case <strong>Configurer l&#8217;event Wakeword Detected<\/strong> coch\u00e9e puis cliquez sur <strong>Ok<\/strong>.<\/p>\n\n\n\n<p>Maintenant, on va tester la liaison Rhasspy -&gt; Jeedom pour v\u00e9rifier que Rhasspy envoie bien les informations \u00e0 Jeedom. Pour ce faire, demander juste \u00e0 Rhasspy l&#8217;heure en lui disant : &#8220;Jarvis, quelle heure est-il?&#8221;<br><br><strong>Si la liaison est fonctionnelle, alors Rhasspy devrez vous r\u00e9pondre &#8220;D\u00e9sol\u00e9 mais je ne vois pas quoi faire&#8221;.<\/strong><br>Si non, v\u00e9rifiez bien sur votre interface Rhasspy (http:\/\/&lt;AdresseIP_Rhasspy&gt;:12101) que Rhasspy a d\u00e9tect\u00e9 ce que vous avez dit.<\/p>\n\n\n\n<p>Si Rhasspy d\u00e9tecte bien votre voix mais qu&#8217;il ne r\u00e9pond pas, c&#8217;est que la liaison Rhasspy -&gt; Jeedom ne marche pas. Dans ce cas, sur <strong>la page d&#8217;Accueil de Rhasspy<\/strong> cochez la case &#8220;<strong>Handle<\/strong>&#8221; et r\u00e9-essayez.<\/p>\n\n\n\n<p>Vous pouvez \u00e9galement v\u00e9rifier dans les <strong>Settings -&gt; Intent Handling<\/strong> que la cl\u00e9 API est bien la m\u00eame que dans les param\u00e8tres de <strong>Jeedom -&gt;API.<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Maintenant que votre liaison est fonctionnelle, il est temps de rendre le service utile et de permettre \u00e0 Jeedom de savoir quoi faire de ces <em>Intents<\/em> envoy\u00e9s par Rhasspy.<\/p>\n\n\n\n<div style=\"height:90px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Usages\">7. Usages<\/h2>\n\n\n\n<p>On a maintenant un assistant vocal fonctionnel, un serveur de domotique fonctionnel et une liaison entre les deux fonctionnelle. Il ne manque plus qu&#8217;\u00e0 utiliser ce nouveau service.<\/p>\n\n\n\n<p>Pour se faire, il faut comprendre comment marche les<em> Intents<\/em>.<br>Lorsque l&#8217;on appelle Rhasspy et qu&#8217;on lui fait une demande comme par exemple <em>&#8220;Quelle heure est-il ?&#8221;<\/em>. Rhasspy va traduire cette demande vocale en texte, puis il va analyser ce texte pour comprendre quelles sont les intentions de l&#8217;utilisateur qui sont dans ce cas <em>Obtenir L&#8217;heure<\/em>. Il va donc traduire cette intention en ce qu&#8217;on appelle un event JSON, c&#8217;est<em> l&#8217;Intent<\/em>, puis va envoyer cette traduction \u00e0 Jeedom qui va analyser l&#8217;Intent et agira en fonction de la nature de ce dernier. Dans notre cas, il va recevoir un <em>Intent <\/em>qui sera de nature &#8220;Obtenir L&#8217;heure&#8221; et donc Jeedom va aller chercher l&#8217;heure, et envoyer un texte \u00e0 Rhasspy du type <em>&#8220;Il est #heure# heures #minute#&#8221;<\/em> (avec #heure# la variable de de l&#8217;heure et #minute# la variable de la minute).<br>Les Intents JSON sont au format : <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"859\" height=\"577\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-19.png\" alt=\"\" class=\"wp-image-2032\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-19.png 859w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-19-300x202.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-19-768x516.png 768w\" sizes=\"auto, (max-width: 859px) 100vw, 859px\" \/><\/figure>\n\n\n\n<div style=\"height:55px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Cr\u00e9ation d&#8217;une commande vocale compl\u00e8te <\/h3>\n\n\n\n<p>On va donc voir ici comment cr\u00e9er une commande vocale compl\u00e8te, celle de demander l&#8217;heure.<\/p>\n\n\n\n<p>Dans un premier temps, il faut r\u00e9gler Rhasspy de sorte \u00e0 ce qu&#8217;il comprenne ce qu&#8217;on lui dit. (Rhasspy \u00e9tant un assistant offline, il faut l&#8217;entrainer \u00e0 reconnaitre les commandes). <\/p>\n\n\n\n<p>Sur l&#8217;interface de Rhasspy, allez dans l&#8217;onglet <strong>Sentences<\/strong>. Vous devriez voir un bloc de texte d\u00e9j\u00e0 pr\u00e9-remplis. Il se trouve que la commande vocale pour obtenir l&#8217;heure est d\u00e9j\u00e0 configur\u00e9e. <br><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-20.png\" alt=\"\" class=\"wp-image-2034\" width=\"203\" height=\"107\"\/><\/figure><\/div>\n\n\n\n<p>On peut d\u00e9composer la commande en deux -&gt; <br>[GetTime] est le nom de l&#8217;Intent<br>&#8220;quelle heure est-il&#8221;,&#8221;il est quelle heure&#8221; sont les phrases que vous devez prononcez pour que Rhasspy en d\u00e9duise que vous voulez l&#8217;heure. Une fois ces phrases prononc\u00e9es, Rhasspy va envoyer la commande [GetTime] \u00e0 Jeedom (plus quelques autres d\u00e9tails que nous ne sp\u00e9cifierons pas, mais que vous pouvez retrouver sur la documentation officielle en anglais <a rel=\"noreferrer noopener\" href=\"https:\/\/rhasspy.readthedocs.io\/en\/latest\/training\/\" target=\"_blank\">ici<\/a>)<\/p>\n<\/div><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Maintenant  nous allons cr\u00e9er l&#8217;action \u00e0 effectuer lorsque Jeedom re\u00e7oit cet Intent.<\/h4>\n\n\n\n<p>Allez dans <strong>Jeedom<em> <\/em><\/strong><em>(http:\/\/&lt;AdresseIPdeJeedom&gt;)<\/em> <strong>-&gt; Outils -&gt; Sc\u00e9nario<\/strong>.<\/p>\n\n\n\n<p>Cliquez sur <strong>Ajouter <\/strong>et <strong>nommez <\/strong>le sc\u00e9nario (par exemple &#8220;ObtenirLHeure&#8221;) puis cliquez sur <strong>Ok<\/strong>. Vous arrivez sur cette page :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"321\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-21-1024x321.png\" alt=\"\" class=\"wp-image-2045\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-21-1024x321.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-21-300x94.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-21-768x240.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-21-1536x481.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-21.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Vous pouvez attribuer un groupe au sc\u00e9nario (cela permet de classifier lorsque vous en avez beaucoup).<\/p>\n\n\n\n<p>Allez dans <strong>l&#8217;onglet sc\u00e9nario<\/strong> (en haut \u00e0 gauche).<\/p>\n\n\n\n<p>Vous arrivez ici : <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"48\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-22-1024x48.png\" alt=\"\" class=\"wp-image-2046\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-22-1024x48.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-22-300x14.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-22-768x36.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-22-1536x72.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-22.png 1901w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Cliquez sur <strong>Ajouter bloc -&gt; Action -&gt; Ajouter <\/strong>.<\/p>\n\n\n\n<p>Dans le Bloc Action, cliquez sur <strong>Ajouter -&gt; Action.<\/strong><\/p>\n\n\n\n<p>Cliquez ensuite sur le bouton \u00e0 droite de la barre de texte :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1005\" height=\"155\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-23.png\" alt=\"\" class=\"wp-image-2047\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-23.png 1005w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-23-300x46.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-23-768x118.png 768w\" sizes=\"auto, (max-width: 1005px) 100vw, 1005px\" \/><\/figure>\n\n\n\n<p>S\u00e9lectionnez <strong>TTS-Rhasspy <\/strong>(TTS-Default) dans <em>Equipement <\/em>et s\u00e9lectionnez <strong>dynamicSpeak <\/strong>dans <em>Commande Action<\/em>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-24.png\" alt=\"\" class=\"wp-image-2048\" width=\"573\" height=\"40\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-24.png 573w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-24-300x21.png 300w\" sizes=\"auto, (max-width: 573px) 100vw, 573px\" \/><\/figure><\/div>\n\n\n\n<p>Vous obtenez \u00e7a.<br><\/p>\n\n\n\n<p>Dans la barre de texte message qui est apparu \u00e0 droite, \u00e9crivez : <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Il est #hour# heures #minute#<\/p><\/blockquote>\n\n\n\n<p>Maintenant, cliquez sur <strong>Sauvegardez<\/strong>. <\/p>\n\n\n\n<p>Voil\u00e0, l&#8217;action \u00e0 effectuer est pr\u00eate. Il ne reste plus qu&#8217;a lier l&#8217;Intent \u00e0 l&#8217;action.<br>Pour cela, allez dans <strong>Plugin -&gt; Communication -&gt; jeeRhasspy <\/strong>(n&#8217;oubliez pas d&#8217;importer l&#8217;assistant \u00e0 chaque fois que vous ajouter des commandes dans Rhasspy).<br>Allez dans l&#8217;onglet <strong>Intentions<\/strong> et cliquez sur l&#8217;<strong>Intent [GetTime]<\/strong><\/p>\n\n\n\n<p>Dans sc\u00e9nario, s\u00e9lectionnez le sc\u00e9nario <strong>ObtenirLHeure <\/strong>que l&#8217;on vient de cr\u00e9er puis dans <strong>Action<\/strong>, s\u00e9lectionnez <strong>Start <\/strong>et enfin <strong>sauvegardez<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"296\" src=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-25-1024x296.png\" alt=\"\" class=\"wp-image-2049\" srcset=\"https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-25-1024x296.png 1024w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-25-300x87.png 300w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-25-768x222.png 768w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-25-1536x444.png 1536w, https:\/\/miniprojets.net\/wp-content\/uploads\/2021\/07\/image-25.png 1911w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Et voil\u00e0, c&#8217;est fini !!<\/p>\n\n\n\n<p>Vous n&#8217;avez plus qu&#8217;\u00e0 tester votre commande \u00e0 l&#8217;oral en disant &#8220;Jarvis, quelle heure est-il ?&#8221;<br>Si il r\u00e9pond vous avez r\u00e9ussi, si non v\u00e9rifiez que vous avez bien suivi toutes les \u00e9tapes.<\/p>\n\n\n\n<div style=\"height:89px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-pullquote is-style-default\" style=\"border-color:#cf2e2e\"><blockquote><p>Vous avez maintenant les outils de base pour cr\u00e9er des commandes vocales. <br>Si vous voulez aller plus loin, consulter les documentations officielles plus compl\u00e8tes : <\/p><p>Rhasspy -&gt;<a rel=\"noreferrer noopener\" href=\"https:\/\/rhasspy.readthedocs.io\/en\/latest\/\" target=\"_blank\"> https:\/\/rhasspy.readthedocs.io\/en\/latest\/<\/a><br>Jeedom -&gt; <a rel=\"noreferrer noopener\" href=\"https:\/\/doc.jeedom.com\/fr_FR\/\" target=\"_blank\">https:\/\/doc.jeedom.com\/fr_FR\/<\/a><br>Plugin jeeRhasspy -&gt;<a rel=\"noreferrer noopener\" href=\"https:\/\/kiboost.github.io\/jeedom_docs\/plugins\/jeerhasspy\/fr_FR\/\" target=\"_blank\"> https:\/\/kiboost.github.io\/jeedom_docs\/plugins\/jeerhasspy\/fr_FR\/<\/a><br><\/p><\/blockquote><\/figure>\n<\/div><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le cadre de mon stage au sein du G2ELab, j&#8217;\u00e9tudie actuellement les assistants vocaux afin de rendre plus interactif&hellip;<\/p>\n","protected":false},"author":8,"featured_media":2074,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[18],"class_list":["post-1936","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mini-projet","tag-domotique"],"_links":{"self":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/1936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/comments?post=1936"}],"version-history":[{"count":0,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/posts\/1936\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media\/2074"}],"wp:attachment":[{"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/media?parent=1936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/categories?post=1936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/miniprojets.net\/index.php\/wp-json\/wp\/v2\/tags?post=1936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}