[Plugin Tiers][Sujet Principal] JeeRhasspy

Je viens de passer mon Pi zero sur cette version. Pas de soucis de noter jusqu’à présent.

Juste une question concernant le fonctionnement du plugin :

Dans une installation Master-Satellites, la commande TTS-master, dans laquelle on passe le siteId du satellite que l’on veut faire parler, utilise quelle API ?

Il semblerai que ce soit directement l’API HTTP « text-to-speech » du satellite qui soit utilisée sans utiliser le master comme pourrait nous le faire penser l’équipement de la commande.

Donc au final, même si on utilise picoTTS du master, la commande est envoyée au satellite qui demande via MQTT la conversion du texte en .wav pour ensuite jouer le son.

Si c’est bien cela, ća expliquerait pourquoi le fait de désactiver le serveur http sur le satellite empêche Jeerhasspy de faire son TTS.

Le plugin utilise uniquement l’api http oui. Dans ce cas elle est envoyer en http au master qui l’a transmet en mqtt au satellite.

Je n’ai volontairement pas voulu le faire en mqtt pour avoir de dépendance ni de démon qui tourne en permanence. Ça a cause pas mal de soucis sur le plugin snips. Et avec snip tu connecte un device tu génère des erreurs en plus. La le plugin jeerhasspy est ultra light, tu l’installe tu le core ton système n’a pas changé. Snips installé une flopée de dépendance sur l’os et ça me plait pas trop.

Je comprend tout à fait le choix de l’api HTTP pour ton plugin.

Par contre, je ne comprends pas, si tu utilises l’api du master, pourquoi j’ai besoin du serveur http sur le satellite pour que le TTS fonctionne. Le master et le satellite communiquent bien en MQTT entre eux, non ?

J’arrive bien à faire du TTS sur mon satellite avec le serveur HTTP désactivé en utilisant MQTT avec Jeedom (j utilise le plugin jMQTT).

Quelque chose m’échappe…

En fait, je viens de regarder changelog de ton plugin et le fonctionnement du TTS semble avoir évolué avec la dernière version que je n’ai pas passé.

Je vais donc essayer…

Si tu utilise la commande du master pour un tts vers un satellite le plugin va utiliser l’url http du sattelite oui. Mais pourquoi couper le serveur http du satellite ?

Ok, je comprends mieux.

Sur un Pi zero, la charge CPU engendrée par le serveur HTTP est trop élevée (tu as dû voir les posts à ce sujet sur le forum rhasspy) et on a la possibilité de le désactiver. Cela me permet d’avoir plus de marge pour ajouter d’autres services (Squeezelite et antenne BLEA dans mon cas).

Pour un satellite, ce n’est pas gênant car toute la config amenée à être modifiée régulièrement (cad concernant les intents) est sur le master. Une fois le wakeword réglé, il n’y a plus vraiment de raison de toucher à la config et on peut toujours le faire en éditant le fichier profile.json.

Donc, un satellite peut fonctionner normalement sans le serveur http et c’est de cette facon que j’utilise sur mon pi zero. Le seul problème que j’ai concerne le TTS. Je l’ai contourné en utilisant MQTT sur Jeedom mais si je peux rester sur ton plugin c’est toujours mieux pour suivre les évolutions futures.

En tout cas, je te remercie d’avoir pris le temps de me donner ses explications.

Je regarderai à l’occasion pour envoyer au master dans tout les cas.

1 « J'aime »

@kiboost merci beaucoup pour ton plugin il marche nickel c’est MAGNIFIQUE !!

Plus qu’a refaire mes intent et zou snip est déjà oublié :wink:

@Tarlak tu me fais envie, je n’ai pas encore franchi le pas. Snips m’avait refroidi.
Y a t’il un tuto officiel(recommandé) pour installer sur un pi3?

Pour ma part j’ai suivis la documentation sur la partie docker : https://rhasspy.readthedocs.io/en/latest/installation/

Sur mo RPI3 ca tourne nickel et je le trouve plus réactif que snips. Ensuite faut lire un minimum la documentation pour paramétrer comme il faut Rhasspy et ensuite comprendre l’utilisation des intents comme il faut. Mais en soit c’est pas spécialement compliqué, c’est au final même plus simple que snips je trouve

1 « J'aime »

perso je rencontre quelques galères entre le master, le satellite et mqtt, le tout en docker, mais je pense finir par y arriver.

Ha pour le moment je n’ai pas de satellite, c’est la prochaine étape :slight_smile: Mais en tout cas je me régale, juste un soucis avec mon ReSpeaker 4 qui ne possède pas de sortie Audio donc je ne peux pas y brancher de haut parleur. Il faudra que j’investisse dans un Respeaker 2 pour cela

Après, je suppose qu’il sera possible de rediriger le flux audio vers un autre device… Un jour, peut-être…

Je me pose la même question j’aimerai bien un dispositif sans fil, bluetooth ou peut être vers une sonos que sais-je :stuck_out_tongue: Faut que j’étudie ça car il me semble justement que @kiboost l’avait fait sur une petite enceinte bluetooth a une époque

Edit : le post de kiboost : External Speaker - Show Us - Rhasspy Voice Assistant

J’ai re-survolé les sujets sur jeeRhasspy mais je n’ai pas trouvé de réponse à ma question.

Comment utiliser du texte style « (Bonjour|Salut|Hello) blablabla » dans les commandes de TTS-Dynamique ?

Je n’y arrive pas donc je pense que ce n’est pas implémenté, et c’est supporté par queqlues autres plugins (donc ça doit être possible) et c’est quand même vachement sympa comme Feature :slight_smile:

bonjour
j’utilise la fonction integrée de Jeedom
randText (Bonjour;Salut;Hello) blablabla
qui fonctionne tres bien

Ok, je vais testé. Je n’y avais plus pensé vu que certains plugins que j’utilise l’ont en natif

Bonsoir,

Je viens de passer tardivement à Rhasspy aprés Snips (je n’ai pas d’avance).
L’installation s’est bien passée.

Je bute sur les « Intents ».
sur la doc du plugin, je lis :
Pour chaque Intention (Intent), vous devez :

  • Renseigner un scénario qui sera exécuté à la détection de cet Intent par Rhasspy.

La zone « intent » est vide comment rensigner ?

Je vois bien dans les logs ; les intents qui sont reconnus par Jeedom
[2020-07-08 20:51:38] jeerhasspy.DEBUG: [RhasspyUtils] found intent: ChangeLightState [] []
[2020-07-08 20:51:38] jeerhasspy.DEBUG: [RhasspyUtils] found intent: GetTime [] []
[2020-07-08 20:51:38] jeerhasspy.DEBUG: [RhasspyUtils] <create_rhasspy_intentEqlogics> [« ChangeLightState »,« GetTime »] [] []
[2020-07-08 20:51:38] jeerhasspy.DEBUG: [RhasspyUtils] <create_rhasspy_intentEqlogics> filterIntents: 1 clean: 0 [] []

Merci d’avance de votre aide

ok trouvé ! il faut décocher "Filtrer les Intents Jeedom " c’est évident lorsqu’on le sait.