Ça c rien. Tu prend jeexplorer tu va dans le répertoire du plugin dans plugininfo je crois y’a un json avec require dedans. Met 3 au lieu de 4 ça devrait marcher.
Super! ça marche.
Je poursuis donc mon exploration de Rhasspy!
Cool !
Tiens moi au courant côté fonctionnalité et interface si tout va bien je le mettrai en 3.3
Bonsoir,
je suis peut-être HS sur ce post mais je bute sur la config de Rhasspy en lui même je pense.
J’ai réussi à paraméter mon Respeaker 2 Hat au niveau du micro et de la sortie haut-parleur.
Je passe sur mon soucis de hotword pour l’heure, j’ai l’impression que Rhasspy ne décode pas ma phrase (allume la lumière du salon) et n’envoie donc rien au plugin Jeedom, voici mon log:
[DEBUG:1319865] APlayAudioPlayer: [‹ aplay ›, ‹ -q ›, ‹ -D ›, ‹ sysdefault:CARD=seeed2micvoicec ›, ‹ /usr/share/rhasspy/etc/wav/beep_lo.wav ›]
[DEBUG:1319864] DialogueManager: awake → decoding
[DEBUG:1319862] WebrtcvadCommandListener: listening → loaded
[DEBUG:1319859] WebrtcvadCommandListener: Voice command finished
[DEBUG:1317489] WebrtcvadCommandListener: Voice command started
[DEBUG:1317018] WebrtcvadCommandListener: loaded → listening
[DEBUG:1317002] WebrtcvadCommandListener: Will timeout in 30 second(s)
[DEBUG:1317000] APlayAudioPlayer: [‹ aplay ›, ‹ -q ›, ‹ -D ›, ‹ sysdefault:CARD=seeed2micvoicec ›, ‹ /usr/share/rhasspy/etc/wav/beep_hi.wav ›]
[DEBUG:1316997] DialogueManager: decoding → awake
Voici ma config:
Rhasspy: listen for wake word on start-up
Intent handling: use a remote http (avec l’adresse donnée dans le plugin
Wake word: snowboy
Voice detection: webrtcvad
Speech recognition: remote Rhasspy server: http://127.0.0.1:12101/api/speech-to-text
Itent recognition: use remote Rhasspy server: http://127.0.0.1:12101/api/text-to-intent
TTS: pico-tts fr-FR
Audio recording: PyAudio sur ma carte seeed-2-mic-voicecard
Audio playing: Use aplay sur seeed2micvoicec
Je viens par ailleurs de passer en V2.4.17
Des idées? D’avance merci.
Oui tu est HS → Rhasspy Voice Assistant
J’ai eu çà au début à chaque fois que je relançais rhasspy. La première demande ne marchait jamais et passait en timeout. J’étais en venv, jamais eu le soucis depuis que je suis passé sur le container docker.
OK, désolé, je sors…
On continue sur le forum Rhasspy?
Pour info, je suis sous Docker…
Tu peux ouvrir un sujet, cela peut intéresser d’autres personnes ici.
Oui tout à fait : https://community.jeedom.com/c/plugins/communication
Pour ceux qui ne speak pas english çà peux aider. Mets bien Rhasspy dans le titre.
C’est fait!
Bonjour,
Ma log DEBUG :
[2020-01-25 12:16:20][DEBUG] : [jeerhasspy] <event> POST: {"intent": {"name": "OnOffJeedom", "confidence": 1.0}, "entities": [{"entity": "action", "value": "\u00e9teint", "raw_value": "\u00e9teint", "start": 0, "raw_start": 0, "end": 6, "raw_end": 6, "tokens": ["\u00e9teint"], "raw_tokens": ["\u00e9teint"]}, {"entity": "object", "value": "lumi\u00e8re", "raw_value": "lumi\u00e8re", "start": 7, "raw_start": 7, "end": 14, "raw_end": 14, "tokens": ["lumi\u00e8re"], "raw_tokens": ["lumi\u00e8re"]}, {"entity": "room", "value": "salon", "raw_value": "salon", "start": 18, "raw_start": 18, "end": 23, "raw_end": 23, "tokens": ["salon"], "raw_tokens": ["salon"]}], "text": "\u00e9teint lumi\u00e8re du salon", "raw_text": "\u00e9teint lumi\u00e8re du salon", "recognize_seconds": 0.00627166498452425, "tokens": ["\u00e9teint", "lumi\u00e8re", "du", "salon"], "raw_tokens": ["\u00e9teint", "lumi\u00e8re", "du", "salon"], "speech_confidence": 0.072613531302972, "wakeId": "snowboy/nestor.pmdl", "siteId": "default", "slots": {"action": "\u00e9teint", "object": "lumi\u00e8re", "room": "salon"}}
[2020-01-25 12:16:20][DEBUG] : [jeerhasspy] <exec_callback_scenario> callback_settings: {"scenario":"132","action":"start","minConfidence":"0","isTagIntent":"1","isTagEntities":"1","isTagSlots":"1","isTagSiteId":"1","isTagQuery":"1","isTagConfidence":"1","isTagWakeword":"1","user_tags":""}
[2020-01-25 12:16:20][DEBUG] : [jeerhasspy] <get_all_scenario_tags> __options: {"intent":{"name":"OnOffJeedom","confidence":1},"entities":[{"entity":"action","value":"\u00e9teint","raw_value":"\u00e9teint","start":0,"raw_start":0,"end":6,"raw_end":6,"tokens":["\u00e9teint"],"raw_tokens":["\u00e9teint"]},{"entity":"object","value":"lumi\u00e8re","raw_value":"lumi\u00e8re","start":7,"raw_start":7,"end":14,"raw_end":14,"tokens":["lumi\u00e8re"],"raw_tokens":["lumi\u00e8re"]},{"entity":"room","value":"salon","raw_value":"salon","start":18,"raw_start":18,"end":23,"raw_end":23,"tokens":["salon"],"raw_tokens":["salon"]}],"text":"\u00e9teint lumi\u00e8re du salon","raw_text":"\u00e9teint lumi\u00e8re du salon","recognize_seconds":0.0062716649845243,"tokens":["\u00e9teint","lumi\u00e8re","du","salon"],"raw_tokens":["\u00e9teint","lumi\u00e8re","du","salon"],"speech_confidence":0.072613531302972,"wakeId":"snowboy\/nestor.pmdl","siteId":"default","slots":{"action":"\u00e9teint","object":"lumi\u00e8re","room":"salon"}}
[2020-01-25 12:16:20][DEBUG] : [jeerhasspy] <get_all_scenario_tags> __return tags: {"#intent#":"OnOffJeedom","#confidence#":1,"#wakeword#":"snowboy\/nestor.pmdl","#query#":"\u00e9teint lumi\u00e8re du salon","#siteId#":"default","#action#":"\u00e9teint","#object#":"lumi\u00e8re","#room#":"salon"}
Le début de la log du scénario qu déclenche l’action des ON/OFF :
[2020-01-25 12:16:21][SCENARIO] Start : Lancement provoque. Tags : {"#intent#":"OnOffJeedom","#confidence#":"1","#wakeword#":"snowboy\/nestor.pmdl","#query#":"\u00e9teint lumi\u00e8re du salon","#siteId#":"default","#action#":"\u00e9teint","#object#":"lumi\u00e8re","#room#":"salon"}
...
Et rien dans la log du scénario censé se déclencher avec la variable WakeWord.
Toi ça marche ?
Visiblement tu n’a pas configuré rhasspy pour envoyer le wake a jeedom. Dans le plugin, assistant, bouton configurer en face de wake
Yes bcp mieux. On ne lit jamais suffisamment les docs.
Merci
Bon je tease un peu …
La V2.5 de rhasspy sera là dans 15j normalement, sans doute avec une phase de beta, mais elle devrait apporter une achitecture master/satellite simplifiée et le support complet du protocole hermes
En attendant je viens d’intégrer les satellites dans le plugin TTS dynamique en réponse à un intent etc tout marche nickel.
A priori pas de beta car çà risque fort de bouger. Donc j’adapterai ensuite.
En haut : béh … mon Jeedom alpha
En bas à gauche : le rhasspy master, container docker sur rpi4, installé en 2mins !
En bas à droite : un satellite, sur rpi zero + buster lite et rhasspy venv. Un peu plus compliqué mais tout marche nickel. Le satellite n’a que le wakeword custom comme le master, et le tts, tout le reste (asr, nlu, intents) sont sur le master.
Une fois tout çà finalisé et le plugin en stable, je ferai une doc là dessus. Avec quelques outils que j’ai développé à coté, que je partagerai.
Mais quand je vois la puissance du truc, customisable à mort et totalement sans internet … et ceux qui se prennent le choux quand google n’a plus accès à leur vie privée
Est-ce que quelqu’un pourrait me donner des liens pour comprendre comment fonctionne Rhasspy ? Il est fonctionnel sur mon Odroid C1+, j’ai branché un micro de PS3 suite aux tests de Snips et voilà… j’accède à l’interface web et je suis déjà pas mal content
Qui aurait des liens, de préférence en français, pour comprendre tout le vocabulaire des home assistant ? Merci
Je suis le sujet avec intérêt. Pour l’instant je reste sur SNIPS, mais dès que tout ça sera un peu fiablisé et plus simple d’emploi, je fonce
Merci à toi !
En français tu trouvera pas grand chose.
J’ai commencé une doc sur des trucs et astuces et outils que j’ai fait pour rhasspy. Mais je la fait en anglais, je vois pas l’intérêt de ne pas partager avec le reste du monde.
Y’a des bases ici, notamment le schéma : https://www.bot-trends.fr/intelligence-artificielle-bot/
En gros un assistant c’est :
- Un detecteur de wakeword (ou hotword). Il écoute constamment pour comparer/detecter ton wakeword
- Une fois le wakeword détecté, un ASR écoute, et un détecteur de silence pour savoir quand tu commence et finit de parler. L’ASR est en charge de transformer l’oral en texte, selon un model (language model).
- Une fois le texte décrypté, l’ASR l’envoit au NLU. Le NLU compare alors avec tes intents, slots etc et va définir quel intent a été demandé avec quels slots.
- A partir de là, le NLU envoi un json avec intent/slots et d’autres infos (siteId, wakeword, confidence etc) à un intent handler. çà peut être une commande qui lance un script python à toi, le plugin jeerhasspy etc.
- Et bien sur un moteur TTS, pour que l’assistant puisse « te parler »
En gros.
Bonjour
Je suis le sujet aussi (et le chatting sur la community rhasspy) je galère un peu pour installer la version française, l’installation de jarvis était beaucoup plus simple mais rhasspy est peut être plus complet (ou paramétrable).
Merci à toi
PS peux tu expliquer l’intérêt et à quoi ça sert ?
Y’a pas grand chose à installer pourtant …
Tu fait un raspbian lite,
Tu install docker:
curl -sSL https://get.docker.com | sh
sudo usermod -a -G docker $USER
Et tu lance le container
docker run -d -p 12101:12101 \
--name rhasspy-server \
--restart unless-stopped \
-v "$HOME/.config/rhasspy/profiles:/profiles" \
--device /dev/snd:/dev/snd \
synesthesiam/rhasspy-server:latest \
--user-profiles /profiles \
--profile fr
Le reste se fait dans les settings de l’interface
J’ai commencé à écrire çà au cas où mais pas grand chose pour l’instant:
Le master/satellite ?
En gros tu a un master dans la maison sur lequel tu définit tous tes intents, slots etc.
Et tu fait plein de satellites sur des pi 0 qui ont juste le wakeword et le tts, et qui vont renvoyer la reconnaissance d’intents sur le master. Donc tout tes intents sont à un seul endroit mais tu peux avoir un assistant dans chaque pièce si besoin.
Et chaque satellite sait où il est donc quand tu demande juste « allume la lumière » il allumera sa pièce à lui, si tu le défini comme çà.
Oui oui c’est bon ça marche, mais de temps en temps j’ai des « network error » je ne sais pas d’où ça vient