Début avec Rhasspy

Bonsoir à tous.

Matos : rpi 3b+ sous buster full et jeedom V4 + ‹ respeaker2mic › pour la capture et ‹ jbl go › en alsa bluetooth pour la sortie audio . Installation Rhasspy en master depuis Docker en release 2.5.5 fr.

Je viens de faire mes premiers pas avec l’assistant vocal Rhasspy et je suis les étapes de la super doc.
Le bouton ‹ Wake Up › fonctionne, j’ai bien la phrase prononcée « est-ce que la porte du garage est ouverte », dans le champ ‹ Recognize ›, puis ‹ No intent recognized › (mais ça c’est normal pcq pas encore configuré). Donc la capture est ok avec respeaker 2mic.

  1. Je bloque sur le bouton ‹ Play Recording ›. Je n’entends pas ma voix.
  2. Dans le champ ‹ Speak › je n’entends pas ce que j’écris.
  3. Autre souci sur ‹ reboot › ou ‹ poweroff › du rpi la commande alsa ‹ arecord › n’enregistre plus. Je résous parfois le pb en capturant ma voix en mode graphique avec ‹ audacity › depuis vnc.

Les tests alsa en cli ‹ arecord › et ‹ aplay › sont ok en ce moment.

$ nano .asoundrc

pcm.!default {
        type asym
        playback.pcm {
                type plug
                slave.pcm "output"
        }
        capture.pcm {
                type plug
                slave.pcm "input"
        }
}

pcm.output {
        type bluealsa
        device "78:44:05:5C:EA:11"
        profile "a2dp"
}

ctl.!default {
        type bluealsa
}

pcm.input {
        type hw
        card 2
}

$ apaly -l

**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 2: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ arecord -l :

**** List of CAPTURE Hardware Devices ****
card 2: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Comme d’hab sous linux l’audio fait des siennes …

Quand je clique sur l’icône du service HP, je ne vois rien qui concerne le bluetooth parmi les 22 ou 23 lignes des devices de sortie.
Je n’ai pas installé Pulse-audio, pas de satellite ni Snips et ni plugin jeerhaspy.

Comment faire reconnaître la sortie audio de mon hp JBL GO avec alsabluetooth dans l’interface web rhasspy ?

Je piétine toujours pour résoudre l’audition du HP JBL en bluetooth ‹ bouton Speak › dans l’interface web rhasspy.
J’ai désinstallé ‹ alsabluetooth › et installé le bluetooth pulseaudio.
J’ai modifié le fichier ‹ .asoundrc › et ’ /etc/asound.conf’ pour capturer le son du microphone respeaker-2mic-hat et aiguiller la sortie son en BT vers le hp JBJ GO.

Le test du microphone est ok :


Le test du hp incorrect avec le choix ‹ pulseaudio ›. J’ai fait des choix différents sans résultat.

voici mon .asoundrc recopié aussi dans /etc/asound.conf

pcm.!default {
        type asym
        playback.pcm {
                type plug
                slave.pcm "output"
        }
        capture.pcm {
                type plug
                slave.pcm "input"
        }
}

pcm.output {
        type pulse
        device "78:44:05:5C:EA:11"
        profile "a2dp"
}

ctl.!default {
        type pulse
}

pcm.input {
        type hw
        card 2
}

Les commandes en cli sont ok pour ‹ arecord › et ‹ aplay ›.
Je passe bcp de temps à chercher … persévérance, tâtonnement et intuition …

Est-ce que quelqu’un aurait une configuration en hp bluetooth ?

Pour continuer avec l’assistant, avez-vous un modèle concret de commande vocale par ex pour commander un volet roulant ou allumer une lampe (sans snips ou autre) ?
Je suppose que je vais devoir m’investir dans Node-red et json. C’est pas encore gagné !

Bonjour tout le monde.
J’ai installé la version 2.5.5 fr de rhasspy.
J’ai toujours le même problème quand je fais le test du HP. Je n’entends pas ma commande. ‹ Espeak › ne fonctionne pas non plus.
Actuellement je suis revenu avec alsabluetooth (j’ai supprimé pulseaudiluetooth), le microphone et le HP JBL fonctionnent correctement avec les commandes ‹ arecord › et ‹ aplay ›.
J’ai besoin d’un coup de pouce pour pouvoir continuer dans l’assistant vocal. C’est rageant de buter dès le début du tuto.
Please help ! :thinking:

J’ai refait le test du haut-parleur sans le bluetooth. J’ai rebranché le petit hp (4 ohms 3 watts) sur le respeaker sortie i2c. J’entends bien ma commande (par ex : allumer salon).
J’en déduis que c’est impossible d’utiliser l’assistant voix en hp bluetooth. Quelqu’un pourrait nous confirmer cela ?
Autre petit pb :
Pour lancer l’interface web avec « iplocale:12101 » cela ne fonctionne que si je me connecte en ssh sur le rpi et que je lance la commande :
"docker run -it -p 12101:12101 -v « $HOME/.config/rhasspy/profiles:/profiles » -v « /etc/localtime:/etc/localtime:ro » --device /dev/snd:/dev/snd rhasspy/rhasspy --user-profiles /profiles --profile fr
Starting up…
Si je reviens au prompt du rpi par ‹ ctrl+c › l’interface web disparait, est-ce normal ?

Dans la doc de Rhasspy, on est plutôt sur cette commande pour run en arrière-plan :

docker run -d -p 12101:12101 \
      --name rhasspy \
      --restart unless-stopped \
      -v "$HOME/.config/rhasspy/profiles:/profiles" \
      -v "/etc/localtime:/etc/localtime:ro" \
      --device /dev/snd:/dev/snd \
      rhasspy/rhasspy \
      --user-profiles /profiles \
      --profile fr

Oui j’ai remplacé -it par -d. Cela fonctionne .
MERCI chriss777c.
J’ai un autre petit (ou grand) souci avec le ‹ wakeword, › je n’arrive à pas à lancer l’assistant avec le modèle ‹ bonjour.pmdl › de snowboy.
Dans le profile /home/pi/.config/rhasspy/profiles/fr/snowboy/ j’ai bien mon fichier ‹ bonjour.pmdl › que j’ai mis aussi dans le fichier ‹ profile.json. › Mais ça ne fonctionne pas.
Je précise que j’arrive à piloter l’allumage et l’extinction d’une lampe du salon via ‹ nodred › avec l’assistant rhasspy mais je dois cliquer sur le bouton de l’interface web pour le réveiller.
Je pense que le plus difficile pour moi est fait sauf le wakeword, c’est balo !

Bonjour,

Dans les settings de ton interface web est ce que tu as activé Wake Word , snowboy ?

Bonsoir
oui j’ai sélectionné snowboy :

et ça dans ‹ profile.json › :
Capture d’écran de 2020-10-15 21-11-31

Si qqun(e) pouvait me donner un exemple de syntaxe pour le modèle ‹ wakeword › qui fonctionne chez lui, je pense que le pb pourrait venir d’une mauvaise syntaxe du ‹ json ›.

Bonjour
J’ai retravaillé le fichier ‹ profile.json › issu de la doc ‹ wake-word/#snowboy ›, comme ceci :

"wake": {
        "satellite_site_ids": "Master",
        "snowboy": {
            "model": "snowboy/bonjour.pmdl,snowboy/jarvis.pmdl",
            "model_settings": {
                "snowboy/bonjour.pmdl": {
                    "apply_frontend": false,
                    "audio_gain": 1,
                    "sensitivity": "0.5"
                },
                "snowboy/jarvis.pmdl": {
                    "apply_frontend": false,
                    "audio_gain": 1,
                    "sensitivity": "0.5,0.5"
                }
            }
        },
        "system": "snowboy"

J’ai effectivement 2 mots de réveil, mais acun ne fonctionne.
Dans l’interface web rhasspy :


j’ai une erreur timeout au bout de qq secondes quand je clique sur le bouton bleu ‹ Refresh › et le champ ‹ Available Models › reste vierge. Je précise que j’ai bien activé le service du wakeword avec le bouton ‹ ! › qui est en vert.
Voici le log du Timeout Error :

[ERROR:2020-10-16 14:41:23,211] rhasspyserver_hermes: 
Traceback (most recent call last):
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1821, in full_dispatch_request
    result = await self.dispatch_request(request_context)
  File "/usr/lib/rhasspy/.venv/lib/python3.7/site-packages/quart/app.py", line 1869, in dispatch_request
    return await handler(**request_.view_args)
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__main__.py", line 745, in api_wake_words
    hotwords = await core.get_hotwords()
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 875, in get_hotwords
    handle_finished(), messages, message_types
  File "/usr/lib/rhasspy/rhasspy-server-hermes/rhasspyserver_hermes/__init__.py", line 959, in publish_wait
    result_awaitable, timeout=timeout_seconds
  File "/usr/lib/python3.7/asyncio/tasks.py", line 449, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError
[DEBUG:2020-10-16 14:41:12,370] rhasspyserver_hermes: Publishing 66 bytes(s) to rhasspy/hotword/getHotwords
[DEBUG:2020-10-16 14:41:12,370] rhasspyserver_hermes: -> GetHotwords(site_id='Master', id='33b0f275-6d2d-4e5c-a3f8-de0fb7b50f04')
[DEBUG:2020-10-16 14:40:53,521] rhasspyserver_hermes: Handling AudioDevices (topic=rhasspy/audioServer/devices, id=0d9deb38-ddc5-4176-9870-82f5a3ec1d21)
[DEBUG:2020-10-16 14:40:53,486] rhasspyserver_hermes: Handling AudioDevices (topic=rhasspy/audioServer/devices, id=0d9deb38-ddc5-4176-9870-82f5a3ec1d21)
[DEBUG:2020-10

J’ai lu qqpart que si la syntaxe ‹ json › n’est pas correcte cela pourrait empêcher l’ouverture de l’interface web. Mon interface rhasspy affiche bien la page web.

Pour contruire mon ‹ wakeword › j’ai utilisé mon ordi Debian (pas mon rpi où se trouve l’assistant voix). Ensuite j’ai transféré les fichiers ‹ bonjour.pmdl › et ‹ jarvis.pmdl › en sftp dans le rpi. Est-ce que cette méthode pourrait expliquer le refus de reconnaissance du ‹ wakeword › ?

Je pensais que ce serait facile de réveiller ‹ Rhasspy ›, mais je suis déçu de ne pas y arriver.
Je me suis imprégné longtemps de beaucoup de docs, tutos et d’essais infructueux pour arriver enfin à allumer une lampe. Le pb de l’autodidacte ça avance à la vitesse de l’escargot.
:wink:

Bonjour,
Je n’ai plus le défaut timeoutError. J’arrive à lister mes modèles dans le champ de l’interface web.
Que veut dire le log :


?

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.